ERROR at roslaunch turtlebot3_bringup turtlebot3_remote.launch

Hi
When I use command roslaunch turtlebot3_bringup turtlebot3_remote.launch
It not work as you can see at picture. I use turtlebot3 burger Ubuntu Mate 16.04.2(xenial) ROS kinetic on my pc I use ROS kinetic and install  Dependent ROS Packages.
How can I solved this problem.
Thank you

Hi @oxidation99,
The execution of turtlebot3_remote.launch should be done on your Remote PC, not on your TurtleBot3 PC (Raspberry Pi 3).
http://emanual.robotis.com/docs/en/platform/turtlebot3/bringup/#bringup-a-turtlebot3-burger

I run this command on my remote PC, not on Raspberry Pi and encounter the problem as pictured above.

Hi @oxidation99 :)
Could you install ROS?
Run the roscore and tell me the result.
$ roscore

Hi @oxidation99
The launcher is looking for the model of your bot and failing to find it.
If this is the first time bringing up the robot, edit the "~/.bashrc" file on the remote PC and include this last line on it: “export TURTLEBOT3_MODEL = burger”.
$ sudo nano ~/.bashrc (you can use your preferred text editor to do that, but let's consider the nano)
After the insertion of the new last line, hit CTRL+O to save the new file, and CTRL+X to exit (again, this is for the nano editor). Then, source the new bash file:
$ source ~/.bashrc
Now your workspace should know the model of your robot. For every new terminal of the remote PC, source the devel folder in the catkin workspace:
$ source devel/setup.bash
That should solve your problem.

Thank you for all the help.
Hi @kijongGil
I install step by step ROS based on ROS.org/Tutorials website.
This picture show when I run roscore.

And when I run command roslaunch turtlebot3_bringup turtlebot3_remote.launch after I run roscore command. This error show in picture two.

Hi, @oxidation99. I'm sorry to reply late.
I think that your ROS installation have a problem.
Could you reinstall again?


Add support for additional devices and functions

We can make this integration very close to what HIK connect offer and what API allow us to do...
For example for PIRCAM sensor we can get picture from it:
GET /ISAPI/SecurityCP/pircam/picture/channels/?format=json
One good feature will be AC status of panel:
GET /ISAPI/SecurityCP/status/acPowerStatus?format=json
And battery status:
GET /ISAPI/SecurityCP/status/batteries?format=json
Or maybe using next call to get more info(Also network...)
GET /ISAPI/SecurityCP/status/host?format=json
There are availible also next Sensors which are currently not implemented(I don't have model ID for them):
glassBreakDetector - PIR (Passive Infrared) glass-break detector
indoorDualTechnologyDetector - Indoor dual-technology detector
panicButton - Panic button
wiredDetector - Wired detector
If you can implement support also for other(non sensor/detector) devices to change some settings it will be awesome:
wirelessSiren - For example change volume, show temperature, battery, signal, bypass, tamper status
GET /ISAPI/SecurityCP/status/sirenStatus?format=json
repeaters - Show if is ONLINE/OFFLINE
GET /ISAPI/SecurityCP/status/repeaterStatus?format=json
keypadStatus - Show temperature, battery, signal, bypass, tamper status
GET /ISAPI/SecurityCP/status/keypadStatus?format=json
For siren(Internal siren) and keypad(DS-PK1-LT-WE) I can be tester because I have them installed.
Let me know if you don't have access to Hikvision documentation that I provide more info...

Would be interesting. Lot of potential..
GET /ISAPI/SecurityCP/pircam/picture/channels/?format=json - no clue how this would integrate to HA.
More interesting would be trigger in my opinion.
GET /ISAPI/SecurityCP/status/host?format=json - contains even AC state, battery also and lot metadata info.
For this intake of info would be better to split to 2 coordinators
GET /ISAPI/SecurityCP/status/sirenStatus?format=json - Sirens
I am not sure about settings, but info should be pulled
GET /ISAPI/SecurityCP/status/repeaterStatus?format=json - repeaters - i think health contains it
Definitely should be implemented
GET /ISAPI/SecurityCP/status/keypadStatus?format=json - keypadStatus - Definitely should be implemented
I will get later in to it and implement those

I added endpoints to hikaxpro (fork) waiting for some pull requests
https://github.com/petrleocompel/hikaxpro/commit/955a66c97ce5a86523b73cdd367da3096924fc3a

Thanks will wait for pull :)

I have the following products already installed in addition to the repeater.
If I can help you in any way, I'm available.
Unfortunately not to write the code as I'm not good at it.
sensors:
DS-PDMCX-E-WE
DS-PDPG12P-EG2-WE
DS-PDPC12P-EG2-WE
DS-PDMCK-EG2-WE
DS-PDMC-EG2-WE
sirens:
DS-PS1-I-WE
DS-PS1-E-WE
tag readers:
DS-PT1-WE
wireless keyfob:
DS-PKF1-WE
I also installed the 2 magnetic contacts wired coupled with the radio contacts of the doors

You can test if devices which I and Peter don't have work ok...
I don't have:
DS-PS1-E-WE
DS-PT1-WE
Repeater
Does sensos which are connected over repeater in HA show "Is via repeater" True? You can compare and check in HIK Connect which sensor use repeater... I can't test this so not sure if work correctly...
Siren and other non sensor devices are not included yet so is not shown in device list... When main python library will be updated(By other developer) then also other device info can be integrated so need to be patient until then...

It is just about time and priorities. I am working on this in my spare time.
Currently I have done some research but I’m waiting on the pull request.
If it will not be merged in some time I am going to fork the API library.
As @DejanBukovec said you can test stuff. But because you request it then obviously you are going to test it anyway.

HI,
I confirm that the sensors, even if connected through the repeater, are displayed in HA.
Below I list what I tested and it is still not recognized in HA:

DS-PS1-E-WE
DS-PT1-WE
DS-PS1-I-WE
DS-PDPG12P-EG2-WE
DS-PDPC12P-EG2-WE
DS-PDP15P-EG2-WE
In addition to the door sensors, I also connected additional wired contacts to the 2 auxiliary contacts which are recognized in HA but there is no magnet trigger. I show you below what is displayed:

I'm available if you need debug just tell me

I have DS-PDPC12P-EG2-WE is PIRCAM sensor and it is supported and work:

DS-PDP15P-EG2-WE is normal PIR sensor(With PET imunity) and is supported and work(I also have them):

DS-PDPG12P-EG2-WE is wirelessGlassBreakDetector and is not supported yet but can be quick and simple added if you provide home assistant integration log file where we can see model id line in log which provide info like this:
ZoneList(zone=Zone(id=3, name='Otroška Soba', status=<Status.ONLINE: 'online'>, tamper_evident=False, shielded=False, bypassed=False, armed=False, is_arming=False, alarm=False, sub_system_no=2, linkage_sub_system=[2], detector_type=<DetectorType.PASSIVE_INFRARED_DETECTOR: 'passiveInfraredDetector'>, stay_away=False, zone_type=<ZoneType.INSTANT: 'Instant'>, zone_attrib=<ZoneAttrib.WIRELESS: 'wireless'>, device_no=6, abnormal_or_not=False, charge='normal', charge_value=100, signal=121, temperature=21, humidity=None, model='0x00001', is_via_repeater=False, version='V1.0.25', magnet_open_status=None, input_list=None, is_support_add_type=None, access_module_type=None, module_channel=None))

@DejanBukovec Today with version v0.8.0 i added mutliple detector types including wirelessGlassBreakDetector
Just don't know what extra attrs it has.
@leciuk81 for you for your "door sensors" and additional wired contacts. Do you mean "wired sensors" or in some sensor are contact to wire ? Can you provide log ? enable debugging and find part of the log with the "name" matching the one which is missing those contacts.

But does not it need to be included also inside detector_model_to_name function? Or in latest versions this in not mantadory anymore?
Best will be if he provide full log file with Zone details it can be any of not complete implemented attribute... But without debug log from HA is only guessing...
Maybe ZoneType make him problem which is not fully implemented...
zone type: "Instant"-instant zone, "Delay"-delay zone, "Follow"-follow zone, "Perimeter"-perimeter zone, "24hNoSound"-24-hour silent zone, "Emergency"-panic zone, "Fire"-fire zone, "Gas"-gas zone, "Medical"-medical zone, "Timeout"-timeout zone, "Non-Alarm"-disabled zone, "Key"-key zone*

@DejanBukovec Most of the attributes converted to enums are in try catch blocks so it will not crash.
It will be just not used as known attribute. Also ZoneType is not used for anything now.
detector_model_to_name is used only for displaying it in device list.

@DejanBukovec  - I updated to the latest version and I confirm what you said that all detectors are in HA except for the trigger.
@petrleocompel  -  by wired contacts I mean these:

below part of the debug log:
'zoneAttrib': 'wired', 'deviceNo': 22, 'abnormalOrNot': False}
2023-03-03 00:10:07.259 WARNING (SyncWorker_12) [custom_components.hikvision_axpro.model] Invalid accessModuleType inputMainZone
2023-03-03 00:10:07.264 WARNING (SyncWorker_12) [custom_components.hikvision_axpro.model] Detector info: {'id': 7, 'name': 'Finestra veranda (zona cablata 8)', 'status': 'online', 'sensorStatus': 'normal', 'tamperEvident': False, 'shielded': False, 'bypassed': False, 'armed': False, 'isArming': False, 'alarm': False, 'subSystemNo': 1, 'linkageSubSystem': [1], 'detectorType': 'other', 'stayAway': False, 'zoneType': 'Instant', 'accessModuleType': 'inputMainZone', 'relatedAccessModuleID': 6, 'moduleChannel': 1, 'zoneAttrib': 'wired', 'deviceNo': 22, 'abnormalOrNot': False}

Strange that is not even in documentation.
"accessModuleType": "inputMainZone",

However, it is recognized with diagnostics but without a trigger

I think the trigger will not be present in attributes. It is same as #2. It is more "event". Not a attribute or in app you can see in device detail (in hikConnect) that contact is triggered?

@petrleocompel    I think you are right, I don't see the trigger in hikConnect either

I think but Im not test this yet when some sensor trigger when alarm panel is armed value of "Alarm" under diagnostic of sensor will change from Off to On ... When you confirm alarm(Disarm or confirm) or maybe also after some time it will automaticly reset to Off(Im not sure about this timer reset but if remember correct there under sensor is some option to enable/disable this)...
I think I will have this weekend some time and will test and contribute more...

@DejanBukovec behaviour should be:

alarm off
arm system
armed = true
Sensor trigger
sensor - alarm = true
system - alarm
system - disarm
sensor - alarm = false

Problem is.. Since we are pulling the data the alarm we don't see instantly. It is in "pull interval" (default 30s). And then we can find out what sensor it was if you did not disarm the system yet.
This can be changed but it requires configuration on AX Pro to sent the events to the HA. It would be amazing.
But currently:

