TRV battery sensors

Hi. Will you be adding support for reporting battery status of TRVs?
Thanks

@martinlong1978, yes the new upgrade which is in beta version should support TRV's battery status. I don't have a TRV myself so I wlill be looking for some testers to confirm this.

Excellent! I'll be glad to help.
On Sat, 10 Oct 2020, 23:39 Khole<EMAIL_ADDRESS>wrote:

@martinlong1978 https://github.com/martinlong1978, yes the new upgrade
which is in beta version should support TRV's battery status. I don't have
a TRV myself so I wlill be looking for some testers to confirm this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Pyhive/HA-Hive-Custom-Component/issues/4#issuecomment-706620975,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACJ7G2E774AJLKJE4OUQFLSKDPAXANCNFSM4SA5FDRA
.

I have just tried the beta version (b7) and can confirm that battery levels for the TRVs are created. Unfortunately, the climate entities are not

I've been away, but hope to give it a try tonight.
On Mon, 19 Oct 2020, 12:35 holdestmade<EMAIL_ADDRESS>wrote:

I have just tried the beta version (b7) and can confirm that battery
levels for the TRVs are created. Unfortunately, the climate entities are not
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Pyhive/HA-Hive-Custom-Component/issues/4#issuecomment-712096372,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACJ7GZYZHMWZY6U6U3JUXLSLQP6LANCNFSM4SA5FDRA
.

For me neither the climate entries, nor the battery entries are showing for the TRVs in the latest beta. Currently I need to stick with master to have a working system.

@martinlong1978 please can you try beta 10 and feedback on the TRV issues

Issue to be pick up in #10

As an aside, I see a problem in hotwater.py in pyhiveapi.
Many of the methods seem to take a device dict as a parameter, and
then access the parameters of that dict (e.g. device["hive_id"]  )
However, the parameters being passed into that method are the id
themselves. Have a look at get_state and get_boost for example, and
the places they are called from.
Regards
Martin
On Mon, 9 Nov 2020 at 10:50, Khole<EMAIL_ADDRESS>wrote:

Closed #4.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

On the issue with the client devices... I was looking at the exception
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 201, in _async_setup_platform
await asyncio.gather(*pending)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 310, in async_add_entities
await asyncio.gather(*tasks)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 361, in _async_add_entity
suggested_object_id = entity.name
File "/home/openhabian/.homeassistant/custom_components/hive/climate.py",
line 107, in name
return self.device["ha_name"]
KeyError: 'ha_name'
So I put a debug line in climate.py (in the custom component)
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
BathroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Den
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Dining Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Effies Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ensuite shower
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ethan's Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Hall
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Lounge Window
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Master Bedroom
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Office
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
So all those TRV devices have no attributes at all.
On Mon, 9 Nov 2020 at 21:45, Long, Martin<EMAIL_ADDRESS>wrote:

As an aside, I see a problem in hotwater.py in pyhiveapi.
Many of the methods seem to take a device dict as a parameter, and
then access the parameters of that dict (e.g. device["hive_id"]  )
However, the parameters being passed into that method are the id
themselves. Have a look at get_state and get_boost for example, and
the places they are called from.
Regards
Martin
On Mon, 9 Nov 2020 at 10:50, Khole<EMAIL_ADDRESS>wrote:

Closed #4.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi,
I have found the problem, but I don't know the fix.
The issue is in get_heating in heating.py
The line:         if device["device_id"] in Data.devices:
Taking, for example, my bathroom TRV... device_id
3fbed695-75cc-44f5-a6eb-7c50bbcd4cd4
However, in the dict Data.devices that object has the id:
945dc093-95a2-4c6f-bde2-d9724dfb56b2. The device_id is there in the
object, under state/control
It looks like the object is laid out a bit differently to the
thermostatui object. Please let me know if I can provide any
additional information.
"945dc093-95a2-4c6f-bde2-d9724dfb56b2":{
"id":"945dc093-95a2-4c6f-bde2-d9724dfb56b2",
"type":"trv",
"sortOrder":1,
"created":1572692038181,
"parent":"c8b7142b-4812-4000-ae32-de2626e12a95",
"props":{
"online":True,
"presenceLastChanged":1604492001090,
"model":"TRV001",
"version":"0000021B",
"manufacturer":"Danfoss",
"upgrade":{
"available":False,
"version":"0000021B",
"progress":100,
"upgrading":False,
"status":"COMPLETE"
},
"power":"battery",
"signal":100,
"battery":100,
"eui64":"14B457FFFEC22F2F",
"calibration":{
"start":"2019-11-02T16:19:36.988+0000",
"end":"2019-11-02T19:50:37.115+0000"
},
"capabilities":[
"INFORMATION",
"RENAME",
"DELETE",
"TRV_CALIBRATION"
]
},
"state":{
"name":"Bathroom",
"control":"3fbed695-75cc-44f5-a6eb-7c50bbcd4cd4",
"zone":"5977360b-9bb5-4b1f-915d-36e7bac2037f",
"zoneName":"Thermostat 1",
"childLock":False,
"mountingMode":"HORIZONTAL",
"mountingModeActive":False,
"viewingAngle":"ANGLE_0",
"calibrationStatus":"CALIBRATED"
}
},
On Mon, 9 Nov 2020 at 22:07, Long, Martin<EMAIL_ADDRESS>wrote:

On the issue with the client devices... I was looking at the exception
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 201, in _async_setup_platform
await asyncio.gather(*pending)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 310, in async_add_entities
await asyncio.gather(*tasks)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 361, in _async_add_entity
suggested_object_id = entity.name
File "/home/openhabian/.homeassistant/custom_components/hive/climate.py",
line 107, in name
return self.device["ha_name"]
KeyError: 'ha_name'
So I put a debug line in climate.py (in the custom component)
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
BathroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Den
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Dining Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Effies Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ensuite shower
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ethan's Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Hall
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Lounge Window
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Master Bedroom
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Office
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
So all those TRV devices have no attributes at all.
On Mon, 9 Nov 2020 at 21:45, Long, Martin<EMAIL_ADDRESS>wrote:

As an aside, I see a problem in hotwater.py in pyhiveapi.
Many of the methods seem to take a device dict as a parameter, and
then access the parameters of that dict (e.g. device["hive_id"]  )
However, the parameters being passed into that method are the id
themselves. Have a look at get_state and get_boost for example, and
the places they are called from.
Regards
Martin
On Mon, 9 Nov 2020 at 10:50, Khole<EMAIL_ADDRESS>wrote:

Closed #4.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

So... in hive_session.py line 339
        if Data.products[a_product]["type"] in Data.HIVE_TYPES["Heating"]:
            device_id = p["props"].get("zone", p["id"])
            device_name = p["state"].get("name", "Heating")
            for device in Data.devices:
                try:
                    if Data.devices[device]["type"] in