I don't have the knowledge - in HA nor AX Pro, but can figure it out. On HA it is registration of webhooks and schema implementation in integration, on AX Pro it is just URL set up (we could do it as configuration step - auto config if you provide admin user or do it yourself)
Maybe then integration should be little bit redesigned - how things works

Hi @petrleocompel,
I noticed with pleasure that you made the wired magnet of the "Wireless Magnet Shock Detector DS-PDMCK-EG2-WE" visible and working, see images below:

Would you be able to make visible also the wired magnets of the "Wireless External Magnet Detector DS-PDMCX-E-WE" which as you see from the screenshots below is visible but the magnet is not activated.

You are doing a great job congratulations and thanks

Can you provide debug log ? On integration enable debug logging wait 2 minutes, end debugging and provide the log. I will add support for this magnet initializiation

Debug below
home-assistant_hikvision_axpro_2023-03-12T12-42-31.352Z.log

Are you on latest version?
I see in log -> problem with inputMainZone in enum AccessModuleType. If it is true then it is undocumented in their docs...
    "accessModuleType": {
/*optional, object, access module type: "transmitter"-transmitter peripheral, "multiTransmitter", "localTransmitter", "localZone","keypad"*/
      "@opt": ["transmitter", "multiTransmitter", "localTransmitter", "localZone","keypad"]
    },

But it should not affect magnet. DOOR_MAGNETIC_CONTACT_DETECTOR aka detectorType = magneticContact is implemented from version 0.6.0.
Can you check your version ?

This works correctly:
2023-03-12 13:40:00.533 WARNING (SyncWorker_12) [custom_components.hikvision_axpro.model] Detector info: {'id': 7, 'name': 'Finestra veranda (zona cablata 8)', 'status': 'online', 'sensorStatus': 'normal', 'magnetOpenStatus': False, 'tamperEvident': False, 'shielded': False, 'bypassed': False, 'armed': False, 'isArming': False, 'alarm': False, 'subSystemNo': 1, 'linkageSubSystem': [1], 'detectorType': 'magneticContact', 'stayAway': False, 'zoneType': 'Instant', 'accessModuleType': 'inputMainZone', 'relatedAccessModuleID': 6, 'moduleChannel': 1, 'zoneAttrib': 'wired', 'deviceNo': 22, 'abnormalOrNot': False}
But this doesn't work:
2023-03-12 13:40:00.536 WARNING (SyncWorker_12) [custom_components.hikvision_axpro.model] Detector info: {'id': 19, 'name': 'Cassettina sali-scendi serranda (zona 20)', 'status': 'online', 'sensorStatus': 'normal', 'tamperEvident': False, 'shielded': False, 'bypassed': False, 'armed': True, 'isArming': False, 'alarm': False, 'subSystemNo': 2, 'linkageSubSystem': [2], 'detectorType': 'other', 'stayAway': False, 'zoneType': 'Instant', 'accessModuleType': 'inputMainZone', 'relatedAccessModuleID': 15, 'moduleChannel': 1, 'zoneAttrib': 'wired', 'deviceNo': 39, 'abnormalOrNot': False}

I understand. But as you see
{
	"id": 19,
	"name": "Cassettina sali-scendi serranda (zona 20)",
	"status": "online",
	"sensorStatus": "normal",
	"tamperEvident": false,
	"shielded": false,
	"bypassed": false,
	"armed": true,
	"isArming": false,
	"alarm": false,
	"subSystemNo": 2,
	"linkageSubSystem": [2],
	"detectorType": "other",
	"stayAway": false,
	"zoneType": "Instant",
	"accessModuleType": "inputMainZone",
	"relatedAccessModuleID": 15,
	"moduleChannel": 1,
	"zoneAttrib": "wired",
	"deviceNo": 39,
	"abnormalOrNot": false
}

The system is not providing magnetStatusOpen attribute. We cannot anything from that.

If understand what is happening now. If it is a wired detector. there is no more info provided.
If system is armed and this contact will "trigger" it will trigger alarm. Since it is detectorType -> other. There is no info provided.
You can check with mobile app even there should be now info about magnetStatus on sensor  Cassettina sali-scendi serranda (zona 20)

I understand but I'll give you more information.
From the app wired contacts are not detected as status but work for alarm.
Each magnetic contact has 2 wired contacts.
As regards the sensor "Wireless Magnet Shock Detector DS-PDMCK-EG2-WE" you managed to make it visible in the home assistant but only one of the two and precisely contact 1 while for the sensor "Wireless External Magnet Detector DS-PDMCX- E-WE" they work correctly but not displayed in the home assistant.
I understand if it is not possible but I try to give you more information in my tests.
However, I have approved the second contacts for both and for this I am attaching the updated debug again.
Debug home-assistant_hikvision_axpro_2023-03-12T13-53-46.320Z.log

You can check on your own.
If the sensors in mobile app (HikConnect) does not provide info about what ever you need. We cannot get that info to HA.
In debug log I see the device. But no extra attributes. And they are wired. So they act as "cable interruptions" for alarm and not providing any information to alarm system. It is not a data cable. It is just a "contact cable"  for alarm.
I have serval wired sensors like this. And it is not possible to get anything on them.

Sorry but perhaps the use of the translator prevents me from expressing the clear concept.
On the App there is the same information on all magnetic sensors.
The state of the sensors wired to it is not present in any sensor.
But in the wired contact 1 of the "Wireless Magnet Shock Detector DS-PDMCK-EG2-WE" sensor in the home assistant everything works great recognizing the status as in the figure below

I am getting totally lost @leciuk81.
So DS-PDMCK-EG2-WE has 2 wired inputs extension. According to documentation they act as alarm triggers.

You can add two external inputs (each input can be set as NO\NC\TAMPER\Pulse) via the AX PRO client.
While Any of the two inputs generates an alarm event, the contact reports the alarm to the AX PRO. The LED keeps blue for 2 s

So this info is not sent to any app. Only in configuration of that sensor you can set NO\NC\TAMPER\Pulse.
If you mean something else please try to describe from scratch full story, fully documented, (app screenshots) where you see info what you miss in HA.

So DS-PDMCK-EG2-WE has 2 wired inputs extension. According to documentation they act as alarm triggers.
You can add two external inputs (each input can be set as NO\NC\TAMPER\Pulse) via the AX PRO client.
While Any of the two inputs generates an alarm event, the contact reports the alarm to the AX PRO. The LED keeps blue for 2 s
So this info is not sent to any app. Only in configuration of that sensor you can set NO\NC\TAMPER\Pulse.
All of this is correct
These are the 2 contacts wired with the 3 wires zone 1, zone 2 and com

This is an example by wiring zone 1 only

In home assistant the wired contact is seen like this:

If I open the window in

The contact in home assistant looks like this:

This all works great.
I don't understand why this works with zone 1 and not with zone 2
If you see in the screenshot of zone 2, nothing is displayed in home assistant even though it is enabled.
I have also made various tests by connecting the wired magnet but the status does not come out

In the app it is configured in the same way

In your log Zona cablata 22 is detectorType other so no info provided. :disappointed:
That is the reason. Even in json received about this device does not have magnetStatus attribute.
I think the zone 1 is connected to main attribute of the magnet. The zone 2 is separate.
This will be sadly on Hikvision implmentation.

@DejanBukovec I took over pypi package of hikaxpro, released update version 2.0.0 and now I am maintainer of that repository. My work can finally start. Since we have full control over the package.
I already pulled some changes over.

AXHub login support
Arm / disarm of zones

Now I can focus on more stuff which we can implement.
Also found out there is no support for relay control 🤷♂  completely forgot that I use them.
First I guess will be end point with Sirens, then relay control. And etc. Everybody is welcome to say what things are important and we can try prioritise.

Hi,
Thank you Petr for this soft!
I have several detectors that are not yet well or fully recognized like Pircam (DS-PDPC12P-EG2-WE) and  DS-PDCM15PF-IR + Hikvision DS-PDTT15AM-LM-WE.
the first one is working for the detection but not for the image/video capture.
I have been looking for a long time for a valid ISAPI and have done some testing myself, but I only get a 404 response with this URL:  GET http://xxx.xxx.xxx.xxx/ISAPI/SecurityCP/pircam/picture/channels/?format=json
@DejanBukovec : were you successful with this URL?
Do you know how to find the ID parameter? i tried without success, zone and sensor number as well as their name, and number like 0, 1, 2 ....
Curiously my Pircams are correctly listed and accessible in the "configuration"  ISAPI (i.e:  /ISAPI/SecurityCP/Configuration/pircam/zone?format=json)
I can help develop if I can find a valid ISAPI url.
For information, I am on the latest firmware available for AX pro.
The doc is from december 2020, maybe it is out of date and a new version is available? does anyone have a more recent doc?
Thanks for your help.

I didn't try URL's but it must look like:
http://XXX.XXX.XXX.XXX/ISAPI/SecurityCP/pircam/picture/channels/4?format=json
Where 4 is device number:

Afcourse before this I think you need estabilish session...
Doc:

ust warning that basic API connection should be done via hikaxpro library and this (repo) integration should just do the binding for HA. Right not you can find also the code of library inside, but next version should be gone. That is the reason why it takes me so much time. (It was needed for making AXHub working - for start).
The document matches the current ISAPI so far always. You can use shared session in library -> _cookie -> via axpro.make_request method.
You are welcome to make a pull request.

Thank you very much for these clarifications. I will think about pulling a request.

There are also other functions ... Check documentation...
There is async function:

Or:

There are also other functions ... Check documentation... There is async function:
Or:

Thank you very much, I appreciate your help. Unfortunatly none of the ISAPI involving pircam at the exception of those regarding the configuration works for me.
I did read the ISAPI for security control doc. I have the impression that some functions should work in pairs (ex: post a request, get the picture) but I didn't find any example on the net, and anyway, I don't know why, all these functions answer me each time: 'Can't locate the url'.
I must be missing something, because the pircam works perfectly via hikconnect and access to the image is the main feature I am missing.

hi @petrleocompel,
first of all, congrats on the nice work! everything is working correctly but my PIR sensors "Wireless Dual-Tech Detector" (DS-PDD12P-EG2-WE(B)) are giving a "wrong" name: '0x00002'. can you change this please? thanks in advance!
home-assistant_hikvision_axpro_2023-07-04T19-00-04.593Z.log

@Joerivanrokeghem fixed in v2.0.0-beta17

I've recently added the DS-PM1-I1-WE input transmitter (to add external contact sensor) https://www.hikvision.com/en/products/Alarm-Products/wireless-intrusion-alarm/ax-pro/ds-pm1-i1-we/ but once added the integration would fail to reload giving this error.
Can it be added (or at least ignored) so that the integration would load correctly?

Logger: homeassistant.config_entries
Source: custom_components/hikvision_axpro/model.py:43
Integration: hikvision_axpro
First occurred: 09:38:05 (1 occurrences)
Last logged: 09:38:05

Error setting up entry AX PRO M2H for hikvision_axpro
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 390, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/__init__.py", line 105, in async_setup_entry
    await hass.async_add_executor_job(coordinator.init_device)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/__init__.py", line 177, in init_device
    self.load_devices()
  File "/config/custom_components/hikvision_axpro/__init__.py", line 181, in load_devices
    devices = self._load_devices()
              ^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/__init__.py", line 194, in _load_devices
    return ZonesConf.from_dict(response.json())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/model.py", line 887, in from_dict
    list = from_list(ListElement.from_dict, obj.get("List"))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/model.py", line 29, in from_list
    return [f(y) for y in x]
           ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/model.py", line 29, in <listcomp>
    return [f(y) for y in x]
            ^^^^
  File "/config/custom_components/hikvision_axpro/model.py", line 871, in from_dict
    zone = ZoneConfig.from_dict(obj.get("Zone"))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/model.py", line 720, in from_dict
    access_module_type = from_union([AccessModuleType, from_none], obj.get("accessModuleType"))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hikvision_axpro/model.py", line 43, in from_union
    assert False
AssertionError

<deviceName>AX PRO</deviceName>
<deviceID>48513132-3934-3534-3937-acb92feea921</deviceID>
<model>DS-PWA96-M2H-WE</model>
<serialNumber>DS-PWA96-M2H-WE20220420AAWRQ12945497WU</serialNumber>
<macAddress>ac:b9:2f:ee:a9:21</macAddress>
<firmwareVersion>V1.2.88</firmwareVersion>
<firmwareReleasedDate>build 230216</firmwareReleasedDate>
<hardwareVersion>0x1000</hardwareVersion>
<encoderVersion>V1.0</encoderVersion>
<encoderReleasedDate>build 000000</encoderReleasedDate>
<deviceType>PWA</deviceType>
<telecontrolID>1</telecontrolID>
<charEncodeFormat>GB2312</charEncodeFormat>
<languageType opt="english,spanish,portuguese,italian,french,russian,german,polish,czech,greek,turkish,dutch,hungarian,croatian,ukrainian,brazilianPortuguese,slovenian,swedish,norwegian,romanian,danish,slovak,serbian,bulgarian,hebrew,lithuanian,anglicism,estonian,latvian">english</languageType>
<customizedInfo></customizedInfo>
</DeviceInfo>
2023-07-30 09:38:05.606 DEBUG (SyncWorker_43) [custom_components.hikvision_axpro] {'DeviceInfo': {'@version': '2.0', '@xmlns': 'http://www.hikvision.com/ver20/XMLSchema', 'deviceName': 'AX PRO', 'deviceID': '48513132-3934-3534-3937-acb92feea921', 'model': 'DS-PWA96-M2H-WE', 'serialNumber': 'DS-PWA96-M2H-WE20220420AAWRQ12945497WU', 'macAddress': 'ac:b9:2f:ee:a9:21', 'firmwareVersion': 'V1.2.88', 'firmwareReleasedDate': 'build 230216', 'hardwareVersion': '0x1000', 'encoderVersion': 'V1.0', 'encoderReleasedDate': 'build 000000', 'deviceType': 'PWA', 'telecontrolID': '1', 'charEncodeFormat': 'GB2312', 'languageType': {'@opt': 'english,spanish,portuguese,italian,french,russian,german,polish,czech,greek,turkish,dutch,hungarian,croatian,ukrainian,brazilianPortuguese,slovenian,swedish,norwegian,romanian,danish,slovak,serbian,bulgarian,hebrew,lithuanian,anglicism,estonian,latvian', '#text': 'english'}, 'customizedInfo': None}}
2023-07-30 09:38:05.624 DEBUG (SyncWorker_43) [custom_components.hikvision_axpro] { "List": [ { "Zone": { "id": 0, "zoneName": "Contatto Porta", "detectorType": "magneticContact", "zoneType": "Delay", "subSystemNo": 1, "linkageSubSystem": [ 1 ], "supportLinkageSubSystemList": [ 1 ], "enterDelay": 30, "exitDelay": 1, "stayArmDelayTime": 1, "sirenDelayTime": 0, "stayAwayEnabled": false, "chimeEnabled": false, "silentEnabled": false, "chimeWarningType": "single", "timeoutType": "recover", "timeout": 30, "relateDetector": true, "RelatedChanList": [ { "RelatedChan": { "relator": "app", "cameraSeq": "", "relatedChan": 0, "linkageCameraName": "" } } ], "doubleKnockEnabled": false, "doubleKnockTime": 5, "CrossZoneCfg": { "isAssociated": false, "supportAssociatedZone": [ 1, 2 ], "alreadyAssociatedZone": [ ], "supportLinkageChannelID": [ ], "alreadyLinkageChannelID": [ ], "associateTime": 1800 }, "newKeyZoneTriggerTypeCfg": "zoneStatus", "zoneStatusCfg": "triggerArm", "armNoBypassEnabled": false, "RelatedPIRCAM": { "supportLinkageZones": [ ], "linkageZone": [ ], "linkagePIRCAMName": "" }, "finalDoorExitEnabled": false, "timeRestartEnabled": false, "armMode": "and", "swingerLimitActivation": 3, "detectorWiringMode": "SEOL", "detectorAccessMode": "NC", "antiMaskingEnabled": true, "AMMode": "arm", "AMDelayTime": 60, "pulseSensitivity": 250, "alarmResistence": 2.2, "tamperResistence": 2.2, "moduleChannel": 1, "doubleZoneCfgEnable": false, "accessModuleType": "localTransmitter", "zoneAttrib": "wired" } }, { "Zone": { "id": 1, "zoneName": "Sensore Living", "detectorType": "indoorDualTechnologyDetector", "zoneType": "Instant", "subSystemNo": 1, "linkageSubSystem": [ 1 ], "supportLinkageSubSystemList": [ 1 ], "enterDelay": 30, "exitDelay": 30, "stayArmDelayTime": 30, "sirenDelayTime": 0, "stayAwayEnabled": false, "chimeEnabled": false, "silentEnabled": false, "chimeWarningType": "single", "timeoutType": "recover", "timeout": 30, "relateDetector": true, "detectorSeq": "Q12076044", "RelatedChanList": [ { "RelatedChan": { "relator": "app", "cameraSeq": "", "relatedChan": 0, "linkageCameraName": "" } } ], "doubleKnockEnabled": false, "doubleKnockTime": 5, "CrossZoneCfg": { "isAssociated": false, "supportAssociatedZone": [ 0, 2 ], "alreadyAssociatedZone": [ ], "supportLinkageChannelID": [ ], "alreadyLinkageChannelID": [ ], "associateTime": 1800 }, "newKeyZoneTriggerTypeCfg": "zoneStatus", "zoneStatusCfg": "triggerArm", "armNoBypassEnabled": false, "RelatedPIRCAM": { "supportLinkageZones": [ ], "linkageZone": [ ], "linkagePIRCAMName": "" }, "armMode": "and", "zoneAttrib": "wireless" } }, { "Zone": { "id": 2, "zoneName": "Test", "detectorType": "other", "zoneType": "Instant", "subSystemNo": 1, "linkageSubSystem": [ 1 ], "supportLinkageSubSystemList": [ 1 ], "enterDelay": 30, "exitDelay": 30, "stayArmDelayTime": 30, "sirenDelayTime": 0, "stayAwayEnabled": false, "chimeEnabled": false, "silentEnabled": false, "chimeWarningType": "single", "timeoutType": "recover", "timeout": 30, "RelatedChanList": [ { "RelatedChan": { "cameraSeq": "", "relatedChan": 0, "linkageCameraName": "" } } ], "doubleKnockEnabled": false, "doubleKnockTime": 5, "CrossZoneCfg": { "isAssociated": false, "supportAssociatedZone": [ 0, 1 ], "alreadyAssociatedZone": [ ], "supportLinkageChannelID": [ ], "alreadyLinkageChannelID": [ ], "associateTime": 1800 }, "newKeyZoneTriggerTypeCfg": "zoneStatus", "zoneStatusCfg": "triggerArm", "armNoBypassEnabled": false, "RelatedPIRCAM": { "supportLinkageZones": [ ], "linkageZone": [ ], "linkagePIRCAMName": "" }, "finalDoorExitEnabled": false, "timeRestartEnabled": false, "armMode": "and", "swingerLimitActivation": 3, "detectorContactMode": "NC", "impulseCountTime": 20, "impulsesBeforeAlarm": 8, "detectorInputMode": "pulse", "detectorTamperMode": "NC", "accessModuleType": "transmitter", "relatedAccessModuleID": 1, "zoneAttrib": "wired" } } ] }
2023-07-30 09:38:05.628 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry AX PRO M2H for hikvision_axpro
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 390, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/__init__.py", line 105, in async_setup_entry
await hass.async_add_executor_job(coordinator.init_device)
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/__init__.py", line 177, in init_device
self.load_devices()
File "/config/custom_components/hikvision_axpro/__init__.py", line 181, in load_devices
devices = self._load_devices()
^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/__init__.py", line 194, in _load_devices
return ZonesConf.from_dict(response.json())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/model.py", line 887, in from_dict
list = from_list(ListElement.from_dict, obj.get("List"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/model.py", line 29, in from_list
return [f(y) for y in x]
^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/model.py", line 29, in <listcomp>
return [f(y) for y in x]
^^^^
File "/config/custom_components/hikvision_axpro/model.py", line 871, in from_dict
zone = ZoneConfig.from_dict(obj.get("Zone"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/model.py", line 720, in from_dict
access_module_type = from_union([AccessModuleType, from_none], obj.get("accessModuleType"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/hikvision_axpro/model.py", line 43, in from_union
assert False
AssertionError```

@r0bb10 fixed

@r0bb10 fixed

Perfect, tested and works!
quick debug just to clean up things:

the manufacturer colums should all report "HikVision" but actually the axpro is reported as "Hikvision - Ax Pro" (basically should all report like the last one in the first screenshot, the dualtech sensor one), and so all the sensors that are "Unknown".
the model should correctly report the actual model not the friendly name, so i think that instead of dualtech sensor it should report "DS-PDD12P-EG2-WE"
my contact sensor is wired to to the M2H on channel 1 (AKA Zone 1), since there is no actual model for this one i think the best way to remove "unknown" it should report the DS-PWA96-M2H-WE name and maybe the zone number, so "DS-PWA96-M2H-WE Z1" or something similar (the M2H has 16 total wired zones onboard).

Btw great work as usual!

@r0bb10
Normally we get model from zoneConfig (loaded 1. on start). You can try to provide (enable debug, watch logs for "+ config: " <- this line is the interesting one)
So the "Contatto Porta" is wired. And the system does not report model of wired sensors. Info about this sensor is
{
	"id": 0,
	"zoneName": "Contatto Porta",
	"detectorType": "magneticContact",
	"zoneType": "Delay",
	"subSystemNo": 1,
	"linkageSubSystem": [1],
	"supportLinkageSubSystemList": [1],
	"enterDelay": 30,
	"exitDelay": 1,
	"stayArmDelayTime": 1,
	"sirenDelayTime": 0,
	"stayAwayEnabled": false,
	"chimeEnabled": false,
	"silentEnabled": false,
	"chimeWarningType": "single",
	"timeoutType": "recover",
	"timeout": 30,
	"relateDetector": true,
	"RelatedChanList": [{
		"RelatedChan": {
			"relator": "app",
			"cameraSeq": "",
			"relatedChan": 0,
			"linkageCameraName": ""
		}
	}],
	"doubleKnockEnabled": false,
	"doubleKnockTime": 5,
	"CrossZoneCfg": {
		"isAssociated": false,
		"supportAssociatedZone": [1, 2],
		"alreadyAssociatedZone": [],
		"supportLinkageChannelID": [],
		"alreadyLinkageChannelID": [],
		"associateTime": 1800
	},
	"newKeyZoneTriggerTypeCfg": "zoneStatus",
	"zoneStatusCfg": "triggerArm",
	"armNoBypassEnabled": false,
	"RelatedPIRCAM": {
		"supportLinkageZones": [],
		"linkageZone": [],
		"linkagePIRCAMName": ""
	},
	"finalDoorExitEnabled": false,
	"timeRestartEnabled": false,
	"armMode": "and",
	"swingerLimitActivation": 3,
	"detectorWiringMode": "SEOL",
	"detectorAccessMode": "NC",
	"antiMaskingEnabled": true,
	"AMMode": "arm",
	"AMDelayTime": 60,
	"pulseSensitivity": 250,
	"alarmResistence": 2.2,
	"tamperResistence": 2.2,
	"moduleChannel": 1,
	"doubleZoneCfgEnable": false,
	"accessModuleType": "localTransmitter",
	"zoneAttrib": "wired"
}

So I do not think it is possible. Also for wired sensors it is not real to report anything. You can wire anything to these contact. Custom made stuff, different brands wired sensors, magnetic, PIR, etc...
The naming scheme with "zone / channel" maybe. But you have the name and reality is .. that the sensor is unknown.

Hi @petrleocompel
can u add 0x00031 to the integration please? it is the DS-PDCO-E-WE Wireless CO Detector.
thanks!
home-assistant_hikvision_axpro_2023-07-31T15-54-32.545Z.log

@Joerivanrokeghem I quickly added the model to be recognized but I kinda do not know how to get info from that device.
I do not know what happens when it would be triggered.
What attribute would changed.
Keep in mind there is the "timeout of sync" with HA (see in configuration) the trigger does not have to be immediate but it is about sync interval.

hi petr,
I updated to v2.0.2 and restarted the integration/ HA but the model is still displayed as 0x00031. when I have the time I will test what attribute will change. but I think it will be the same attributes as by the smoke detectors.

@Joerivanrokeghem  - fixed it in release v2.0.3 I overlooked the number


Cyber engine tweaks Bug

cyber engine tweaks failed to resolve address for hash 0xf18b27a8. process will now close.
Since today, when I updated all the essential mods, when I start the game I get this error. Does the same happen to anyone else?
Help, please!

Same!

Can you try this version : https://github.com/maximegmd/CyberEngineTweaks/actions/runs/8374637248/artifacts/1346311910

Can you try this version : https://github.com/maximegmd/CyberEngineTweaks/actions/runs/8374637248/artifacts/1346311910

This version work 👍 , but the not v1.32.1 👎

This link is v1.32.1

This link is v1.32.1

Yes sorry i'm stupid, the error i get was for Red4Ext whit vortex when i try to install your package :) Sry.

I get the above when I try to start cyberpunk 2077. just updated to CET 1.32.2


Deploy Checklist: New Expensify 2022-11-23

Release Version: 1.2.31-3
Compare Changes: https://github.com/Expensify/App/compare/production...staging
This release contains changes from the following pull requests:

[ ] https://github.com/Expensify/App/pull/12419
[ ] https://github.com/Expensify/App/pull/12455
[x] https://github.com/Expensify/App/pull/12570
[ ] https://github.com/Expensify/App/pull/12607
[ ] https://github.com/Expensify/App/pull/12608
[ ] https://github.com/Expensify/App/pull/12648
[ ] https://github.com/Expensify/App/pull/12664
[ ] https://github.com/Expensify/App/pull/12762
[ ] https://github.com/Expensify/App/pull/12766
[ ] https://github.com/Expensify/App/pull/12827
[ ] https://github.com/Expensify/App/pull/12864
[ ] https://github.com/Expensify/App/pull/12899
[ ] https://github.com/Expensify/App/pull/12906
[ ] https://github.com/Expensify/App/pull/12907
[ ] https://github.com/Expensify/App/pull/12919
[ ] https://github.com/Expensify/App/pull/12925
[ ] https://github.com/Expensify/App/pull/12926
[ ] https://github.com/Expensify/App/pull/12929
[x] https://github.com/Expensify/App/pull/12959

Internal QA:

[ ] https://github.com/Expensify/App/pull/12936 - @tgolen @NikkiWines

Deploy Blockers:

[x] https://github.com/Expensify/App/issues/12981
[x] https://github.com/Expensify/App/issues/12982

Deployer verifications:

[ ] I checked the App Timing Dashboard and verified this release does not cause a noticeable performance regression.
[ ] I checked Firebase Crashlytics and verified that this release does not introduce any new crashes.

cc @Expensify/applauseleads

:clap: Heads up @Expensify/applauseleads :clap:
A new pull request has been :cherries: cherry-picked :cherries: to staging, and will be deployed to staging in version 1.2.31-3 :rocket:

:tada: All set?…You bet! @Expensify/applauseleads https://github.com/Expensify/App/releases/tag/1.2.31-3 has been deployed to staging :tada:

:rocket: All staging deploys are complete, @Expensify/applauseleads please begin QA on version https://github.com/Expensify/App/releases/tag/1.2.31-3 :rocket:

https://github.com/Expensify/App/issues/13011 is reproducible on prod, so I'm removing the blocker label

https://github.com/Expensify/App/issues/13008 is reproducible in prod, removed the blocker label

:clap: Heads up @Expensify/applauseleads :clap:
A new pull request has been :cherries: cherry-picked :cherries: to staging, and will be deployed to staging in version 1.2.31-6 :rocket:

:tada: All set?…You bet! @Expensify/applauseleads https://github.com/Expensify/App/releases/tag/1.2.31-6 has been deployed to staging :tada:

:clap: Heads up @Expensify/applauseleads :clap:
A new pull request has been :cherries: cherry-picked :cherries: to staging, and will be deployed to staging in version 1.2.31-7 :rocket:

:tada: All set?…You bet! @Expensify/applauseleads https://github.com/Expensify/App/releases/tag/1.2.31-7 has been deployed to staging :tada:

:clap: Heads up @Expensify/applauseleads :clap:
A new pull request has been :cherries: cherry-picked :cherries: to staging, and will be deployed to staging in version 1.2.31-8 :rocket:

https://github.com/Expensify/App/pull/12936 is a pass. Checking off.

:tada: All set?…You bet! @Expensify/applauseleads https://github.com/Expensify/App/releases/tag/1.2.31-8 has been deployed to staging :tada:

I removed #12999 as a deploy blocker as three people are unable to reproduce.

@mvtglobally what's the regression tests status?

@luacmartins we are wrapping up. I'll should be able to share summary in the next hour or so

Regression is completed
PR https://github.com/Expensify/App/pull/12762 is failing https://github.com/Expensify/App/issues/13017 Repro in PROD
PR https://github.com/Expensify/App/pull/12919 is failing https://github.com/Expensify/App/issues/13000. blocker is fixed. we are retesting
We are checking few last CPs. I will have update in a bit.

https://github.com/Expensify/App/pull/12762 is a pass to me. I couldn't repro https://github.com/Expensify/App/issues/13017
https://github.com/Expensify/App/pull/12919 is a pass! Checking off!
https://github.com/Expensify/App/pull/12419 I think it's safe to check this one off.

Waiting on the CP updates!

@mvtglobally any update on the CP checks?

@luacmartins All checked off.
https://github.com/Expensify/App/pull/12919 Steps are pass, but there is an error in the console after refresh. Can you just double check its ok.
https://user-images.githubusercontent.com/43995119/204049542-5b78a7e9-2f41-445f-aa6b-dd8b8918a84b.mp4

@mvtglobally it seems to be the same error as in https://github.com/Expensify/App/issues/12943 and seems unrelated to the changes in that PR, so I think it's safe to check off. Thanks for checking!

I see a new crash on iOS  which seems to be a memory management issue with the OS. Considering that we only had one crash, and no actionable steps to fix this, I'll go ahead with the deploy.

:shipit:


Added colorFuzz to MagickImage

I would love to use this in one of my own projects, but not all functionality is there yet. So I figured maybe I can help a bit :)
Let me know if I understood things wrongly!

I think there's more functions I need before I can do all I want, so no need to publish for me yet. If I have more free time the coming weeks I might make more pull requests!

Thanks for offering to help me out!


Implement multiview attribute

@norru can you test this out?

Superb! I can test this tomorrow.

Hi, I have just tested it, by merging this change on top of master + multithread patch.
Worked at first try! Many thanks!

Awesome!
@cessen, I'd like a quick glance at the API from you before I merge this. In particular, the decision to use impl Iterator<Item=&str> for the getter but &[&str] for the setter is a judgement call. My thinking is that the setter will practically always be used with hardcoded arguments, so being able to write Some(&["left", "right"]) is a big ergonomic win vs. taking an IntoIterator (since <&[&str] as IntoIterator>::Item = &&str). Meanwhile, the getter saves a handful of mallocs vs. Vec<String> and can easily be converted into that by the user if they want.

@ralith WRT to &[&str], it's exactly as said. I already have a Vec<String> containing the view names so borrowing a bunch of &str` not a problem.

I already have a Vec containing the view names so borrowing a bunch of &str not a problem.

I'd actually characterize that as an awkward case, since getting a &[&str] from a Vec<String> requires constructing a new vector, whereas an Iterator<Item=&str> does not.

This is not an issue in my use case and I find passing a slice more
intuitive than passing an iterator.
This is unlikely to give any kind of performance hit in practical cases.
However it's up to you :)
On Wed, 10 Jul 2019, 18:11 Benjamin Saunders<EMAIL_ADDRESS>wrote:

I already have a Vec containing the view names so borrowing a bunch of
&str not a problem.
I'd actually characterize that as an awkward case, since getting a &[&str]
from a Vec requires constructing a new vector, whereas an
Iterator<Item=&str> does not.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cessen/openexr-rs/pull/39?email_source=notifications&email_token=AAGZDSZQLNB6HOEYPSNOPHLP6YJ47A5CNFSM4H7HYGMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZUEDYA#issuecomment-510149088,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGZDS442PBLUIMGB2IA2LDP6YJ47ANCNFSM4H7HYGMA
.

@Ralith
The API looks good to me!  Like you say, I expect most cases will be hard-coded, and even those that aren't are unlikely to be large or especially awkward to construct Vecs for.  If this turns out not to be the case in the future, or if we change our mind based on future custom attribute APIs, I don't think it's the end of the world to come back and change this.


Reshape interface for Vector and Array

Using incorrectly GetData(), Read(), ReadWrite() is the most common issue encountered by new MFEM_FORALL developers, this PR removes the need to extract the pointer from Vector and Array to instead directly use the Vector and Array directly with the Reshape function.
void foo(Vector &v)
{
  auto V = Reshape(v.ReadWrite(), ... );
}

becomes
void foo(Vector &v)
{
  auto V = Reshape(v, ... );
}

and
void foo(const Vector &v)
{
  auto V = Reshape(v.Read(), ... );
}

becomes
void foo(const Vector &v)
{
  auto V = Reshape(v, ... );
}

Do you know the cost/implication of the added mutable qualifier for the lambda body?
This is something that needs to be looked at.

And the Write only case should be also handled - which might be harder to distinguish.

The interface looks much cleaner!

@camierjs My assumption would be that the mutable keyword has absolutely no cost, the difference is that the copy is done as you would expect instead of returning a const object. But I agree that we need to verify that it doesn't impact the performance.

@camierjs I don't think the Write case should be handled, it is a low level optimization I think.

Unfortunately, the type is not what I expected with the auto, in
void foo(const Vector &v)
{
  auto V = Reshape(v, ... );
}

V has type DeviceTensor and not const DeviceTensor because it is calling the copy constructor.
Therefore we would have to add const to auto to fully achieve what I wanted:
void foo(const Vector &v)
{
  const auto V = Reshape(v, ... );
}

Unfortunately, the type is not what I expected with the auto, in
void foo(const Vector &v)
{
  auto V = Reshape(v, ... );
}

V has type DeviceTensor and not const DeviceTensor because it is calling the copy constructor.
Therefore we would have to add const to auto to fully achieve what I wanted:
void foo(const Vector &v)
{
  const auto V = Reshape(v, ... );
}

Are you using this const auto anywhere?

I definitely like that it is cleaner.
However, I'm not sure how that would 'prevent bugs' if we don't add the const in front of the auto for the Reads. Without it, an input might be written and we will miss the compilation error.
So it looks like we are trading a Read for a const - which might be ok.
Another issue I'm perhaps fore-looking is that DeviceTensor was for now a header only file. Using Read and ReadWrite from the vector.hpp will pull the vector.o ⇒ libmfem.a, leading to the need for JIT to relink with it, ⇒ it has to be compiled with -fPIC - which is something we might want to avoid.

@pazner I have #1653 that does just that, I preferred to separate the two PRs, but I can merge it with this one if desired.
@camierjs The way it prevents bugs is mostly by preventing users to have to know that GetData() does not work with Reshape and MFEM_FOR_ALL, and that there is a hidden interface Read(), ReadWrite(), and Write() that must be known. A few persons mentioned that it was very bug prone for them when they started writing GPU kernels.
Regarding the const, it is not required here, because the type is DeviceTensor<const double, Dim>, so the data is protected even without the const in front. It was a concern in the past because I introduced a new Reshape function that would have changed this behavior, but this Reshape function has been discarded.
I agree that we don't want this to impact negatively the JIT which is more important. Needing everything to be header only seems like a big constraint though, but I like it because it means more use of templates for writing modular code.

@pazner I have #1653 that does just that, I preferred to separate the two PRs, but I can merge it with this one if desired.

I think it makes sense to merge that here, but it's up to you of course.

@tzanio You were correct, I had missed a few const for input Vector. I realized that I was saying something inaccurate during the meeting, it doesn't matter from a performance point of view if we use Read() or ReadWrite() to read the data. The performance difference is potentially between ReadWrite() and Write(). So omitting a const in the input parameters will not have a performance impact, there is just a risk to modify something we should not, which is exactly the semantic of const.

@pazner @camierjs I used Reshape for the weights in the Setup kernels, it's more homogeneous like this.

Looks good to me. It would be great to do some performance regression testing (apropos the call today) just to be sure that nothing changed.

You can still avoid a copy doing a Read vs ReadWrite when you just need the data on the device, but update (the BC for example) on the host (Host->Device->Host).

@pazner The potentially expensive cost is "reading" (i.e. host/device or device/host copy), both Read() and ReadWrite() result in the memory being read. Only Write() is potentially less expensive, but this PR doesn't modify this behavior.

@camierjs You're right, I didn't think about this case. ReadWrite() invalidates the memory whereas Read() does not.

@pazner The potentially expensive cost is "reading" (i.e. host/device or device/host copy), both Read() and ReadWrite() result in the memory being read. Only Write() is potentially less expensive, but this PR doesn't modify this behavior.

One of the important points of performance regression would be to catch unintended or unexpected changes in performance, i.e. corner cases or other hard-to-predict behaviors that nevertheless could have performance implications.
I think this is something we should do for all PRs, not just this one. But this is a particularly good candidate because it touches a lot of performance critical code (yes, in a way that looks benign, but it's good to be sure).

it doesn't matter from a performance point of view if we use Read() or ReadWrite() to read the data

The performance implication for using ReadWrite() where only Read() is needed is that you may incur unnecessary host-device copies outside the current function if the data is being read by alternating between host and device reads.

I, personally, as an "expert", prefer the clarity that the explicit calls to Read(), ReadWrite(), and Write() bring. Hiding these behind the const or non-const of the Vector parameter will make things a bit harder for me to follow and, I'd guess, a lot harder for non-"experts" to follow.
Also, when you can just write auto X = Reashape(x, ...), it is much easier to forget to consider the implications of the implicit Read() or ReadWrite(). (As discussed previously, this can be a problem, from a performance point of view, in the case when x is non-const and when Read() or Write() are actually the correct/optimal choice.)
In this case, I'm not I sure I agree that a "shorter code" is a "cleaner code".
In any case, I'll be interested to hear what other people, who have written/used code like this, think: @artv3, @tomstitt, @stefanhenneking, @dylan-copeland, or anyone else.

ping: @rcarson3

I, personally, as an "expert", prefer the clarity that the explicit calls to Read(), ReadWrite(), and Write() bring. Hiding these behind the const or non-const of the Vector parameter will make things a bit harder for me to follow and, I'd guess, a lot harder for non-"experts" to follow.
Also, when you can just write auto X = Reashape(x, ...), it is much easier to forget to consider the implications of the implicit Read() or ReadWrite(). (As discussed previously, this can be a problem, from a performance point of view, in the case when x is non-const and when Read() or Write() are actually the correct/optimal choice.)
In this case, I'm not I sure I agree that a "shorter code" is a "cleaner code".
In any case, I'll be interested to hear what other people, who have written/used code like this, think: @artv3, @tomstitt, @stefanhenneking, @dylan-copeland, or anyone else.

I agree with @v-dobrev here, I think there is clarity to having the developers making the Read, ReadWrite calls.

Other than my comment above, the PR looks good. It will be a good addition for users that prefer the brevity and understand clearly the implications.
The mfem kernels (as something new users, looking to define their own kernels, are likely to read) may benefit from the more expressive use of Read(), Write(), and ReadWrite() but ultimately the new implementations seems to be exactly equivalent, so I'll be fine with the PR if the majority likes the changes.

I agree with @v-dobrev, and I like this PR. For clarity, Read() and Write() can be used, but for the simple cases described in the initial PR comment by @YohannDudouit this new interface is simpler and cleaner. I think the old and new interfaces should be used where appropriate.

For the regular users that just want to write kernels that can be used on the GPU, I think this will be a nice addition. I agree with the others that it's nice that the other versions are still around for those that want to revert to them for various use cases.

(Sorry for being late to review this) I am bit on the fence here. I think @v-dobrev's concerns are valid: there is a lot of value in the code being explicit. On the other hand, the code does look cleaner, which is also valuable. Still, one doesn't want to get to the state (which is easy with C++) where it's hard to tell what exactly is being called. Having multiple overloads that differ by small details makes the code actually harder to understand. That said, I don't have enough experience developing these kernels, so I'm hesitant to take a side here.

I understand that this PR is creating some concerns, I think the discussion in #1626 solves these concerns. I will be refactoring these two PRs (#1626 and #1651), taking into account the feedback.

Can we delete this branch?


Will  this library support socket.o v3/v4

I have angular 11 project and I use socket.io. But I have to use socket.io v3 and newer because Angular 11 doesn't support v2.x.
I used this library in backend. But this project doesn't support socket.io 3.x or newer. Accoring to me other guys want it to support v3/v4.

There is no plans to implement support for protocol v3/v4 implementation.

Could you elaborate? Is this due to lack of capacity or technical limitations?

4.0 is now supported https://github.com/mrniko/netty-socketio/pull/897


Bit Coin Price Tracker

Is your feature request related to a problem? Please describe.
Keeping track of Bitcoin prices can be challenging due to its volatile nature. Users often find it frustrating to monitor price changes accurately and conveniently.
Describe the solution you'd like
Develop a user-friendly Bitcoin price tracker that provides real-time updates on Bitcoin prices. This tracker should offer clear and concise information about current prices, historical data, and possibly predictive analysis to help users make informed decisions.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
The Bitcoin price tracker should ideally include features such as customizable alerts for price thresholds, support for multiple currencies, and a user-friendly interface accessible
What problem is this feature trying to solve?
Track Bitcoint Price
How do we know when the feature is complete?
i will make PR for that

@Sulagna-Dutta-Roy  please assign me this issue


[DNM] Debug napari/packaging CI

Just testing out somethings in napari/packaging
DO NOT MERGE.

MacOS failing due to missing authentication flag. We need a secret added, but @jni has been notified now so it won't be a problem in the next run I trigger 😎

Woohoo, all green.


Configure: Add support for variables in build.info files

Variables have the syntax defined with this regular expression:
\$([[:alpha:]_][[:alnum:]_]*)

They are always local to the build.info they are defined in, and are
defined like this:
$VAR=text

Expansion is done very simply, any reference to the variable (with the
exact same variable syntax) is replaced with its defined value.

Merged
07c244f0cdb0dc47611b95e3f89f52b75b90a814 Use variables in build.info files where it's worth the while
26fe9b07d8b77a937002c699fd2323d614ee5349 Configure: Add support for variables in build.info files


Cannot Connect with Spotify

Every time I try to connect with the Spotify dashboard, I have the same issue. Once I select my audio source as Spotify, I get redirected to a white page with plain text saying

INVALID_CLIENT: Invalid redirect URI

I have no clue how to fix this. It worked before I clean wiped my windows and I can't get it to work now. Idk if this is an issue on Spotify's end but could someone please help me out?

You forgot a step in the guide:

Go to the app you created and click Edit Settings. Add http://localhost/ as a redirect url.

Sorry, forgot to include that I followed every step in the AudioBand setup guide. I added the redirect URL. Thanks

It works now? @PetrikM

No. I have triple checked all of the steps were followed and the issue is persisting.

When you go to your app on the Spotify Developer Dashboard, click the green Edit Settings button and you go down to redirect urls, have you entered http://localhost/ there?
Because that is the only way this issue occurs.

@PetrikM any updates?

Im gonna close this issue as Im certain this is just a step missed in the setup.
In case it isn't, please retry by making a new app on the spotify dashboard.
If it still doesn't work; feel free to re-open the issue.

Same issue. Yes I went to the spotify Developer Dashboard, click the green Edit Settings button and went to redirect urls and entered http://localhost/ there

You have to put http://localhost/ in the redirect urls, http://localhost won't work

Hmm. So I managed to get it working by making sure it had a slash behind it. I'm pretty sure I did that yesterday so I'm tempted to say something happened overnight, but I could have just been careless and forgotten it. Well, now there's a new problem, actually:
This localhost page can’t be found - No webpage was found for the web address: http://localhost/?code=[really long random letter/number string]

This is a new error, I'll have a look as soon as I have some time (currently doing exams)

I seem to have the same problem, I also followed the instructions, I managed to authorize, but then every time it seems to want to poll, this page opens up in the browser.

I cannot seem to figure out what this issue means, though do you have a custom iis setup?
That might be interfering with the authorization, you should be able to bypass by temporarily disabling iis or changing the callback port in AudioBand Settings

Yup; thank you for your help. You were right, changing the port did help, it now works as intended when setting the audio source to Spotify.

Glad to hear it works now

Yes, having a custom IIS setup might interfere with the port that AudioBand uses, I just changed the AudioBand Callback Port and it worked fine


Batch Editor - button placement in config

grey out/remove ok button in the first few pages since it's not needed

Do not think it is possible as those are part of the settings framework


s.languageDetector.init is not a function

Using i18next 3.4.1/i18next-browser-languageDetector 1.0.0 with typescript/webpack
Building using typescript/webpack, a webpack build completes without errors.  Loading the (Aurelia) application in a browser gives the following error:
bluebird.js:5119TypeError: s.languageDetector.init is not a function
    at I18n.init (http://localhost:9000/app.bundle.js:3410:28)
    at http://localhost:9000/app.bundle.js:37447:63
    at registerI18N (http://localhost:9000/app.bundle.js:24583:13)
    at Object.configure (http://localhost:9000/app.bundle.js:24645:26)
    at http://localhost:9000/aurelia.bundle.js:12891:34
From previous event:
    at _loadPlugin (http://localhost:9000/aurelia.bundle.js:12889:40)
    at http://localhost:9000/aurelia.bundle.js:12882:14
From previous event:
    at loadPlugin (http://localhost:9000/aurelia.bundle.js:12881:73)
    at next (http://localhost:9000/aurelia.bundle.js:13142:18)
From previous event:
    at next (http://localhost:9000/aurelia.bundle.js:13142:54)
    at http://localhost:9000/aurelia.bundle.js:13149:14
From previous event:
    at FrameworkConfiguration.apply (http://localhost:9000/aurelia.bundle.js:13134:42)
    at Aurelia.start (http://localhost:9000/aurelia.bundle.js:12751:21)
    at Object._callee$ (http://localhost:9000/app.bundle.js:37479:40)
    at tryCatch (http://localhost:9000/aurelia-bootstrap.bundle.js:3189:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (http://localhost:9000/aurelia-bootstrap.bundle.js:3463:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (http://localhost:9000/aurelia-bootstrap.bundle.js:3222:21)
    at http://localhost:9000/app.bundle.js:37390:65
From previous event:
    at __awaiter (http://localhost:9000/app.bundle.js:37370:12)
    at Object.configure (http://localhost:9000/app.bundle.js:37413:12)
    at http://localhost:9000/aurelia-bootstrap.bundle.js:15254:27
From previous event:
    at config (http://localhost:9000/aurelia-bootstrap.bundle.js:15253:46)
    at handleApp (http://localhost:9000/aurelia-bootstrap.bundle.js:15244:10)
    at http://localhost:9000/aurelia-bootstrap.bundle.js:15272:9
From previous event:
    at http://localhost:9000/aurelia-bootstrap.bundle.js:15269:44
From previous event:
    at run (http://localhost:9000/aurelia-bootstrap.bundle.js:15266:24)
    at Object.<anonymous> (http://localhost:9000/aurelia-bootstrap.bundle.js:15291:1)
    at Object.aurelia-bootstrapper-webpack (http://localhost:9000/aurelia-bootstrap.bundle.js:15292:30)
    at __webpack_require__ (http://localhost:9000/aurelia-bootstrap.bundle.js:57:38)
    at Object.184 (http://localhost:9000/aurelia-bootstrap.bundle.js:7252:1)
    at __webpack_require__ (http://localhost:9000/aurelia-bootstrap.bundle.js:57:38)
    at 0 (http://localhost:9000/aurelia-bootstrap.bundle.js:140:18)
    at http://localhost:9000/aurelia-bootstrap.bundle.js:143:10

Note -
Background:
When importing languagedetector in TypeScript like this:
import LngDetector from 'i18next-browser-languagedetector';

we get the following error:
[default] Checking started in a separate process...
[default] /Users/donpeterkofsky/Documents/gc-2/src/main.ts:11:8
    Module '"/Users/donpeterkofsky/Documents/gc-2/node_modules/i18next-browser-languagedetector/index"' has no default export.
[default] Checking finished with 1 errors

If we change the import to this:
import * as LngDetector from 'i18next-browser-languagedetector';

we get the error noted above, in the web browser console.
So, it seems there may be an issue with the typings, or the exported type?

[default] Checking started in a separate process...
[default] /Users/donpeterkofsky/Documents/gc-2/src/main.ts:11:8
    Module '"/Users/donpeterkofsky/Documents/gc-2/node_modules/i18next-browser-languagedetector/index"' has no default export.
[default] Checking finished with 1 errors

looks like you try to transform the /Users/donpeterkofsky/Documents/gc-2/node_modules/i18next-browser-languagedetector/index on import -> there is no default export as this is a regular commonjs export
for importing jsnext (es6 import/export) try using import LngDetector from 'i18next-browser-languagedetector/dist/es/index.js';
but personally i never had to do this on webpack....are you using beta of webpack 2? or else it must be related to typescript...

I am using typescript + webpack, in an Aurelia project.
Yes, the change above does work, to eliminate the issue.  However, that does not appear to be the expected practice for use with TypeScript.  There are many users out there using typescript with Aurelia or Angular2.  And, for Aurelia, they are including i18next as a dependency in their aurelia-i18n module.  So, this really should be fixed, to provide a proper default typed export.

not sure...i believe something is wrong in the config you use. eg. using babel to transform es6 you don't transform modules loaded in node_modules as they are expected to be not delievered in es6 (as that is not supported in all browsers).
for the case a build chain support es6 transform incl. treeshaking the build tool should resolve jsnext:main entrance point defined in package.json.
how do you import i18next? it has the same export like the browser language detector...

There seems to be a misunderstanding.
I am using webpack, which compiles typescript (.ts) files.  Webpack would not do any transformation on the node_monules JavaScript (.js) files.
I do not import i18next, as I said above, i18next is a dependency of the aurelia-i18n module, and they import it into their source files, in the typescript typing file, like this:
import i18next from 'i18next';

I do import the i18next-xhr-backend module, like this:
import Backend from 'i18next-xhr-backend';

There are a couple of differences that I see in the commonjs files for i18next compared to i18next-browser-detector:

In i18next, the return type is declared like this: exports.default = new I18n(); In browser detector, the return type is like this:  exports.default = Browser;  So, in the first case it looks like the export is an instance of an object, in the second case it looks like a function.

In i18next, there is a distributable file in the commonjs directory named i18next.js, which referes to another file i18next.js, and which does some trickery to gaurantee that a default export is present; in the browser-detector, there is only a distributable file named index.js.

So, I do see differences, and #2 seems like it may be related to the issue.

#2 is only a check on passed in options - asserting an array is passed in.
for the differences:

is true: i18next exposes an instance while the other exposes a constructor

i18next:
// package.json -> regular export of a commonjs file
"main": "./index.js",

// /index.js -> commonjs export for the dist files export.default
module.exports = require('./dist/commonjs/index.js').default;

// /dist/commonjs/index.js -> exports an export
exports.default = _i18next2.default;

i18next-browserLangauge-detector:
// package.json -> regular export of a commonjs file
"main": "./index.js",

// /index.js -> commonjs export for the dist files export.default
module.exports = require('./dist/commonjs/index.js').default;

// /dist/commonjs/index.js -> exports directly (but basically the same)
exports.default = Browser;

So for me it seems more an issue of the typescript loader like eg. https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-232765825 but as i'm not use typescript it's hard for me to find the root cause of this issue. But like said...on a non-typescript build chain we never heard of such an issue. Might be the .ts file you use has some wrong statement in it?

import LngDetector from 'i18next-browser-languagedetector';
we get the following error:
[default] Checking started in a separate process...
[default] /Users/donpeterkofsky/Documents/gc-2/src/main.ts:11:8
    Module '"/Users/donpeterkofsky/Documents/gc-2/node_modules/i18next-browser-languagedetector/index"' has no default export.
[default] Checking finished with 1 errors

The import statement is correct -> the check is wrong - there is no default export on /i18next-browser-languagedetector/index which is the correct thing to do. So it really seems the .ts file has a wrong statement for that.

@jamuhl
Jan,
I'm confused by the comment above.  I'll try to summarize the facts:

You've said that there is likely to be some problem with the TypeScript config, which would be specific to the LangDetector module.  There is no module-specific config.  The config would affect all modules in the same way.

You've said that it is the correct thing to do, to not expose a default export for a module.   Does this make sense, if you want the module to be easily compatible with/usable by TypeScript? See https://www.typescriptlang.org/docs/handbook/modules.html

You are suggesting that there is a problem with the TypeScript loader based on a comment in the TypeScript git project.  But if you fully read through the comment, you'll see that the original problem was determined to be with a module for AngularJS, and the module author fixed the problem.

Most fully TypeScript-compatible modules are providing typings files (i.e., langDetector.d.ts) to facilitate use with TypeScript. The  i18next modules do not consistently provide these:

For base i18next, there are no typings provided; in fact, the aurelia-i18n project itself has had to provide typings for i18next themselves.
For i18next-xhr-backend, there is a /typings directory with a proper typings file.
For i18next-browser-languagedetector, there are no typings available.
I suspect the lack of the typings file is the cause of the issue that I'm reporting.

I realize that you may not be an expert with TypeScript - I am not an expert either, as I've learned it as part of starting a project with the Aurelia framework.  However, two of the major JS frameworks (Aurelia and Angular2) and Microsoft are fully committed to TS, which means many developers are using it.  And, your i18next module is being used as a dependency in the aurelia-i18n module, which means many Aurelia users will be exposed to your module.  I am doing a commercial project now with Aurelia, which will be internationalized, and so I am incorporating the framework early in the development process.
It would seem to be advantageous to take care of making the module fully compatible with TS now, before many more users run into issues and begin logging them here as issues on your GitHub.  Perhaps collaborating with the Aurelia team from their aurelia-i18n module could be helpful?

reading the provided link: https://www.typescriptlang.org/docs/handbook/modules.html
look at the section export = and import = require():
import zip = require("./ZipCodeValidator");
seems to be the way to use commonjs modules => which most modules provided via npm are.

typescript is recommended on angular2 but no need (fully optional)
not every module is backed by a large company...i work solo on i18next in my free time. trading time with my family to give people what it is.
just because another module (aurelia) uses i18next and prefer typescript does not enforce i18next to adapt to it - i18next is used in a lot of frameworks for i18n
.ts files can be found here: https://github.com/DefinitelyTyped/DefinitelyTyped -> can be updated by community preferring to use typescript

remove the typings from i18next-xhr-backend in favour to https://github.com/DefinitelyTyped/DefinitelyTyped

further see http://stackoverflow.com/questions/29596714/new-es6-syntax-for-importing-commonjs-amd-modules-i-e-import-foo-require


Separate tool to set up the TAS tool for a unity game

make sure this includes bepinex

Added in #105


Merge from vscode b7235954cf5c8ec4086a44262d38265552272a7a

https://github.com/microsoft/vscode/commit/b7235954cf5c8ec4086a44262d38265552272a7a (vscode/release/1.43) [web] Welcome views: links trigger unload (fix https://www.github.com/microsoft/vscode/issues/92633) (https://www.github.com/microsoft/vscode/issues/92635)

/merge

Merging PR based on approval from @kburtram


Link to proper order page from nft page

https://github.com/orgs/kaguraswap/discussions/142#discussioncomment-3105632

nft.holder == connected user

no order

"List for Sale" button

order.direction == "buy"

"Accept Offer" button

nft.holder != connected user

order.direction != "sell"

"Make Offer" button

order.direction == "sell"

"Buy now" button and "Make Offer" button


Skip routes w/ no Swagger Spec comment

I'm adding swagger comments to routes in my project as I need them.
The auto-generated ones that have no responses defined for them are not really useful to me at all (also, in the OpenAPI 3.x spec operation.responses is a required field). It would be nice if I could skip any routes that don't have comments on them.
Not sure if this setting exists (I couldn't find it). I'd be happy to implement it if someone can point me in the right direction.

@nVitius
Perhaps the following features might be available.

How to hide an endpoint?
If you don't want an end point to be included, add ### NoDocs ### in front of it e.g.
### NoDocs ###
GET   /docs/swagger-ui/*file        controllers.Assets.at(path:String="/public/lib/swagger-ui", file:String)

Skip entire file
The entire file can be skipped by adding ### SkipFileForDocs ### at the beginning of the routes file.
Alternatively, the routes file can be split into multiple files, so that you can skip practically only a part of the file.
https://www.playframework.com/documentation/ja/2.4.x/SBTSubProjects
### SkipFileForDocs ###

GET      /api/hidden/a                 controllers.hiddenEndPointA()
GET      /api/hidden/b                 controllers.hiddenEndPointB()
GET      /api/hidden/c                 controllers.hiddenEndPointC()

It may also be possible to create a feature here to skip blank comments in the SwaggerSpecGenerator.
https://github.com/iheartradio/play-swagger/blob/5ea8f16d76ebdf33a5e04bf705d1328b00c74f2f/core/src/main/scala/com/iheart/playSwagger/SwaggerSpecGenerator.scala#L416-L430
Sorry for the brief answer, but if you have any questions, please feel free to ask again.


How do I get an id_token from a Credential?

This is my implementation of the authorize() method. Everything works, except I don't know how to get the id_token which is what I need.
    public Credential authorize() throws IOException {
        // Load client secrets.
        InputStream in = GoogleLogin.class.getResourceAsStream("/google/client_secret.json");
        GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

        // Build flow and trigger user authorization request.
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
                HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
                .setDataStoreFactory(DATA_STORE_FACTORY)
                .setAccessType("offline")
                .build();

        Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");

        System.out.println("Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
        return credential;
    }

A Credential object has a method called getAccessToken(), but this token is no good to my backend. What I need is the id_token. Is there a way to get it using this library?

Oauth2 oauth2 = new Oauth2.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
                .setApplicationName(APPLICATION_NAME)
                .build();
Object o = oauth2.tokeninfo().setAccessToken(credential.getAccessToken()).getIdToken();

This returns a null object for some reason, even though the connection and authentication is valid. What am I doing wrong?

I have managed to solve this issue myself.
You can find the full solution at this StackOverflow https://stackoverflow.com/a/49397884/6389372:


Refresh Method

Is there any method which allows me to know:

What is the refreshing state? (isRefreshing/ isNotRefreshing)  ?
Or any method which can enable/disabling the refreshing state ?

This is not exactly an issue, I am not able to find the methods which allow me to control the refreshing state of the Layout (Refering the English Doc.)

Hi, sorry to late to reply.
1.IsRefreshing() or IsLoadingMore is that methd.
2.refreshComplete() method will disable the refresh state. autoRefresh or autoLoadMore will enable the refresh state.
You can checkout the demo and Run it, so that you can easily understand the methods.

@dkzwm Okay Thanks for your help. Let me try.
Btw it a very good library great work.


Handle Prometheus output with long URL's

Co-authored-by: Tim Weidner<EMAIL_ADDRESS>High-level description
Fix handling of long values by the nginx_module_vts package. This allows URI's and User Agents to be measured.
This also includes changes to the nginx_module_vts package to prevent buffer overflows.
Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

https://jira.mesosphere.com/browse/DCOS_OSS-4931 GET request with large URI leads to memory corruption with the Nginx VTS module

Related tickets (optional)
Other tickets related to this change:

DCOS_OSS- Foo the Bar so it stops Bazzing.

Checklist for all PRs

[ ] Added a comprehensible changelog entry to CHANGES.md or explain why this is not a user-facing change: Fix to unreleased code
[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): changes to nginx-module-vts
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot label Ready For Review


SubscriberProtocol hangs when password is set on factory

SubscriberProtocol.replyReceived swallows the "OK" reply for the AUTH command, causing factory.deferred never to be completed, thus not giving the connection to the user.
If authentication is enabled, AUTH is necessary to to subscribe. MonitorProtocol probably has the same issue. A dbid being set causes the same problem. Of course, SELECTing a DB does not make sense when using SubscriberProtocol, but in my case happened because I reused connection credentials from a "data" connection.
A quick fix that seems to work is to add an else clause to replyReceived:
        else:
            self.replyQueue.put(reply)

Example:
from twisted.internet import defer, reactor
from txredisapi import SubscriberProtocol, RedisFactory

@defer.inlineCallbacks
def main():
	factory = RedisFactory(None, dbid=None, poolsize=1, password="test")
	factory.protocol = SubscriberProtocol
	reactor.connectTCP("localhost", 6379, factory)
	print("Connecting...")
	conn = yield factory.deferred
	print("Connected.")
	yield conn.subscribe("test")
	print("Subscribed.")

main()
reactor.run()

I'd be great if you could provide the patch and a test case.

Done :)
The test case was a bit tricky because it kind of requires a password being set on Redis, I hope it's fine the way I did it.
I didn't write a test for MonitorProtocol, since there wasn't any test yet.


Detect malware searching for specific data in the clipboard

Definition: Malware can search specific data in the clipboard to collect them or modify them
Source: https://blog.cyble.com/2023/05/03/new-kekw-malware-variant-identified-in-pypi-package-distribution/
Sample:
def address_swap(self):
  try:
    clipboard_data = pyperclip.paste()
    if re.search ('^[13][a-km-zA-HJ-NP-21-9]{25, 34}$', clipboard_data):
      if clipboard_data not in [self.address_btc, self.address_eth, self.address_xchain]:
        if self.address_btc != "none":
          pyperclip.copy(self.address_btc)
          pyperclip.paste()
    if re.search ('^Ox[a-fA-FO-9](40)$', clipboard data) :
      pyperclip.copy(self.address_eth)
      pyperclip-paste()

Sounds good! Probably matching on pyperclip.paste() is already enough... PyPI packages accessing the clipboard probably make sense to investigate

Yep I agree. In case pyperclip.paste() is used by several legit PyPI packages, we can match on pyperclip.paste() followed by re.search or other similar functions that search for data


CI: test against MSRV

Description

Bump the MSRV to 1.45 so that all dependencies compile
Test against the MSRV
Other small improvements: Use the same github action to download rust and don't run actions/checkout multiple times

Checklist

N/A Formatted code using cargo fmt --all
N/A Linted code using clippy cargo clippy --all-targets --all-features -- -D warnings
✅ Updated README.md using cargo readme -r influxdb -t ../README.tpl > README.md
✅ Reviewed the diff. Did you leave any print statements or unnecessary comments?
N/A Any unfinished work that warrants a separate issue captured in an issue with a TODO code comment

Very useful change! Thanks a lot!
I'm always happy when best practices are implemented into the project.


Steps for removing yourself from the blocked senders list cannot be followed

I'm not sure this is the correct place for this feedback, but the blocked senders delist portal at https://sender.office.com/ doesn't seem to be working as described in the linked docs page.
The form cannot be fully completed due to what seems like a timeout error and the email address given to manually request a delisting<EMAIL_ADDRESS>cannot be delivered to as the email system isn't responding.
Do we know if the delist portal is still maintained? If not, could the documentation be amended to reflect this?
Thanks

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 390d461b-7fce-d4ac-1c90-97b7b81dc0c2
Version Independent ID: 9f8c7285-627f-13c6-1c7a-88fa7e14ed86
Content: Remove yourself from the blocked senders list and address 5.7.511 Access denied errors - Office 365
Content Source: microsoft-365/security/office-365-security/use-the-delist-portal-to-remove-yourself-from-the-office-365-blocked-senders-lis.md
Product: m365-security
Technology: mdo
GitHub Login: @MSFTTracyP
Microsoft Alias: tracyp

@samueloakley Thank you for your feedback. The delist portal is still maintained. If there are errors pertaining to removing yourself from the blocked senders, I'd recommend you contact support via the need help section on the admin center.
Also, the feedback about the products can be provided directly on the main feedback portal- https://feedbackportal.microsoft.com/  so that a dev/product engineer will be able to answer and address it.
Hope this helps!
Thanks
Sri

@msbemba Thank you I will raise an issue there.


feat: add anonymize option

Closes #
📑 Description

Add anonymize option during explain.
✅ Checks

[x] My pull request adheres to the code style of this project
[x] My code requires changes to the documentation
[x] I have updated the documentation as required
[x] All the tests have passed

ℹ Additional Information

As mentionned here #139, during the analyze --explain the data sent to the AI backend may contain sensitive information that the user wants to anonymize. A flag has been added to allow anonymization of the data before sending it to OpenAI. If an anonymized data is returned in the solution, it is de-anonymized to make the message clear for the user.
k8sgpt git:(feature/add-anonymize-option) ✗ ./k8sgpt analyze --filter HorizontalPodAutoScaler --namespace k8sgpt --explain --anonymize

Return of openAI

The Kubernetes system is trying to scale a StatefulSet named tGLcCRcHa1Ce5Rs using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.

0 k8sgpt/fake-hpa(fake-hpa)
- Error: HorizontalPodAutoscaler uses StatefulSet/fake-deployment as ScaleTargetRef which does not exist.
The Kubernetes system is trying to scale a StatefulSet named fake-deployment using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.

I just modified the PR with all your comments @AlexsJones

Thank you for your review @ivan-valkov . PR updated :slightly_smiling_face:

LGTM


Upgrade dependencies - only lib

The pr https://github.com/apache/james-project/pull/1647 has a lot of files changed.
The ci can't green after several re-runs, So this pr is a split part of 1674 for easier

CI error
setFlagsShouldWorkWithConcurrencyWithRemove – org.apache.james.mailbox.cassandra.mail.CassandraMessageMapperTest

Error
Expecting empty but was: ["custom-3-9"]
Stacktrace
java.lang.AssertionError:
Expecting empty but was: ["custom-3-9"]
Standard Output
08:27:05.879 [ERROR] o.a.j.m.c.m.CassandraMessageMapper - Can not update following UIDs [ComposedMessageId{mailboxId=CassandraId{id=33f35700-2b8e-11ee-8d16-b744774e0118}, messageId=CassandraMessageId{uuid=33f552d0-2b8e-11ee-8d16-b744774e0118}, uid=MessageUid{uid=1}}] for mailbox 33f35700-2b8e-11ee-8d16-b744774e0118

It is not related to other commits in this pr.
test cases: setFlagsShouldWorkWithConcurrencyWithRemove and userFlagsUpdateShouldWorkInConcurrentEnvironment (concurrency test) is unstable (exactly is it not work, but the threadCount and updateCount is quite small, so it is not enough to easier make the test fail)
=> I marked @Disabled it

Tag it as unstable instead please

Quock perf test maybe?


Forward Mapping Context for Immutable Mapping

Forward mapping context for nested properties/arrays/dictionaries during immutable mapping. Fix issue
In addition - add context mapping tests both for BaseMappable & ImmutableMappable

Thanks @haritowa 👍 , looks good.
For some reason some tests fail occasionally on TravisCI. I just restarted them and everything was fine.

Nice, love this repo :)


SSH Equivalence for root

Hello,
Is there away to configure SSH equivalence for the user, we're using root at the moment, as part of the common tasks?

Hi,
I guess you mean between the control-machine and your targets?
I could add an extra role which can be toggle-included, where you define the user(s) you want to either create or add keys for?

That would be great, would mean you could effectively run this from the get-go limited initial setup on the targets

I also hit this error:
yum: Cannot retrieve metalink for repository: epel/x86_64
I assume that is something not setup right on the target side with the repo?

Sorry about the late answer, but yes - something is iffy at the target

No worries, thanks so much for continuing to answer the benign questions...
I fixed the yum issue, it needed "yum update" running on the host to pull everything down.  However now the playbook just seems to sit there on this task:
TASK [common : Install common packages OL/RHEL] ***************************************************************************************************************
I've checked over on the host can see python running but it doesn't look like yum has been called:
[root@OL7-ANS-TST yum.repos.d]# ps -ef |grep yum
root      3245  2887  0 16:20 pts/1    00:00:00 /bin/sh -c sudo -H -S -n -u root /bin/sh -c 'echo BECOME-SUCCESS-vcapokvxqiqsqjmxzvdfvavmloymxpsa; http_proxy=http://proxy.logica.com:80 use_proxy=True /usr/bin/python /root/.ansible/tmp/ansible-tmp-1528730451.19-66823140883058/yum.py' && sleep 0
root      3254  3245  0 16:20 pts/1    00:00:00 sudo -H -S -n -u root /bin/sh -c echo BECOME-SUCCESS-vcapokvxqiqsqjmxzvdfvavmloymxpsa; http_proxy=http://proxy.logica.com:80 use_proxy=True /usr/bin/python /root/.ansible/tmp/ansible-tmp-1528730451.19-66823140883058/yum.py
root      3255  3254  0 16:20 pts/1    00:00:00 /bin/sh -c echo BECOME-SUCCESS-vcapokvxqiqsqjmxzvdfvavmloymxpsa; http_proxy=http://proxy.logica.com:80 use_proxy=True /usr/bin/python /root/.ansible/tmp/ansible-tmp-1528730451.19-66823140883058/yum.py
root      3256  3255  0 16:20 pts/1    00:00:00 /usr/bin/python /root/.ansible/tmp/ansible-tmp-1528730451.19-66823140883058/yum.py
root      3257  3256  0 16:20 pts/1    00:00:00 /usr/bin/python /tmp/ansible_KFi1is/ansible_module_yum.py
root      3264  1554  0 16:24 pts/0    00:00:00 grep --color=auto yum
[root@OL7-ANS-TST yum.repos.d]#
I'm not sure what is causing the blocker, I've run the python script manually that just sits there also

Actually this time it bombed out:
TASK [common : Install common packages OL/RHEL] *********************************************************************************************************************************************************************************************
fatal: [OL7-ANS-TST.local]: FAILED! => {"changed": false, "msg": "Failure talking to yum: failure: repodata/repomd.xml from ol7_addons: [Errno 256] No more mirrors to try.\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30002 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30002 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttps://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')"}
I think it's a proxy issue although I've set the following:

name: Install common packages OL/RHEL
yum: name={{ common_packages }} state=installed
environment:
http_proxy: http://proxy.logica.com:80
use_proxy: yes
when: install_os_packages and ansible_os_family == 'RedHat'
tags:

commonpackages

Okay I've sorted the yum issues out, it was a combination of running yum update directly on the host for the first time and then proxy settings etc.
Now it's falling at this:
TASK [orahost : Asmlib | Enable and start Oracle Asmlib] ************************************************************************************************************************************************************************************
fatal: [OL7-ANS-TST.local]: FAILED! => {"changed": false, "msg": "Could not find the requested service oracleasm: host"}
to retry, use: --limit @/root/ansible-oracle/vbox-si-asm-install.retry
PLAY RECAP **********************************************************************************************************************************************************************************************************************************
OL7-ANS-TST.local          : ok=31   changed=25   unreachable=0    failed=1
Doesn't look like oracleasm is there on the host.

The installation of Restart/GI with ASM was refactored for 19c or newer.
This should be fixed there. Older versions are not supported anymore.


PHP Error Handling

Description
In this issue i am working with error handling in php.(Documentation)
Domain
Backend Dev (PHP)
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign


Templating

Hi! I have a problem with render my instagramm photos in DOM. When  i try set this config, i can't wrapp my images tag in  a - tag.I don't understand why. Please, help. Thanks!
My config:
const InstaFeed= require("instafeed");
let feed = new InstaFeed({
get: "user",
userId: "6312841675",
clientID: "c4dc1832e4ea4f4a9f2fe01b7a88dcbe",
accessToken: "6312841675.1677ed0.4fe2a42c6bf7405bbc04c953f7ecd7dd",
resolution: "standard_resolution",
limit: 10,
template: ''

});
feed.run();

Hi @VerDan777 - I know this is an old issue, do you still need help with this?


Signal display y-axis is inverted

Run with the following simple demo:
var buffer = context.createBuffer(1, 10, context.sampleRate);
var s = context.createBufferSource();
var d = buffer.getChannelData(0);
for (var k = 0; k < d.length; ++k) {
  d[k] = 1;
}

s.buffer = buffer;
s.loop = true;

var g = context.createGain();

s.connect(g);
g.connect(context.destination);

g.gain.value = 0;
g.gain.setValueAtTime(1, 0);
g.gain.linearRampToValueAtTime(-1, 1.5);

s.start();

The curve starts at the bottom and goes up to the top.  But the code says the gain starts at 1 and linear ramps down to -1.  Thus the y axis is reversed, I think.

Hah!  Will fix it soon.

Closed with bf4d3113d5272bba96d7209ee0a6e3230d607a4d.


rosegarden: 17.12.1 -> 18.06

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from rosegarden.
meta.description for rosegarden is: '"Music composition and editing environment"'.

Checks done (click to expand)

built on NixOS
/nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06/bin/rosegarden passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 18.06 with grep in /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06
directory tree listing: https://gist.github.com/e0857e1dc83be9aa3b4a0c0524cd70b1
du listing: https://gist.github.com/0ab31ed1e05e1839cf37c3cbca1f3f0a

Instructions to test this update (click to expand)

One-time optional setup to skip building using Cachix:

Install cachix from https://cachix.org/
Use r-ryantm's cache:cachix use r-ryantm

Test this update by entering a nix shell, seeing what is inside the
result, and if applicable, running some binaries:
nix-shell --pure -I nixpkgs=https://github.com/r-ryantm/nixpkgs/archive/33e14cb01156ac803f128a421483d14c1e3dd0ae.tar.gz -p rosegarden
ls -la /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06

cc @lebastr for testing.

Success on x86_64-linux (full log)
Attempted: rosegarden
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06
shrinking /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06/bin/rosegarden
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06/bin
patching script interpreter paths in /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06
checking for references to /build in /nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06...
postPatchMkspecs
postPatchMkspecs
/nix/store/0n4791n38y3s4byalqr3anii57g5iw1x-rosegarden-18.06

Success on aarch64-linux (full log)
Attempted: rosegarden
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/73kk8fxnx4ihc79w1id2vj0d3bm2nfcg-rosegarden-18.06
shrinking /nix/store/73kk8fxnx4ihc79w1id2vj0d3bm2nfcg-rosegarden-18.06/bin/rosegarden
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/73kk8fxnx4ihc79w1id2vj0d3bm2nfcg-rosegarden-18.06/bin
patching script interpreter paths in /nix/store/73kk8fxnx4ihc79w1id2vj0d3bm2nfcg-rosegarden-18.06
checking for references to /build in /nix/store/73kk8fxnx4ihc79w1id2vj0d3bm2nfcg-rosegarden-18.06...
postPatchMkspecs
postPatchMkspecs
/nix/store/73kk8fxnx4ihc79w1id2vj0d3bm2nfcg-rosegarden-18.06