Data.HIVE_TYPES["Thermo"]:
device = Data.devices[device]
if p["parent"] == device["props"]["zone"]:
device_id = device["id"]
device_name = device["state"]["name"]
break
except:
pass
this is getting the device id based on the zone. However, the TRVs
don't match based on zone. However, for trvcontrol the trv device_id
is right there in props/trvs[0]
  {
     "id":"776d3354-2923-446e-b5a4-ff190a0883a6",
     "type":"trvcontrol",
     "sortOrder":1,
     "created":1572692964145,
     "parent":"c8b7142b-4812-4000-ae32-de2626e12a95",
     "props":{
        "online":true,
        "version":"00000000",
        "upgrade":{
           "available":false,
           "upgrading":false
        },
        "parent":"776d3354-2923-446e-b5a4-ff190a0883a6",
        "capabilities":[
           "HOLIDAY_MODE",
           "BOOST",
           "TRV_AUTO_BOOST",
           "TRV_AUTO_BOOST_READY"
        ],
        "maxEvents":6,
        "pmz":"OK",
        "temperature":23.2,
        "working":false,
        "trvs":[
           "46184a71-3c43-45b1-b6cb-abb2c767222d"
        ],
        "previous":{
           "mode":"SCHEDULE"
        },
        "scheduleOverride":false,
        "zoneName":"Thermostat 1",
        "autoBoost":{
           "active":false,
           "target":22,
           "duration":30,
           "trvs":[
              "7d56c7c6-ed95-4856-a764-e303460e500b"
           ]
        }
     },

That said, my python isn't quite good enough to do the fix. I might
have another look tomorrow, but I need to get the heating back online
and go to bed.
On Mon, 9 Nov 2020 at 22:52, Long, Martin<EMAIL_ADDRESS>wrote:

Hi,
I have found the problem, but I don't know the fix.
The issue is in get_heating in heating.py
The line:         if device["device_id"] in Data.devices:
Taking, for example, my bathroom TRV... device_id
3fbed695-75cc-44f5-a6eb-7c50bbcd4cd4
However, in the dict Data.devices that object has the id:
945dc093-95a2-4c6f-bde2-d9724dfb56b2. The device_id is there in the
object, under state/control
It looks like the object is laid out a bit differently to the
thermostatui object. Please let me know if I can provide any
additional information.
"945dc093-95a2-4c6f-bde2-d9724dfb56b2":{
"id":"945dc093-95a2-4c6f-bde2-d9724dfb56b2",
"type":"trv",
"sortOrder":1,
"created":1572692038181,
"parent":"c8b7142b-4812-4000-ae32-de2626e12a95",
"props":{
"online":True,
"presenceLastChanged":1604492001090,
"model":"TRV001",
"version":"0000021B",
"manufacturer":"Danfoss",
"upgrade":{
"available":False,
"version":"0000021B",
"progress":100,
"upgrading":False,
"status":"COMPLETE"
},
"power":"battery",
"signal":100,
"battery":100,
"eui64":"14B457FFFEC22F2F",
"calibration":{
"start":"2019-11-02T16:19:36.988+0000",
"end":"2019-11-02T19:50:37.115+0000"
},
"capabilities":[
"INFORMATION",
"RENAME",
"DELETE",
"TRV_CALIBRATION"
]
},
"state":{
"name":"Bathroom",
"control":"3fbed695-75cc-44f5-a6eb-7c50bbcd4cd4",
"zone":"5977360b-9bb5-4b1f-915d-36e7bac2037f",
"zoneName":"Thermostat 1",
"childLock":False,
"mountingMode":"HORIZONTAL",
"mountingModeActive":False,
"viewingAngle":"ANGLE_0",
"calibrationStatus":"CALIBRATED"
}
},
On Mon, 9 Nov 2020 at 22:07, Long, Martin<EMAIL_ADDRESS>wrote:

On the issue with the client devices... I was looking at the exception
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 201, in _async_setup_platform
await asyncio.gather(*pending)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 310, in async_add_entities
await asyncio.gather(*tasks)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 361, in _async_add_entity
suggested_object_id = entity.name
File "/home/openhabian/.homeassistant/custom_components/hive/climate.py",
line 107, in name
return self.device["ha_name"]
KeyError: 'ha_name'
So I put a debug line in climate.py (in the custom component)
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
BathroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Den
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Dining Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Effies Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ensuite shower
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ethan's Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Hall
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Lounge Window
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Master Bedroom
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Office
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
So all those TRV devices have no attributes at all.
On Mon, 9 Nov 2020 at 21:45, Long, Martin<EMAIL_ADDRESS>wrote:

As an aside, I see a problem in hotwater.py in pyhiveapi.
Many of the methods seem to take a device dict as a parameter, and
then access the parameters of that dict (e.g. device["hive_id"]  )
However, the parameters being passed into that method are the id
themselves. Have a look at get_state and get_boost for example, and
the places they are called from.
Regards
Martin
On Mon, 9 Nov 2020 at 10:50, Khole<EMAIL_ADDRESS>wrote:

Closed #4.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi,
I got this working by adding the following at hive_session.py line 352
            if Data.products[a_product]["type"] == "trvcontrol" :
                device_id = Data.products[a_product]["props"]["trvs"][0]

I would submit this as a pull request, but it feels like a massive
hack to me. I'm sure there must be a better way of doing this.
However, it got me up and running on the latest beta.
I couldn't seem to log in after deleting and recreating the
integration on b18. However, i rolled back to b15 and could log in,
and then roll forward to b18.
Hope this info is helpful
Martin
On Mon, 9 Nov 2020 at 23:54, Long, Martin<EMAIL_ADDRESS>wrote:

So... in hive_session.py line 339
        if Data.products[a_product]["type"] in Data.HIVE_TYPES["Heating"]:
            device_id = p["props"].get("zone", p["id"])
            device_name = p["state"].get("name", "Heating")
            for device in Data.devices:
                try:
                    if Data.devices[device]["type"] in

Data.HIVE_TYPES["Thermo"]:
device = Data.devices[device]
if p["parent"] == device["props"]["zone"]:
device_id = device["id"]
device_name = device["state"]["name"]
break
except:
pass
this is getting the device id based on the zone. However, the TRVs
don't match based on zone. However, for trvcontrol the trv device_id
is right there in props/trvs[0]
  {
     "id":"776d3354-2923-446e-b5a4-ff190a0883a6",
     "type":"trvcontrol",
     "sortOrder":1,
     "created":1572692964145,
     "parent":"c8b7142b-4812-4000-ae32-de2626e12a95",
     "props":{
        "online":true,
        "version":"00000000",
        "upgrade":{
           "available":false,
           "upgrading":false
        },
        "parent":"776d3354-2923-446e-b5a4-ff190a0883a6",
        "capabilities":[
           "HOLIDAY_MODE",
           "BOOST",
           "TRV_AUTO_BOOST",
           "TRV_AUTO_BOOST_READY"
        ],
        "maxEvents":6,
        "pmz":"OK",
        "temperature":23.2,
        "working":false,
        "trvs":[
           "46184a71-3c43-45b1-b6cb-abb2c767222d"
        ],
        "previous":{
           "mode":"SCHEDULE"
        },
        "scheduleOverride":false,
        "zoneName":"Thermostat 1",
        "autoBoost":{
           "active":false,
           "target":22,
           "duration":30,
           "trvs":[
              "7d56c7c6-ed95-4856-a764-e303460e500b"
           ]
        }
     },

That said, my python isn't quite good enough to do the fix. I might
have another look tomorrow, but I need to get the heating back online
and go to bed.
On Mon, 9 Nov 2020 at 22:52, Long, Martin<EMAIL_ADDRESS>wrote:

Hi,
I have found the problem, but I don't know the fix.
The issue is in get_heating in heating.py
The line:         if device["device_id"] in Data.devices:
Taking, for example, my bathroom TRV... device_id
3fbed695-75cc-44f5-a6eb-7c50bbcd4cd4
However, in the dict Data.devices that object has the id:
945dc093-95a2-4c6f-bde2-d9724dfb56b2. The device_id is there in the
object, under state/control
It looks like the object is laid out a bit differently to the
thermostatui object. Please let me know if I can provide any
additional information.
"945dc093-95a2-4c6f-bde2-d9724dfb56b2":{
"id":"945dc093-95a2-4c6f-bde2-d9724dfb56b2",
"type":"trv",
"sortOrder":1,
"created":1572692038181,
"parent":"c8b7142b-4812-4000-ae32-de2626e12a95",
"props":{
"online":True,
"presenceLastChanged":1604492001090,
"model":"TRV001",
"version":"0000021B",
"manufacturer":"Danfoss",
"upgrade":{
"available":False,
"version":"0000021B",
"progress":100,
"upgrading":False,
"status":"COMPLETE"
},
"power":"battery",
"signal":100,
"battery":100,
"eui64":"14B457FFFEC22F2F",
"calibration":{
"start":"2019-11-02T16:19:36.988+0000",
"end":"2019-11-02T19:50:37.115+0000"
},
"capabilities":[
"INFORMATION",
"RENAME",
"DELETE",
"TRV_CALIBRATION"
]
},
"state":{
"name":"Bathroom",
"control":"3fbed695-75cc-44f5-a6eb-7c50bbcd4cd4",
"zone":"5977360b-9bb5-4b1f-915d-36e7bac2037f",
"zoneName":"Thermostat 1",
"childLock":False,
"mountingMode":"HORIZONTAL",
"mountingModeActive":False,
"viewingAngle":"ANGLE_0",
"calibrationStatus":"CALIBRATED"
}
},
On Mon, 9 Nov 2020 at 22:07, Long, Martin<EMAIL_ADDRESS>wrote:

On the issue with the client devices... I was looking at the exception
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 201, in _async_setup_platform
await asyncio.gather(*pending)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 310, in async_add_entities
await asyncio.gather(*tasks)
File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py",
line 361, in _async_add_entity
suggested_object_id = entity.name
File "/home/openhabian/.homeassistant/custom_components/hive/climate.py",
line 107, in name
return self.device["ha_name"]
KeyError: 'ha_name'
So I put a debug line in climate.py (in the custom component)
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
BathroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Den
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
DenDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Dining Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Dining RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Effies Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Effies RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ensuite shower
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ensuite showerDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Ethan's Room
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Ethan's RoomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Hall
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
HallDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Lounge Window
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Lounge WindowDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Master Bedroom
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
Master BedroomDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeGetting heating data.
2020-11-09 22:03:30 ERROR (MainThread) [pyhiveapi.custom_logging]
ERROR - No data found for device - Office
2020-11-09 22:03:30 DEBUG (MainThread) [pyhiveapi.custom_logging]
OfficeDevice update {}
2020-11-09 22:03:30 ERROR (MainThread)
[custom_components.hive.climate] Device: {}
So all those TRV devices have no attributes at all.
On Mon, 9 Nov 2020 at 21:45, Long, Martin<EMAIL_ADDRESS>wrote:

As an aside, I see a problem in hotwater.py in pyhiveapi.
Many of the methods seem to take a device dict as a parameter, and
then access the parameters of that dict (e.g. device["hive_id"]  )
However, the parameters being passed into that method are the id
themselves. Have a look at get_state and get_boost for example, and
the places they are called from.
Regards
Martin
On Mon, 9 Nov 2020 at 10:50, Khole<EMAIL_ADDRESS>wrote:

Closed #4.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks @martinlong1978, I’ll update tonight and release a new beta. I appreciate your investigation into this it’s hard to debug I device I don’t physically have.


Ask user to update aderyn CLI on startup ?

If the extension can install aderyn should it also then be able to update the aderyn binary if a new version is released?

Looks like this is taken care of. :) Forgot to update extension


Maybe there's a bug in SparseApplyFtrlOp for the sparse solution

in the class SparseApplyFtrlOp from tensorflow/core/kernel/training_ops.cc
#define COMPUTE_FTRL(grad, grad_maybe_with_shrinkage)                          \
  auto new_accum = accum + grad.square();                                      \
  if (lr_power_scalar == static_cast<T>(-0.5)) {                               \
    linear += grad_maybe_with_shrinkage -                                      \
              (new_accum.sqrt() - accum.sqrt()) / lr_scalar * var;             \
  } else {                                                                     \
    linear += grad_maybe_with_shrinkage - (new_accum.pow(-lr_power_scalar) -   \
                                           accum.pow(-lr_power_scalar)) /      \
                                              lr_scalar * var;                 \
  }                                                                            \
  auto l1_reg_adjust = linear.cwiseMin(l1_scalar).cwiseMax(-l1_scalar);        \
  auto x = l1_reg_adjust - linear;                                             \
  if (lr_power_scalar == static_cast<T>(-0.5)) {                               \
    auto y = new_accum.sqrt() / new_accum.constant(lr_scalar) +                \
             linear.constant(static_cast<T>(2) * l2_scalar);                   \
    var = x / y;                                                               \
  } else {                                                                     \
    auto y = new_accum.pow(-lr_power_scalar) / new_accum.constant(lr_scalar) + \
             linear.constant(static_cast<T>(2) * l2_scalar);                   \
    var = x / y;                                                               \
  }                                                                            \
  accum += grad.square();

I only find the update of var = x / y;  directly, not considering the situation var = 0 when abs(linear) <= l1_scalar according to the paper

@sjtusmartboy Please provide details about TensorFlow version. Also provide the Github link of tensorflow/core/kernel/training_ops.cc Thanks!

@sjtusmartboy Please provide details about TensorFlow version. Also provide the Github link of tensorflow/core/kernel/training_ops.cc Thanks!

I'm using the tf 1.14
please go to the link here

I believe l1_reg_adjust is the thing responsible for setting it to zero (note how it's defined to be equal to linear if -l1 < linear < l1, which the subtraction below will make zero).


Using Partials

Can I split my sql fragments on multiple partials ?
for example:
val partial = sql"code = $code AND color = $color"
val fragment = sql"SELECT * from example WHERE $partial"

Sorry for duplicate https://github.com/AugustNagro/magnum/issues/34

No problem! We should hopefully land this feature in the next release.


How to build discord bot with JavaScript

Article checklist
Formatting and structure checks

[x] Have you used the correct folder and file structure? - see Contribution Guidelines

[x] Is your article properly formatted in Markdown? - see Github Markdown guide

[x] Have you used our preferred heading structure? - H3 (###) and up

[x] Does your article follow any of the suggested structure formats? - see example formats

[x] Is your article over 750 words? - Tool: Wordcounter.net

[x] Is the article you are submitting an in-depth and unique article? Does it go beyond what is in the official docs and what is covered in other blog sites. See these articles as examples.

[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.

[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.

[x] Have you included a hero image that is 600x400 pixels, under 300KB in size, and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid - Grammarly
[x] Please place your article through a 3rd party plagiarism checker. We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[ ] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide
[x] Have you checked your code runs correctly and you've highlighted all necessary dependencies for installation?
[x] Are the software programs and packages you're highlighting in your article up to date, using current versions and not deprecated?

Topic suggestion this closes

Remove the backticks and add the issue number below to link and close your Topic Suggestion (issue) when your article has been published (PR has been merged). See this video for more details.

This closes #5159

@mercymeave, hello. I have committed the changes you requested. You may have look.

A nice article, @hectorkambow is the peer reviewer recruitment over? I'm willing to review this article.💯

jumping on this one

@Kamau-ke
Can you please message me via Slack DM 👍
Thank you


Akka 2.4-M3 Compatibility

Fix for #4

I have merged the PR, thanks for your contribution!

closed #4


[Forge 1.16.5] Injection error: Could not find any matching targets

I'm fully unsure what is causing this. I used to be able to circumvent the issue by running an older version of forge (36.2.2), but other mod updates forced me to update to a newer version of forge, which causes some kind of mod incompatibility. All I could dig out from the log is that's in relation to injection into method_17410 for the fullExperienceCost method.
I am running on the latest published build (2.2.1-exp1) but this is happening on older versions as well.
Forge version 36.2.19
debug.log - https://gist.github.com/GAsplund/cb9d23b9c6379f054b284f4ad8b5da04

Duplicate of #357
Something about your environment is promoting this soft failure into a hard crash.
Set full_experience_cost in features.ini to banned as a temporary workaround.


add MTU field

Thank you

For the client. MTU is a supported field by WireGuard's clients  implementations
[Interface]
Address = ****/24,****/64
DNS = <IP_ADDRESS>
MTU = 1280
PrivateKey = **********************
[Peer]
AllowedIPs = <IP_ADDRESS>/0,::/0
Endpoint = ****:54321
PersistentKeepalive = 25
PresharedKey = **********************=
PublicKey = **********************=

And for the server, the user should config via the pre/post hooks:
# ifconfig wg0 mtu 1280

OR

# ip link set dev wg0 mtu 1280

Actually, it's supported by wg-quick for all platforms

Done, please test


test: reintroduce azurite SAS integration tests

Description
Reintroduce integration tests using Azurite and SAS tokens.
These tests were skipped believing that the mistake was due to the upgrade of version in object-store>=0.9.1". Actually, what object-store` started doing from that version on, is really using the SAS token for the first time. For more details, see:

https://github.com/apache/arrow-rs/issues/5475#issuecomment-2084748858

I changed the command to create the SAS token using the azure-storage-blob library (adding it to the dev deps), rather than the azure CLI, and removed the pytest markers to skip the tests.
@ion-elgreco pinging you as promised, sorry if this took more time than expected!

Thankss! <3


Workspace keeps switching from Output tab to Terminal tab on running

Type: Bug

Behaviour
Expected vs. Actual
I'm running Python code and upon every run, the focus changes from the Output tab to the Terminal tab. This is not desired.
I ensured that all the Python > Terminal options were unchecked in settings.
Steps to reproduce:

Without the Python extension active (disable or uninstall it), open a Python file, select the Output tab, and run the code with the "Play" button at the upper right corner of the editor. The Output tab should remain active.

Activate the Python extension. Repeat steps above. The Output tab loses focus and the Terminal tab is activated.

Re-select the Output tab. Open the drop-down list next to the Run button and select "run code." Note that the Output tab remains selected. Run again by pressing the button. Once again, the Output tab remains selected.

From the above we learn that the Run button has a hidden, persistent state that isn't indicated visually by the button and isn't even marked in the drop-down list. Furthermore, the Python extension is forcing the Terminal tab upon the user without approval, with no way to countermand it.
The hidden Run-button option problem is filed here.

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.9.12
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Pyenv
Value of the python.languageServer setting: Default

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

User Settings

languageServer: "Pylance"

terminal
• activateEnvironment: false

Extension version: 2022.14.0
VS Code version: Code 1.71.2 (74b1f979648cc44d385a2286793c226e611f59e7, 2022-09-14T21:05:37.721Z)
OS version: Darwin x64 20.6.0
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz (8 x 4000)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: unavailable_offraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
4, 3, 3

Memory (System)
32.00GB (1.61GB free)

Process Argv
--crash-reporter-id ca508d67-2499-416f-9d92-4fafda7d4800

Screen Reader
no

VM
0%

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscoreces:30445986
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411cf:30557515
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vscaat:30438848
vsclangdf:30486550
c4g48928:30535728
dsvsc012:30540252
azure-dev_surveyone:30548225
i497e931:30553904
pyindex848cf:30577861
40g7c324:30573242

Hey @karrtikr , thanks for the info.
There are several "run in terminal" options in the Python settings. I had all of those off, so why is it still running in the terminal?

Python extension only supports running in terminal. Could you name some of the settings which are causing this confusion? Perhaps we can improve documentation.

Sure. Screen shot attached. I did a lot of Web searching to try to find a solution to the tab-switching problem, and over and over you see the same recommendation to turn off the options here. I can't remember if I installed Code Runner to try to solve the problem in the first place, but the lack of clarity surrounding the "Run" button certainly contributes to this issue.
It's not apparent (at least not to the relative newcomer) where settings and UI elements come from in VSCode. But the "focus after launch" Python option here seems pretty explicit:

Changed it to "When launching a python terminal, whether to focus the cursor on the terminal."

Thanks for changing that. I suspect that someone hunting for a solution to the original problem would still identify this setting as a likely culprit, however. Is there no way to prevent the behavior in the first place, perhaps by offering a setting that changes the default Run behavior? I don't know how all this stuff interacts, so I'm not saying it's easy or practical.

I don't see a strong enough reason for users to want the output channel instead of the terminal which is more interactive, so I doubt we would do that. But if you would like us to consider that feel free to open up a feature request and we can decide based on the upvotes on the issue.


Node modules not installed?

python3: can't open file '/usr/lib/node_modules/homebridge-wyze-robovac/py_helpers/getVacuumDeviceList.py': [Errno 2] No such file or directory

Please uninstall and reinstall using the Homebridge GUI and report back.

There is no option to uninstall it

I found the issue. There is an alternative location for the python scripts.
/homebridge/node_modules/homebridge-wyze-robovac/py_helpers
if that is added, this issue should be resolved. I am going to add a symbolic link in my case to solve the problem

@ma-armenta did you manage to get it to work? I updated my absolute path in the config and now it's saying there's no module named wyze-sdk. Did you need to manually do some kind of dependencies install? Or did it just work for you after restarting homebridge?

FWIW, I managed to get past this on a Sysology NAS although I can't say if it's the right way or not. After updating my path, I was also getting the error that wyze_sdk couldn't be found. I tried installing it system wide but then got the error that it couldn't import Client from wyze_sdk.
I got it working by updating /etc/passwd to enable sh access to the homebridge user by chancing /sbin/nologin to /bin/sh. Restarted the NAS. Then I installed wyze_sdk with sudo -H -u homebridge python3 -m pip install wyze_sdk Now I'm getting the same error as https://github.com/RMCob/homebridge-wyze-robovac/issues/16 but we have progress.


Shortcut is not executed after pressing Enter

(I am new to Flow so apologies if this is a misunderstanding from my side)
I tried to add a shortcut to Plugin Runner but I cannot make it actually start.
The configuration is

When requesting the plugin, I see (the auto-suggestion works)

Pressing Enter does nothing (no window, error, beep, nothing). Is there a way I should inform the plugin that pressing Enter actually starts the shortcut?

Hey how's it going. Sorry for the late reply. Can you show me/attach the log after running your shortcut please. Does it start with any other simple commands?

Try a test shortcut with the following:
Description - Remote Desktop
Shortcut - rdp
Path - mstsc
You should see Remote Desktop Connection pop up.
I noticed you are trying to open wt.exe with those args, let me test it out and get back to you, maybe something to do with the actual command.


Disable tests that fail on big endian architectures due to crc mismatches. (#112)

CRS tests are now only run on little endian architectures like test/t/geom/test_wkb.cpp

CRC should be independent of byte ordering now. If it isn't than thats a bug that needs fixing.


Change domain for Padre Conceicao College of Engineering

Padre Conceicao College of Engineering has changed the domains for their student email IDs from pccegoa.onmicrosoft.com to pccegoa.edu.in
This pull request also removes the file added in #17552
College website: https://pccegoa.edu.in/

@ZeusAbhijeet First stage of verification passed, official domain is pccegoa.edu.in as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@ZeusAbhijeet Thank you for your patience while waiting for a review and processing your request. Pull request merged.


isnan and isinf issue

Hi,
When I compile I get the following error with clang. I then try to link the library and it complains. Not quite sure why, I added in the main.c isnan and isinf and compiles ok. -lm is added to the linker.
Library compilation:
default/IsNaN.c:34:11: warning: implicit declaration of function 'isnanf' is invalid in C99       [-Wimplicit-function-declaration]                 py[i] = isnanf(v) ? 1 : 0;
Linker:
libonnx.a(.text+0x598): undefined reference to isnanf'

Oh its a float check.
I added this to my main build:
#define isinff isinf
#define isnanf isnan
The math checks the type already.

yes, you are right, isinff and isnanf are alias to isinf and isnan, following commit patched it.
https://github.com/xboot/libonnx/commit/5ab486d7b196b621d6ef04f3a63f1261b466d103


Add support for using tuples with plam

Fixes #2
#143 reopened.

After asking internally and messing around with #149 , I've come to the conclusion that this is probably the best solution unfortunately.

To be transparent, I've been quite ok with the current behavior (and syntax) of plam. I think the guide addresses the only workaround you'll ever need for all plam related issues already. We could even put it in the plam haddock.
However, if we do go for this syntax and everyone's fine with it - I think we really should either remove the other syntax in the same PR, or make a separate function for tuple based syntax.

That would be a huge backward incompatible change though.

That would be a huge backward incompatible change though.

We can afford to break backwards compatibility for 1.1 can't we?

That's true honestly, we could just do the change right now and break everything.

Are people for or against changing the syntax to tuples in a breaking change, and removing the old syntax for Plutarch 1.1? If we stay with the current syntax, there is essentially no way of fixing #2 AFAICT. Please react with :+1: or :-1: .

I'm not happy with the idea of dropping the existing plam interface because it fits so well with the Haskell function calling style when it works. I can't guess all the places where I'd be missing it. Scott encodings don't take tuples for example.
For the time being, can we add a new function, call it tuplam or something, and put it forefront it in the user guide? If, in time, it turns out that many of its uses require uncurry we'll know it can't be the only solution.

I can't guess all the places where I'd be missing it. Scott encodings don't take tuples for example.

What do you mean by this?

Only that a Haskell function that's a Scott encoding of a data structure would not be taking a tuple. But more generally, if you're relying on the base library you're pretty likely to end up with a point-free multi-argument function at some point. The existing plam can work with them, on a good day anyway, the new tuplam would require naming and tupling all the arguments.
I realize this may read like FUD right now. I'll try to come up with concrete examples and if I can't I'll change my vote.

I tried a few things and the inference is even worse than I imagined. I got so annoyed that I tried to implement something myself (branch mario/plam is you care to look) and failed. So you have a green light from me.

Do have a look actually. I've improved the inference to the extent I was able to restore the original staging Plutarch.Maybe and Plutarch.Either modules, but plam const still fails with this ridiculous error of
    • Couldn't match type ‘b0’ with ‘Term s b'0’
        arising from a use of ‘plam’
        because type variable ‘s’ would escape its scope
      This (rigid, skolem) type variable is bound by
        a type expected by the context:
          Plutarch.Internal.ClosedTerm
            (a0 :--> (Plutarch.LambdaArg b0 :--> a0))
        at examples/Main.hs:221:23-34
    • In the first argument of ‘printTerm’, namely ‘(plam const)’

ghci> :t plam const
plam const
  :: forall {s :: PI.S} {b :: PType} {a :: PType}.
     Term s (b :--> (a :--> b))

with #168

We don't need this anymore.


Adding esd scenario test

@jlongstaf
What issues does this address?
Fixes #478
What's this change do?
This change will add scenario tests for ESD.
Where should the reviewer start?
scenario/test_esd.py

@jlongstaf , as part of this test, I need to add my "esd_demo_3" to the list of esds that agent reads. I am not sure where I should put "esd_demo_3" so that it get picked up by nightly.


[BUG]-PluginTemplate-OutOfDate

Describe the bug
The plugin template, specifically the github workflows, are out of date.

https://github.com/PepperDash/EssentialsPluginTemplate/commit/fcbf71078105683cc1d02d89623f63721218ed97
https://github.com/PepperDash/EssentialsPluginTemplate/commit/2ff646e499301384c4fe2367dbd747e5aa994b1d
https://github.com/PepperDash/EssentialsPluginTemplate/commit/c323b982aec914af880252c39204403ce0bff962
https://github.com/PepperDash/EssentialsPluginTemplate/commit/d46444e424eaa6208fbcbcab4c55a1d9b44625c9


ROX-23624: PF5 style fixes follow up

Addressing follow up style regressions in this PR.

Network graph: Last update time block/breadcrumb is not vertically centered in toolbar

Before:

After:

VM 2.0 - Workload CVEs: Severity count spacing is incorrect

Before:

After:

VM 2.0 - Exception Mgmt: The request name link doesn’t show an underline when you hover over it

Before:

After:

Clusters: Classic StackRox-style pills in Cluster Status column no longer wrap

Before:

After:

Policy Mgmt: Spacing is odd in the header above the table

Before:

After:

Collections: Deployment preview sidebar search button is always enabled, even when no text is present:
Unfixed because this is the expected behavior according to SearchInput component in PF5 documentation (https://www.patternfly.org/components/search-input)

Collections: Vertical spacing of deployment previews is uneven:

Before:

After:

(the default margin for Divider components shrunk from md to sm so I adjusted accordingly

Integrations: Dropdown styling looks awkward

Before:

After:

Exception Configuration: The inputs looked a bit off

Before:

After:

Left the input to be extended because of awkwardness w helper text:
PF4:

PF5:

Access control: Helper texts doesn’t appear to be working as intended on auth providers creation form. Displays helper text for all fields after any single field is changed/blurred

Before:

After:

Access control: Invite users modal link has no styling in the alert when there is no configured auth provider.

Before:

After:

/retest


Add French UI translation

Added French UI translation

Thank you!
This will be included on the next release (which will be done within a week).


Update topo-2sw-2host.py

This is no longer a 2 switch, 2 host topology

I agree this is no longer a 2 switch, 2 host topology. Also all 8 nodes connect to either switch 1 or switch 2, with all remaining 8 switches (which are called 'c1' up to 'c8' instead of 's3' up to 's10') placed between switches 1 and 2 in parallel. I miss the goal of these changes and the empty commit message and pull-request comment don't really help.

Thanks for your comments folks - agreed, closing since this doesn't make sense.


Find conversation triggering twice

I've just realice that I always get this log
debug: CUSTOM FIND CONVO 821bf6c7-7a67-8840-77a0-f0dba48cb170 socket
debug: FOUND EXISTING CONVO!
debug: RECEIVED MESSAGE
debug: CUSTOM FIND CONVO 821bf6c7-7a67-8840-77a0-f0dba48cb170 socket
debug: FOUND EXISTING CONVO!

because it's triggered in Core and in Web
I did not try with other connector but has it sense?

Aren't you using findConversation for some other task, like in a middleware or something?

nope, also I tried with web starter pack and same happens

This is related to #1503 - one of the changes in 0.6.19 causes these events to fire improperly.

0.6.20 just hit npm! Let me know if you have any further issues.


vtm: 0.9.27 -> 0.9.44

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/vtm/versions.
meta.description for vtm is: Terminal multiplexer with window manager and session sharing
meta.homepage for vtm is: https://vtm.netxs.online/
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.9.38 with grep in /nix/store/yqbp31xznkqxs976pfs69wdpyfn6psd7-vtm-0.9.38
found 0.9.38 in filename of file in /nix/store/yqbp31xznkqxs976pfs69wdpyfn6psd7-vtm-0.9.38

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
vtm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yqbp31xznkqxs976pfs69wdpyfn6psd7-vtm-0.9.38 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A vtm https://github.com/r-ryantm/nixpkgs/archive/ce46731dbed3abe52d611ac486e0389495e1ab11.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/ce46731dbed3abe52d611ac486e0389495e1ab11#vtm

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yqbp31xznkqxs976pfs69wdpyfn6psd7-vtm-0.9.38
ls -la /nix/store/yqbp31xznkqxs976pfs69wdpyfn6psd7-vtm-0.9.38/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

vtm

Maintainer pings
cc @alesya-h for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/vtm/versions.
meta.description for vtm is: Terminal multiplexer with window manager and session sharing
meta.homepage for vtm is: https://vtm.netxs.online/
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.9.44 with grep in /nix/store/7d4n0p5qx8vqj928zcpmbrsybcra6k5n-vtm-0.9.44
found 0.9.44 in filename of file in /nix/store/7d4n0p5qx8vqj928zcpmbrsybcra6k5n-vtm-0.9.44

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
vtm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/7d4n0p5qx8vqj928zcpmbrsybcra6k5n-vtm-0.9.44 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A vtm https://github.com/r-ryantm/nixpkgs/archive/c3cb7af97d59b6210abb7f0686c1af076b916da0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/c3cb7af97d59b6210abb7f0686c1af076b916da0#vtm

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/7d4n0p5qx8vqj928zcpmbrsybcra6k5n-vtm-0.9.44
ls -la /nix/store/7d4n0p5qx8vqj928zcpmbrsybcra6k5n-vtm-0.9.44/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

vtm

Maintainer pings
cc @alesya-h for testing.


Number gets increased without reason

Hi there,
I think I found a bug in the package. In my case he appended number of the slug gets increased if there is another model with the same base name.
I'm trying to give an example below, please ask if there is anything ambiguous.
I have a model
id: 1
name: numb
slug: numb

and a additional model:
id: 2
name: numb
slug: numb-2

If I'm saving the model 2, the number gets increased everytime. So after another save  of the second model the slug is saved as numb-3
the global settings are
[
'build_from'      => null,
'save_to'         => 'slug',
'max_length'      => null,
'method'          => null,
'separator'       => '-',
'unique'          => true,
'include_trashed' => false,
'on_update'       => true,
'reserved'        => null,
]

in the model itself i have set this configuraiton:
protected $sluggable = [
	'build_from' => 'name',
	'save_to'    => 'slug',
];

That's because on_update is set on true, I would be much better that on_update would skip updating slug if title isnt changed.

Yeah seems to be the right solution to not update the sluggable if the name wasn't updated in the first place.
I'll try to create a PR for this issue the next few days.

Just a heads-up: I'm working on the rewrite branch right now and hope to have that out in the next few days as well.  Right now I'm working through the events, so things are pretty fluid.
But consider pulling that branch and working from there, maybe?

And -- also keep in mind -- I am likely dropping the on_update option entirely.  It's more trouble than it's worth, and I think the cases where people want to use it can be done in other ways.

Ok, then I'll wait for your rework - thanks for the fast response.
Thanks for the fast headsup.
So the default will be that the slug is generated once and only once or the default will be that the slug is updated every time?

The default would be the same as 'on_update' => false, i.e. the slug is generated only once.  You can force it to regenerate by setting the slug field to null before saving the model.

thanks


sut_orchestrator: hyperv: don't automatically add disks

The create_vm() method of the HyperV tool, automatically finds offline disks and adds them to the VM. This behavior is not required for hyperv platform. So, introduce a parameter to control it and modify hyperv platform to disable that behavior.

@LiliDeng LGTM


Illegal modifiers in Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate

The model Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate modifies protected variables vbc, ibe, vt_t in T1 and T2; causing a warning.
The start-value modifiers added as part of #799 seem good, so I would assume that the variables should not be protected - I could not see when that was changed.
A check-log from Dymola says:
Warning: Modifier for protected component vbc. This is not legal Modelica.
File: Modelica/Electrical/Analog/Examples/HeatingNPN_OrGate.mo, line 107
Context: Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate.T1.vbc
Original declaration of vbc:
File: Modelica/Electrical/Analog/Semiconductors.mo, line 1050
Context: Modelica.Electrical.Analog.Semiconductors.HeatingNPN.vbc
Warning: Modifier for protected component ibe. This is not legal Modelica.
File: Modelica/Electrical/Analog/Examples/HeatingNPN_OrGate.mo, line 107
Context: Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate.T1.ibe
Original declaration of ibe:
File: Modelica/Electrical/Analog/Semiconductors.mo, line 1054
Context: Modelica.Electrical.Analog.Semiconductors.HeatingNPN.ibe
Warning: Modifier for protected component vt_t. This is not legal Modelica.
File: Modelica/Electrical/Analog/Examples/HeatingNPN_OrGate.mo, line 106
Context: Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate.T1.vt_t
Original declaration of vt_t:
File: Modelica/Electrical/Analog/Semiconductors.mo, line 1062
Context: Modelica.Electrical.Analog.Semiconductors.HeatingNPN.vt_t
Warning: Modifier for protected component vbc. This is not legal Modelica.
File: Modelica/Electrical/Analog/Examples/HeatingNPN_OrGate.mo, line 127
Context: Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate.T2.vbc
Original declaration of vbc:
File: Modelica/Electrical/Analog/Semiconductors.mo, line 1050
Context: Modelica.Electrical.Analog.Semiconductors.HeatingNPN.vbc
Warning: Modifier for protected component ibe. This is not legal Modelica.
File: Modelica/Electrical/Analog/Examples/HeatingNPN_OrGate.mo, line 127
Context: Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate.T2.ibe
Original declaration of ibe:
File: Modelica/Electrical/Analog/Semiconductors.mo, line 1054
Context: Modelica.Electrical.Analog.Semiconductors.HeatingNPN.ibe
Warning: Modifier for protected component vt_t. This is not legal Modelica.
File: Modelica/Electrical/Analog/Examples/HeatingNPN_OrGate.mo, line 126
Context: Modelica.Electrical.Analog.Examples.HeatingNPN_OrGate.T2.vt_t
Original declaration of vt_t:
File: Modelica/Electrical/Analog/Semiconductors.mo, line 1062
Context: Modelica.Electrical.Analog.Semiconductors.HeatingNPN.vt_t

ibe and vbc was modified by 3cffe109e717c42c05bb1f69b2780c1dbdc1a523. vt_t was modified by 81ee9b73eff04368d0f5bc76aa065b84cc211e57. All fine. But they were set to proteced recently by 24ced86e8069ca744c38ca21cc6712f748b91ca5, which should be reverted then.

Resolved by eafbcbdc2233cd9551edec0a3fe0f623b92d2317.


Play Count Issue

Some songs when you click them it crashes the website, this is cause by play_count being null. I found this by clicking on 'The Test That Stumped Them All'

I think I fixed it the minute this issue was posted lol should be fine if you refresh the page and try again


feat: CacheFS improvement - Folder support

What did you implement:
Ability to instantiate CacheFS for a specific folder, to allow purging of cached files beyond just deleting individual files by key.

How did you implement it:

For example:
' @import /components/CacheFS.brs from @dazn/kopytko-utils
' @import /components/ternary.brs from @dazn/kopytko-utils
' @import /components/http/cache/CachedHttpResponse.brs
function HttpCache() as Object
  prototype = {}

  prototype._cacheFS = CacheFS("HttpCache")

  ...

in https://github.com/getndazn/kopytko-framework/blob/master/src/components/http/cache/HttpCache.brs would allow us to purge all http related cache via a new method like so:
  ' @returns {Boolean} - true if cache in context has been purged
  prototype.clear = sub () as Boolean
    return m._cacheFS.clear()
  end sub

How can we verify it:

Todos:

[ ] ~Write documentation (if required)~
[x] Write new unit tests
[x] Fix linting errors
[x] Enable "Allow edits from maintainers" for this PR
[x] Update the messages below

Is this ready for review?: YES
Is it a breaking change?: NO

@pawelhertman, thanks for the feedback! they have been addressed in ac3c166 (#22)

(did you check if createDirectory can create nested folders?)

checked and confirmed that a directory path notation is supported only if a parent folder exists for each level of nested folder.


Inductive learning experiments in your paper

Hey! Great work. I was analyzing your paper, and couldn't figure out if you had reported results from inductive learning experiments. Are Table III results from inductive experiments?
Best.

The performance reported in Table III corresponds to the results under the transductive setting.
We didn't report the results under the inductive setting in the paper. However, we provide the source code of MMGL under the inductive setting. In practice, we are glad to see that the performance of MMGL under the inductive setting is also very strong, similar to the results under the transductive setting in Table III.

That's great. I am doing my own network implementation and want to evaluate it in inductive setting. So you "In the testing phase, we also follow the solution in [14] for inductive learning. Specifically, the unseen patient u is first added to the existing population graph by MARL with AGL". Could you indicate in the code where each patient is added to the training graph for the testing phase?

Hey. I was wondering how the edge_weights computed by your method are used by the MultiLayerNeighborSampler to build each computation graph for each node in a batch? I am not familiar with the MultiLayerNeighborSampler, but from what you say in the paper, it performs the Neighbor sampling as proposed in neighbor sampling [paper](Inductive Representation Learning on Large Graphs). Are the edge weights considered for elaboration of the computation graphs?

I'm sorry for not getting back to you sooner! To my knowledge, the edge_weights do not influence the sampling process of NeighborSampler unless we set the sample prob of NeighborSampler as corresponding to edge_weights. In this work, the edge weights only participate in the message passing process.


UDS Server

The Leda quickstart image should contain an implementation of a UDS server.
This can be another demo case for optional deployment, or if it's really small it could be deployed as a standard example.
One open source UDS server implementation, which is good enough (in terms of coverage of the original spec) seems to be this one:
https://github.com/zombieCraig/uds-server
Since uds-server is already 8 years old, it would be great to check if there is a better / more recent implementation.
Use case would be fuzz-testing the Leda Quickstart image and examples for the CAN feeder of Kuksa.VAL or the CAN-based Seat Service of Kuksa.VAL.
The todo for leda project would be to provide the uds-server as a containerized application, create the desired state or deployment manifests for it and have it deployed on Raspi or QEMU image (with enabled CAN).

Recipe for native component provided here: https://github.com/eclipse-leda/meta-leda/pull/203 but not added to any package group yet.


Iced 0.13 squash

This is up to date with upstream master, and refactors the sctk shell to be integrated into the winit shell. It's been tested with cosmic-settings, examples from libcosmic, cosmic-applets, and cosmic-launcher. It seems to be in a good state to me, but we may need to make small adjustments as we update some more apps.

*totally definitely 100% reads through all 53000 lines of code* uhh LGTM?
In realness I'll test some things on my own application, but congratulations! This is a big deal 😎

Two things to start
the sctk_todos example fails to run immediately with the scrollable content must not fill its vertical scrolling axis thing:
sctk_todos.log
I can't compile my iced application due to winit not having SuggestedBounds. Is this gated behind a feature I'm not using?
Compilation error:
   Compiling iced_winit v0.14.0-dev (https://github.com/pop-os/iced?branch=iced-0.13-squash#956dc807)
error[E0599]: no variant or associated item named `SuggestedBounds` found for enum `winit::event::WindowEvent` in the current scope
   --> /home/ryanbrue/.cargo/git/checkouts/iced-14fbad96f5d3e3c7/956dc80/winit/src/conversion.rs:309:22
    |
309 |         WindowEvent::SuggestedBounds(bounds) => {
    |                      ^^^^^^^^^^^^^^^ variant or associated item not found in `WindowEvent`

For more information about this error, try `rustc --explain E0599`.
error: could not compile `iced_winit` (lib) due to 1 previous error

My feature list:
iced = { git = "https://github.com/pop-os/iced", branch = "iced-0.13-squash", features = [ "wayland", "winit", "tiny-skia", "wgpu", "image", "svg", "fira-sans", "auto-detect-theme", "async-std" ] }

Two things to start
the sctk_todos example fails to run immediately with the scrollable content must not fill its vertical scrolling axis thing:
sctk_todos.log
I can't compile my iced application due to winit not having SuggestedBounds. Is this gated behind a feature I'm not using?
Compilation error:
   Compiling iced_winit v0.14.0-dev (https://github.com/pop-os/iced?branch=iced-0.13-squash#956dc807)
error[E0599]: no variant or associated item named `SuggestedBounds` found for enum `winit::event::WindowEvent` in the current scope
   --> /home/ryanbrue/.cargo/git/checkouts/iced-14fbad96f5d3e3c7/956dc80/winit/src/conversion.rs:309:22
    |
309 |         WindowEvent::SuggestedBounds(bounds) => {
    |                      ^^^^^^^^^^^^^^^ variant or associated item not found in `WindowEvent`

For more information about this error, try `rustc --explain E0599`.
error: could not compile `iced_winit` (lib) due to 1 previous error

My feature list:
iced = { git = "https://github.com/pop-os/iced", branch = "iced-0.13-squash", features = [ "wayland", "winit", "tiny-skia", "wgpu", "image", "svg", "fira-sans", "auto-detect-theme", "async-std" ] }

Weird, sctk_todos runs fine on my machine. Ill double check that there is no Fill in a scrollable though. For the suggested bounds issue, maybe a cargo update would help?

We should make a branch based on the current version of the master branch before force-pushing this.

Ok I'll make a branch and a tag for the current version

Weird, sctk_todos runs fine on my machine. Ill double check that there is no Fill in a scrollable though. For the suggested bounds issue, maybe a cargo update would help?

I'll give it a try after work today!

https://github.com/pop-os/iced/tree/libcosmic-iced-0.12 & https://github.com/pop-os/iced/releases/tag/libcosmic-v0.12


Pulse Sensor Water OFF

Hello,
thanks a lot for your wonderful project!!!
I have one problem, i have installed the standard version but the Pulse Sensor Water is OFF... how can i turn on?

I have connected to D5 and the Kw counter works well.
Thanks a lot
Stefano

Solved by removing the resistor from 5V and D2 pin

it wil switch's off and on when you are using water of use the kwh counter.

Thanks a lot for your reply :-D


jest 27: test failed with beforeEach/afterEach async

🐛 Bug Report

After upgrading to<EMAIL_ADDRESS>tests failed. As @SimenB mentioned it might be related to #10644
I have checked about test environment, the tests failed not related to switching test environment to node as default.
To Reproduce
Steps to reproduce the behavior:

Check out https://github.com/ahnpnl/ts-jest-babel-example/tree/test-fail

Run yarn to install deps, run yarn test and observe all tests succeed

Run yarn upgrade jest@next babel-jest@next, run yarn test again and observe tests in with-nest folder all fail

Expected behavior

Tests in with-nest folder should pass
Link to repl or repo (highly encouraged)

https://github.com/ahnpnl/ts-jest-babel-example/tree/test-fail
envinfo

System:
    OS: macOS 11.0.1
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  Binaries:
    Node: 14.15.1 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.0.14 - /usr/local/bin/npm
  npmPackages:
    jest: ^27.0.0-next.2 => 27.0.0-next.2

This is not caused by Jest 27 directly, but by switching from jest-jasmine2 to jest-circus. Installing jest-circus@26 and adding testRunner: 'jest-circus/runner' to the config fails using Jest 26.
I haven't investigated if it's a bug in Jasmine or Circus

thanks a lot for the information, I can continue to adopt v27 for ts-jest knowing that this is not ts-jest problem.

@ahnpnl I think these are bugs in Jasmine - Jasmine does not report throwing in the hooks or something.
global.gc is not defined unless you expose it. And the app test is a bug in the test
https://github.com/ahnpnl/ts-jest-babel-example/blob/11f1ec13af6af7655c88997160a033c8f90e069f/test/with-nest/test8.spec.ts#L14
you do const app, so the app in the outer scope is never assigned to

indeed you are right. Look like jest-jasmine doesn't throw errors like jest-circus which then creates a false positive about "successful" tests.

Closing as duplicate of #9882 then. Thanks for trying 27 out! Please keep reporting any issues 🙂


[BUG] ServiceBusSender.SendMessageAsync erratic performance

Describe the bug
Application Insights is reporting large swings in 95th percentile timing for ServiceBusSender.Send
Expected behavior
Consistent sub-second timing for publishing a message
Actual behavior (include Exception or Stack Trace)
95th percentile is reporting peaks at or above 1.5 seconds
To Reproduce
Steps to reproduce the behavior (include a code snippet, screenshot, or any additional information that might help us reproduce the issue)
public interface ICloudEventGateway
{
    Task Publish(CloudEvent cloudEvent, CancellationToken cancellationToken);
}

public class AzureServiceBusCloudEventGateway : ICloudEventGateway
{
  private readonly Configuration.CloudEvents _config;
  private readonly ServiceBusClient _client;
  private readonly Dictionary<string, ServiceBusSender> _senderDictionary;

  public AzureServiceBusCloudEventGateway(
      IOptions<Configuration.CloudEvents> configOptions
  )
  {
      _config = configOptions.Value;
      _client = new ServiceBusClient(
          _config.ConnectionString,
          new ServiceBusClientOptions
          {
              TransportType = ServiceBusTransportType.AmqpWebSockets,
          }
      );

      _senderDictionary = new Dictionary<string, ServiceBusSender>();

      Lookups.CloudEvents.Collection.ForEach(ce =>
      {
          _senderDictionary.Add(ce.Type, _client.CreateSender(ce.Topic));
      });
  }

  public async Task Publish(CloudEvent cloudEvent, CancellationToken cancellationToken)
  {
      var cloudEventConfig = Lookups.CloudEvents.Collection
          .Where(ce => ce.Type.Equals(cloudEvent.Type, System.StringComparison.OrdinalIgnoreCase))
          .FirstOrDefault();

      if (cloudEventConfig is null)
      {
          throw new System.ArgumentNullException(nameof(Lookups.CloudEvents.CloudEventConfig), $"Configuration for [{cloudEvent.Type}] not found.");
      }

      var sender = _senderDictionary[cloudEventConfig.Type];

      var json = new JsonEventFormatter().EncodeStructuredEvent(cloudEvent, out var contentType);

      var message = new ServiceBusMessage(json)
      {
          ContentType = contentType.MediaType,
          CorrelationId = System.Guid.NewGuid().ToString(),
          MessageId = cloudEvent.Id,
          Subject = cloudEvent.Type,
      };

      await sender.SendMessageAsync(message, cancellationToken);
  }
}

services.AddSingleton<Gateways.ICloudEventGateway, Gateways.AzureServiceBusCloudEventGateway>();

CPU and Memory are holding steady
Environment:

Name and version of the Library package used<EMAIL_ADDRESS>Hosting platform or OS and .NET runtime version: docker mcr.microsoft.com/dotnet/aspnet:5.0
IDE and version : VS Code 1.59.0

CPU (Max) and Memory (Max)

Hi @Jarlotee.   Thank you for reaching out and we regret that you're experiencing difficulties.  Would you be willing to share how frequently you're publishing messages from your application?  I'm wondering if the variance that we're seeing is due to needing to reconnect, potentially from idle timeouts.
It may also be helpful if you're able to capture the SDK logs so that we can see whether there's anything at the network level that may be interrupting the connections/links that would require them to be recreated.   An example of listening to the SDK logs can be found here.
#feedback

Hmm, informational diagnostics are pretty useless, ill deploy with verbose logs turned on.

Your send rate would seem to rule out the idle connection theory.    @JoshLove-msft would be the authority on which logs would be most helpful, but it looks to me like we'd  want to look for the pattern:

SendMessageStart (id: 1)
RunOperationException (id: 43)
SendMessageException (id: 2)   (may not be present if retries were successful)
SendMessageComplete (id: 3)

Josh - do you have any thoughts on a better way to observe transient errors during sends?  We don't seem to have logging around the transport sender at all.

Hmm even with Verbos I am still seeing only two traces:
{
  "timestamp": "2021-08-16T16:36:29.0718841Z",
  "id": "062522f7e4da0843",
  "target": "ServiceBusSender.Send",
  "type": "servicebus",
  "name": "ServiceBusSender.Send",
  "success": true,
  "duration": 2305,
  "itemType": "dependency",
  "operation_Id": "624adf6073fd5a46bbbeca7a9545cc3e",
  "operation_ParentId": "5649364516fd0a41",
  "application_Version": "5.0.9",
  "sdkVersion": "dotnetc:2.16.0-18277"
}

Here are the other related events not part of that transaction:

customDimensions_message
timestamp [UTC]

Beginning refresh of AMQP link authorization for Identifier: com.redacted.conditions (Service Endpoint: 'amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions').
8/16/2021, 5:18:00.792 PM

com.redacted.conditions-5e482da2-f6c6-4cdb-b6a2-55b82079cbd3: Requesting authorization to amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions
8/16/2021, 5:18:00.792 PM

com.redacted.conditions-5e482da2-f6c6-4cdb-b6a2-55b82079cbd3: Authorization to amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions complete. Expiration time: 08/16/2021 17:48:00
8/16/2021, 5:18:00.847 PM

Completed refresh of AMQP link authorization for Identifier: com.redacted.conditions (Service Endpoint: 'amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions').
8/16/2021, 5:18:00.847 PM

Beginning refresh of AMQP link authorization for Identifier: com.redacted.conditions (Service Endpoint: 'amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions').
8/16/2021, 5:20:01.982 PM

com.redacted.conditions-244dafc2-8ebc-4ea4-a367-9ae8be27c26c: Requesting authorization to amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions
8/16/2021, 5:20:01.982 PM

com.redacted.conditions-244dafc2-8ebc-4ea4-a367-9ae8be27c26c: Authorization to amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions complete. Expiration time: 08/16/2021 17:50:01
8/16/2021, 5:20:02.005 PM

Completed refresh of AMQP link authorization for Identifier: com.redacted.conditions (Service Endpoint: 'amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions').
8/16/2021, 5:20:02.005 PM

Beginning refresh of AMQP link authorization for Identifier: com.redacted.conditions (Service Endpoint: 'amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions').
8/16/2021, 5:38:00.795 PM

com.redacted.conditions-5e482da2-f6c6-4cdb-b6a2-55b82079cbd3: Requesting authorization to amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions
8/16/2021, 5:38:00.795 PM

com.redacted.conditions-5e482da2-f6c6-4cdb-b6a2-55b82079cbd3: Authorization to amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions complete. Expiration time: 08/16/2021 18:08:00
8/16/2021, 5:38:00.959 PM

Completed refresh of AMQP link authorization for Identifier: com.redacted.conditions (Service Endpoint: 'amqps://redacted-events-prod-bus.servicebus.windows.net/com.redacted.conditions').
8/16/2021, 5:38:00.959 PM

Not much to go on :-(

Your send rate would seem to rule out the idle connection theory. @JoshLove-msft would be the authority on which logs would be most helpful, but it looks to me like we'd want to look for the pattern:

SendMessageStart (id: 1)
RunOperationException (id: 43)
SendMessageException (id: 2)   (may not be present if retries were successful)
SendMessageComplete (id: 3)

Josh - do you have any thoughts on a better way to observe transient errors during sends? We don't seem to have logging around the transport sender at all.

I think we would want to also capture CreateSendLinkStart(id: 80) and CreateSendLinkComplete(id: 81) to fully rule out the link reconnection theory.
@Jarlotee - is this on a standard or premium namespace? If it is standard, I believe the workloads are shared by other namespaces on the tenant, so that could impact perf.

Also, are you sure that this is the entire set of logs being produced? Ideally we would see a SendStart and a SendComplete event for each message that is sent.

From the one Send Start/Complete that you listed above, it appears that the send operation took two seconds.  If we're not seeing any RunOperationException, SendMessageException, or CreateSendLink Start/Complete that falls into the time period between those two Send events, then we're likely looking at the service operation taking the majority of that 2 second window.
The token refresh logs appear to indicate that we've got a connection and at least one link opened and that has been stable long enough that the authorization refresh was needed.   Not definitive, but it seems to further weaken the reconnection theory.
It may be worth considering opening an Azure support request with the details of the Service Bus subscription, entity, and the time period that you're seeing slowness.   That would allow the Service Bus service team to investigate what the service logs are saying.   That would help to confirm the length of the Send service operation.

@jsquire I will open a support ticket, we are using standard sku currently. Is premium required for required performance?

Is premium required for subsecond performance?

Generally speaking, yes.   Standard tier instances are shared and can be subject to throttling and latencies as a result.   This article details some of the standard/premium performance differences and this one goes into more detail about how throttling is applied to standard tier instances.

I will upgrade to premium and retest.

Thank you for the update @Jarlotee.   I'm going to mark this as addressed for now.  If something comes up on your testing, please feel free to "/unresolve" and continue the discussion.
#addressed


Pull/clone fails on Windows because of invalid characters

The file code_snippets/Interlude:_Common_tasks.py causes checkout to fail on Windows due to the presence of a colon in the filename.
λ git clone --depth=1 https://github.com/learnbyexample/py_regular_expressions
Cloning into 'py_regular_expressions'...
remote: Enumerating objects: 45, done.
remote: Counting objects: 100% (45/45), done.
remote: Compressing objects: 100% (44/44), done.
remote: Total 45 (delta 3), reused 21 (delta 1), pack-reused 0R
Receiving objects: 100% (45/45), 892.26 KiB | 3.91 MiB/s, done.
Resolving deltas: 100% (3/3), done.
error: invalid path 'code_snippets/Interlude:_Common_tasks.py'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

Descending into the directory and running git restore --source=HEAD :/ restores the files except "Interlude:_Common_tasks.py". Running git config core.protectNTFS false followed by git checkout also checks out all the files, however "Interlude:_Common_tasks.py" is replaced with a 0-byte file called "Interlude".

I didn't know that. Thanks for the issue. I've renamed the file now, please let me know if this resolves the issue.

Yep, works perfectly!


Is operator inaccuracy

Expected
Both string and bool are of type object
Actual
true is object // returns false
"string" is object // returns false

Steps To Reproduce
http://deck.net/ccb8ad6b47fb43ba844edec2922951a7
public class Program
{
    public static void Main()
    {
        // should be true
        Console.WriteLine(true is object);

        // should be true
        Console.WriteLine("string" is object);
    }
}

Output:
false
false

Hi @yuvaltz,
Thanks for submitting this simplified sample demonstrating how to reproduce. We will try to fix right away.


How to listen the native quit event?

Describe the bug
I can't find any related introduction in the document.
What I want to do is when the user click the native quit button on the right top, I can listen the event to do something.
Reproduction
No response
Expected behavior
No response
Platform and versions
Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 101.0.1210.39
  › MSVC:
      - Visual Studio ���ɹ��� 2019
      - Visual Studio 15 ���ɹ��� 2017
  › Node.js: 16.13.0
  › npm: 8.6.0
  › pnpm: 7.0.0
  › yarn: 1.22.18
  › rustup: 1.24.3
  › rustc: 1.60.0
  › cargo: 1.60.0
  › Rust toolchain: stable-x86_64-pc-windows-msvc

Packages
  › @tauri-apps/cli [NPM]: 1.0.0-rc.9(outdated, latest: 1.0.0-rc.10)
  › @tauri-apps/api [NPM]: 1.0.0-rc.4(outdated, latest: 1.0.0-rc.5)
  › tauri [RUST]: 1.0.0-rc.8,
  › tauri-build [RUST]: 1.0.0-rc.7,
  › tao [RUST]: 0.8.4,
  › wry [RUST]: 0.15.1,

App
  › build-type: bundle
  › CSP: unset
  › distDir: ../build
  › devPath: http://localhost:3000/
  › framework: React

Stack trace
No response
Additional context
No response

In javascript you can listen to the tauri://close-requested event. Listening to it should automatically prevent the window from closing.
In rust you need to use RunEvent, example: https://github.com/tauri-apps/tauri/blob/dev/examples/api/src-tauri/src/main.rs#L225-L254
(Note that some interactions like CMD+Q on macOS may not trigger the close-requested event, not sure right now)

In javascript you can listen to the tauri://close-requested event. Listening to it should automatically prevent the window from closing. In rust you need to use RunEvent, example: https://github.com/tauri-apps/tauri/blob/dev/examples/api/src-tauri/src/main.rs#L225-L254
(Note that some interactions like CMD+Q on macOS may not trigger the close-requested event, not sure right now)

Thanks. It can help.


3.0.0.pre.rc0 and heroku-stack-20 not working

Hi friends,
Just feedback around heroku-stack-20 and 'wkhtmltopdf-heroku', '3.0.0.pre.rc0'. They are not compatible.
# Herok
Heroku stack: 20

# Gemfile
gem 'wkhtmltopdf-heroku', '3.0.0.pre.rc0'

Raised this exception
RuntimeError: Failed to execute: ["/app/vendor/bundle/ruby/3.2.0/gems/wkhtmltopdf-heroku-3.0.0.pre.rc0/bin/wkhtmltopdf-linux-amd64", "--page-size", "Letter", "--margin-top", "13", "--margin-bottom", "3...

@alessandrostein did you find a way to fix this? Or did you just downgrade for heroku-20?

wkhtmltopdf-heroku

Was not working with Heroku-20, so, upgrade to Heroku-22 and now it's working fine 👍


Rename snapy.py to main.py;

Added assets (texture images & background music)
Added requirements.txt


Can generation for hair be added?

As of right now after my model after the humanized step it's all correct except that there's no hair bones. I am trying to manually move the old hair bones to the new armature but I don't really know how. Could it be generated along side when doing the humanized step?
I'm trying both just parenting and joining both armatures, but the hair bones does not move with the head's rotation and I don't really know how to get it to work together.
Sorry if it does not sound clear, I don't really know how to explain it. :P

The hair bones should already be copied over to the new armature. Not all the bone layers are visible by default so you will need to enter Pose Mode and select the Armature, and then in Object Data Properties, enable the layer for the hair bones (and other miscellaneous bones):

This is what it looks like in the viewport with just the layer with the hair bones enabled:

Thanks! I havent noticed it all along 😅. So this issue could probably be closed?

Feel free to close the issue if you feel that your question has been answered.

Thanks a lot!


added terrascan, a Terraform linter/scanner

I use Terrascan for work, it's quite nice at detecting some configuration mistakes, and figured it would be a useful addition here.

Thanks @lojikil. Had to fix the alphabetical ordering but it's all good now. 😉

I didn't even notice that, my apologies! I'll follow for next time 🤦♂


promise implementation does not seem to work

Despite the documented promise-approach I am getting the follow error:

wip/node_modules/gdax/lib/clients/public.js:57
throw "Must supply a callback."

index.js
const Gdax = require('gdax');
const publicClient = new Gdax.PublicClient();

publicClient
  .getProducts()
  .then(data => {
      // work with data
  })
  .catch(error => {
     // handle the error
  });

Nevermind... installation using github works... (so I guess the version in npm is not up-to-date)

His this issue too ... please update nom version.


Prevent undesired console logs

About the changes
When working with this SDK I noticed a lot of clutter in the console so I wrote this simple wrapper class to hide them if desired (and to prevent console printing in production builds).
Important files

Printer.swift is new and manages a boolean flag for whether or not to show print statements as well as the wrapper function for print().
Discussion points

While this is a non-ideal and temporary solution, it gets the job done. In the long term, I believe the SDK needs a protocol that consumers can subscribe to receive error callbacks if they choose to so they can be logged by their own services.

Hey, @chickdan! 👋🏼  Thanks for the PR! The changes look pretty reasonable to me. I'll get our resident Swift expert to have a look soon, but we're quite busy these days, so it might not be until next week, if that's alright? ☺

That is quite alright, thank you for taking a look!


Support catalog visibility per environment

Support ability to control catalog item visibility per environment.

+1
Catalogues should be enabled per-Environment and not globally.  This allows use to have a 'stable' catalogue for our production environments, and an unsupported catalogue for others -- even a catalogue for just a single team's environments.  Otherwise, we cannot devolve administration of catalogue items to separate groups without potentially causing chaos in our production environments.

+1
@sshipway, @will-chan  I even think Stack versions should be enabled/disabled per environment. You can have a Stack version v1.0-rc1 which is deployable only on Development and Test environment and than once the v1.0 is realeased it should be possible to have it deployable on all environments. A Catalog by itself may contains a mix of release candidates and stable version  of the same Stack, therefore I don't think only the entire Catalog would be enough. Basically once a Stack as a new version, an admin would need to enable for the specific environments. By default Stack would be disabled...

@demarant. I don't see any reason to involve Rancher in that..  Catalogs are git repos for a reason, and you already have restrictions on who can change them.  If you want different versions, just keep 2 or more repos/branches and promote by merging between them.

@vincent99
Good point, i guess that should work

Or, how about Catalogue items being able to specify Branch?  Thus, your Prod environment would include your Catalogue repo Master branch, and your Dev environment would use the Development branch...

Version - v1.5.0-rc2 - Regression completed.  Need UI to support multiple environments.

Determined with @deniseschannon  that this is a dupe of #8702, but will leave open for now so that @tfiduccia @amy @deniseschannon can see and decide how to handle.

Version - master 5/17
Verified feature added - I'm going to close this one in favor of #8702.  Plus it's implemented and any issues will be entered separately.


Nzbget sensor support

Description:
This adds a basic sensor for monitoring nzbget servers.  I tried to model it after the sabnzbd sensor so that the config should be similar.
Related issue (if applicable): #
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: nzbget
    base_url: http://<IP_ADDRESS>:6789
    username: apiuser
    password: apipass
    monitored_variables:
      - ArticleCacheMB
      - DownloadRate
      - DownloadPaused
      - FreeDiskSpaceMB
      - PostPaused
      - RemainingSizeMB

username, password, and monitored_variables are all optional config options.   monitored variables defaults to:  "DownloadRate", "DownloadPaused", "RemainingSizeMB"
Checklist:

[ ] Local tests with tox run successfully.
[ ] TravisCI does not fail. Your PR cannot be merged unless CI is green!
[ ] Fork is up to date and was rebased on the dev branch before creating the PR.
[ ] Commits have been squashed.
If code communicates with devices:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

CI also found some linting errors that need to be addressed.

I'll fix the remaining lint errors, but should I worry about the coveralls report?  They aren't files I touched in this PR

I think I've addressed all of your feedback, and the linting errors.  @balloob, can you take another look at this when you get a chance?
Thanks!

Please check all items in the checklist in your PR that are done and do the ones not done yet.

Sorry for taking so long to get back to this, but this should hopefully be ready now

Looks good! :dolphin:


Problems with Joi.alternatives

The following code worked in early versions:
const bSchema = Joi.object({
	name: Joi.string().required(),
	age: Joi.number().required(),
});

const aSchema = Joi.object({
	surname: Joi.string().required(),
	age: Joi.number().required(),
});

const Schema = Joi.alternatives(aSchema, bSchema);

Schema used to have correct types.
However, in current version, if we convert Schema to type, we get:
{ age: number; } & {}

name and surname are completely lost.
So it probably behaves more like & than |

Thanks! This was a mistake. Fixed in 2.0.5


Example using nights instead of days

On the easepick demo's we have this https://easepick.com/examples/nights.html
I'm able to add the content to change the text but struggling to see an option for where to modify the tooltipNum.
Any ideas on how I can add this in?
Thanks

Hey
You currently have 2 solutions

Use basic easepick wrappers: react-easepick or easepick-react
Wait a bit, I'm adding full easepick options (couple of hours)

Thank you

Thats amazing!
Thanks for the speedy response on that!


Add size and datecreated information to Get-BcContainerTenants cmdlet

Add size and datecreated information to Get-BcContainerTenants cmdlet

#2236

I think this functionality is very specialized.
Instead of adding this to containerhelper, you should just have a function in your own library that does this, Invoke-ScriptInBcContainer is helpful (as you know)
In the future, BcContainerHelper will be rewritten to PS7 and we will try to remove some of the very specialized behaviors to make support easier. Therefore I think it is wrong to add more now.

Noted, this can be canceled. I have already built a function for my own usage.


Waiting for attribute

Add waitToAttribute and waitForElementAttributeToBe to support the element waiting for an attribute to be a specific value.

Thank you @Kinasr for your efforts and contributions!