[BUG] SNZB-02 Reports Humidity regularly but never reports a new temperature value

Bug description
I have two SNZB-02 sensors and both of them regularly report humidity values, however, both of them seem to be 'stuck' with the same temperature value. They never update the value; one is indoors and one is in my shed as an experiment. At minimum the shed temperature should be regularly fluctuating, so I'll post data about that below.
Steps to reproduce

I added the devices and saw initial temperature and humidity values
After a while I can see changes in humidity are reported but no changes in temperature ever seem to be reported.

Expected behavior
Both temperature and humidity values to be regularly reported.
Screenshots/Video
Screenshots/Video

Device signature
Device signature
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x0302",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0402",
        "0x0405"
      ],
      "output_clusters": [
        "0x0003"
      ]
    }
  },
  "manufacturer": "eWeLink",
  "model": "TH01",
  "class": "zigpy.device.Device"
}

Diagnostic information
Diagnostic information
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.9.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.5",
    "docker": true,
    "arch": "x86_64",
    "timezone": "America/Chicago",
    "os_name": "Linux",
    "os_version": "6.1.45",
    "supervisor": "2023.09.2",
    "host_os": "Home Assistant OS 10.5",
    "docker_version": "23.0.6",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "dyson_cloud": {
      "version": "0.15.0",
      "requirements": [
        "libdyson==0.8.7"
      ]
    },
    "owlet": {
      "version": "1.0.0",
      "requirements": [
        "PyJWT",
        "gcloud",
        "sseclient",
        "requests_toolbelt"
      ]
    },
    "deepstack_face": {
      "version": "0.9.0",
      "requirements": [
        "pillow",
        "deepstack-python==0.8"
      ]
    },
    "weatheralerts": {
      "version": "0.1.5",
      "requirements": []
    },
    "dlink_hnap": {
      "version": "1.0.0",
      "requirements": []
    },
    "hacs": {
      "version": "1.32.1",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "dyson_local": {
      "version": "0.16.4-4",
      "requirements": [
        "libdyson==0.8.11"
      ]
    },
    "babybuddy": {
      "version": "v0.0.0",
      "requirements": []
    },
    "zha_toolkit": {
      "version": "v0.9.9",
      "requirements": [
        "pytz"
      ]
    },
    "simple_wyze_vac": {
      "version": "1.8.8",
      "requirements": [
        "https://github.com/romedtino/wyze-sdk/archive/refs/tags/10.4.1.zip#wyze-sdk==10.4.1"
      ]
    },
    "icloud3": {
      "version": "2.4.6",
      "requirements": []
    },
    "frigate": {
      "version": "4.0.0",
      "requirements": [
        "pytz==2022.7"
      ]
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp",
      "universal_silabs_flasher"
    ],
    "requirements": [
      "bellows==0.36.3",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.103",
      "zigpy-deconz==0.21.1",
      "zigpy==0.57.1",
      "zigpy-xbee==0.18.2",
      "zigpy-zigate==0.11.0",
      "zigpy-znp==0.11.4",
      "universal-silabs-flasher==0.0.13"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_uzg-01._tcp.local.",
        "name": "uzg-01*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 29821,
    "manufacturer": "eWeLink",
    "model": "TH01",
    "name": "eWeLink TH01",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 0,
    "power_source": "Battery or Unknown",
    "lqi": 148,
    "rssi": -63,
    "last_seen": "2023-09-16T11:46:10",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0302",
          "input_clusters": [
            "0x0000",
            "0x0001",
            "0x0003",
            "0x0402",
            "0x0405"
          ],
          "output_clusters": [
            "0x0003"
          ]
        }
      },
      "manufacturer": "eWeLink",
      "model": "TH01"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.zigbee_shed_temp_identify",
        "name": "eWeLink TH01"
      },
      {
        "entity_id": "sensor.zigbee_shed_temp_battery",
        "name": "eWeLink TH01"
      },
      {
        "entity_id": "sensor.zigbee_shed_temp_temperature",
        "name": "eWeLink TH01"
      },
      {
        "entity_id": "sensor.zigbee_shed_temp_humidity",
        "name": "eWeLink TH01"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "TEMPERATURE_SENSOR"
      }
    ],
    "user_given_name": "Zigbee Shed Temp",
    "device_reg_id": "f38c17b0e3b698928be0094bd34de0b4",
    "area_id": "shed",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "TEMPERATURE_SENSOR",
          "id": 770
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "eWeLink"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TH01"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0402": {
            "endpoint_attribute": "temperature",
            "attributes": {
              "0x0000": {
                "attribute_name": "measured_value",
                "value": 2591
              }
            },
            "unsupported_attributes": {}
          },
          "0x0405": {
            "endpoint_attribute": "humidity",
            "attributes": {
              "0x0000": {
                "attribute_name": "measured_value",
                "value": 5175
              }
            },
            "unsupported_attributes": {}
          },
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0021": {
                "attribute_name": "battery_percentage_remaining",
                "value": 200
              },
              "0x0020": {
                "attribute_name": "battery_voltage",
                "value": 31
              }
            },
            "unsupported_attributes": {
              "0x0031": {
                "attribute_name": "battery_size"
              },
              "0x0033": {
                "attribute_name": "battery_quantity"
              }
            }
          }
        },
        "out_clusters": {
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Logs
Logs
[Paste the logs here]

My logs are 200MB so can't paste them here easily; not sure how to shrink them.
Additional information
No response

Perhaps the device started to sleep during the pairing process, thus missing the setup of the attribute reporting for the temperature value.
If the device has a button, you can you try to "reconfigure the device" (shown on the HA device page for that sensor).
Whilst clicking "start reconfiguration", you can try to press the button (likely a reset button) once. Depending on the sensors firmware, that might cause the sensor to wake up (thus receiving the attribute reporting setup requests).
Otherwise, you'll likely have to allow joins again (click "Add Device") and then reset the sensor, so it can join the network again and hopefully finish configuration correctly that time.
If it still doesn't finish, logs would be helpful. You can paste the section from the time when you joined the device (it will show something like "Device ... joined the network".
Also, you could try to reposition your coordinator. Maybe there's some interference. Make sure it's on a USB extension cable, away form metal, WiFi access points, bluetooth devices, ...

(not the same device, but has the same problem and is the same model of device)
Reconfiguration on my 2nd SNZB-02 fails; I don't think the button wakes it up and I tried to insert the battery and then hit reconfigure but no luck.

However, I grabbed the logs from re-adding the device and this seems to be the problem:
[0xB4F1:1:0x0003]: Configuring cluster attribute reporting Error handling '_save_attribute' event with (00:12:4b:00:25:16:50:3a, 1, 0, 5, 'TH01', datetime.datetime(2023, 9, 17, 0, 46, 8, 994195, tzinfo=datetime.timezone.utc)) params: FOREIGN KEY constraint failed [0xB4F1:1:0x0402]: Failed to bind 'temperature' cluster: Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102> Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.Broadcast: 15>, address=<BroadcastAddress.ALL_ROUTERS_AND_COORDINATOR: 65532>), dst_ep=0, source_route=None, extended_timeout=False, tsn=5, profile_id=0, cluster_id=0, data=Serialized[b'\x01\xdf_=\x0b\x00o\r\x00\x00\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32) [0xb4f1:zdo] ZDO request ZDOCmd.NWK_addr_req: [00:0d:6f:00:0b:3d:5f:df, <AddrRequestType.Single: 0>, 0] [0xB4F1:1:0x0001]: Failed to bind 'power' cluster: Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102> Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=6, profile_id=260, cluster_id=1026, data=Serialized[b'\x185\x07\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
Full logs:
Logs
Device 0xb4f1 (00:12:4b:00:25:16:50:3a) joined the network
[0xb4f1] Scheduling initialization
[0xb4f1] Canceling old initialize call
Received frame on uninitialized device <Device model=None manuf=None nwk=0xB4F1 ieee=00:12:4b:00:25:16:50:3a is_initialized=False> from ep 0 to ep 0, cluster 19: b'\x00\xf1\xb4:P\x16%\x00K\x12\x00\x80'
[0xb4f1:zdo] ZDO request ZDOCmd.Device_annce: [0xB4F1, 00:12:4b:00:25:16:50:3a, 128]
Tries remaining: 5
[0xb4f1] Requesting 'Node Descriptor'
[0xb4f1] Extending timeout for 0x25 request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xF3B8), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=195, profile_id=260, cluster_id=1029, data=Serialized[b'\x18 \n\x00\x00!4\x14'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=228, rssi=-43)
[0xF3B8:1:0x0405] Received ZCL frame: b'\x18 \n\x00\x00!4\x14'
[0xF3B8:1:0x0405] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=32, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0xF3B8:1:0x0405] Decoded ZCL frame: RelativeHumidity:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=5172))])
[0xF3B8:1:0x0405] Received command 0x0A (TSN 32): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=5172))])
[0xF3B8:1:0x0405] Attribute report received: measured_value=5172
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=0, source_route=None, extended_timeout=False, tsn=1, profile_id=0, cluster_id=32770, data=Serialized[b'%\x00\xf1\xb4\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
Received frame on uninitialized device <Device model=None manuf=None nwk=0xB4F1 ieee=00:12:4b:00:25:16:50:3a is_initialized=False> from ep 0 to ep 0, cluster 32770: b'%\x00\xf1\xb4\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00'
[0xb4f1] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)
[0xb4f1] Discovering endpoints
[0xb4f1] Extending timeout for 0x27 request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=0, source_route=None, extended_timeout=False, tsn=2, profile_id=0, cluster_id=32773, data=Serialized[b"'\x00\xf1\xb4\x01\x01"], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
Received frame on uninitialized device <Device model=None manuf=None nwk=0xB4F1 ieee=00:12:4b:00:25:16:50:3a is_initialized=False> from ep 0 to ep 0, cluster 32773: b"'\x00\xf1\xb4\x01\x01"
[0xb4f1] Discovered endpoints: [1]
[0xb4f1] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xb4f1:1] Discovering endpoint information
[0xb4f1] Extending timeout for 0x29 request
Tries remaining: 4
[0xb4f1] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fa326cfff50>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0xb4f1] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xb4f1:1] Discovering endpoint information
[0xb4f1] Extending timeout for 0x2b request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=0, source_route=None, extended_timeout=False, tsn=3, profile_id=0, cluster_id=32772, data=Serialized[b'+\x00\xf1\xb4\x14\x01\x04\x01\x02\x03\x00\x05\x00\x00\x03\x00\x02\x04\x05\x04\x01\x00\x01\x03\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
Received frame on uninitialized device <Device model=None manuf=None nwk=0xB4F1 ieee=00:12:4b:00:25:16:50:3a is_initialized=False> from ep 0 to ep 0, cluster 32772: b'+\x00\xf1\xb4\x14\x01\x04\x01\x02\x03\x00\x05\x00\x00\x03\x00\x02\x04\x05\x04\x01\x00\x01\x03\x00'
[0xb4f1:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=770, device_version=0, input_clusters=[0, 3, 1026, 1029, 1], output_clusters=[3])
[0xB4F1:1:0x0000] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=45, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0xB4F1:1:0x0000] Sending request: Read_Attributes(attribute_ids=[4, 5])
[0xb4f1] Extending timeout for 0x2d request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=4, profile_id=260, cluster_id=0, data=Serialized[b'\x18-\x01\x04\x00\x00B\x07eWeLink\x05\x00\x00B\x04TH01'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0000] Received ZCL frame: b'\x18-\x01\x04\x00\x00B\x07eWeLink\x05\x00\x00B\x04TH01'
[0xB4F1:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=45, command_id=1, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0000] Decoded ZCL frame: Basic:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0004, status=<Status.SUCCESS: 0>, value=TypeValue(type=CharacterString, value='eWeLink')), ReadAttributeRecord(attrid=0x0005, status=<Status.SUCCESS: 0>, value=TypeValue(type=CharacterString, value='TH01'))])
[0xb4f1] Read model 'TH01' and manufacturer 'eWeLink' from <Endpoint id=1 in=[basic:0x0000, identify:0x0003, temperature:0x0402, humidity:0x0405, power:0x0001] out=[identify:0x0003] status=<Status.ZDO_INIT: 1>>
[0xb4f1] Discovered basic device information for <Device model='TH01' manuf='eWeLink' nwk=0xB4F1 ieee=00:12:4b:00:25:16:50:3a is_initialized=True>
Device is initialized <Device model='TH01' manuf='eWeLink' nwk=0xB4F1 ieee=00:12:4b:00:25:16:50:3a is_initialized=True>
Checking quirks for eWeLink TH01 (00:12:4b:00:25:16:50:3a)
Considering <class 'zhaquirks.xiaomi.aqara.opple_switch.XiaomiOpple2ButtonSwitchFace2'>
Fail because endpoint list mismatch: {1, 2, 242} {1}
Considering <class 'zhaquirks.xiaomi.aqara.opple_switch.XiaomiOpple2ButtonSwitchFace1'>
Fail because endpoint list mismatch: {1, 2, 41, 42, 242, 51, 21, 31} {1}
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.tuya.ts0201.MoesTemperatureHumidtySensorWithScreen'>
Fail because input cluster mismatch on at least one endpoint
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1}
Creating cluster handler for cluster id: 0 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.BasicClusterHandler'>
Creating cluster handler for cluster id: 3 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.Identify'>
Creating cluster handler for cluster id: 1026 class: <class 'homeassistant.components.zha.core.cluster_handlers.measurement.TemperatureMeasurement'>
Creating cluster handler for cluster id: 1029 class: <class 'homeassistant.components.zha.core.cluster_handlers.measurement.RelativeHumidity'>
Creating cluster handler for cluster id: 1 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.PowerConfigurationClusterHandler'>
Discovering entities for endpoint: 00:12:4b:00:25:16:50:3a-1
'button' component -> 'ZHAIdentifyButton' using ['identify']
'sensor' component -> 'Battery' using ['power']
'sensor' component -> 'Temperature' using ['temperature']
'sensor' component -> 'RSSISensor' using ['basic']
'sensor' component -> 'LQISensor' using ['basic']
'sensor' component -> 'Humidity' using ['humidity']
device - 0xB4F1:00:12:4b:00:25:16:50:3a entering async_device_initialized - is_new_join: True
device - 0xB4F1:00:12:4b:00:25:16:50:3a has joined the ZHA zigbee network
[0xB4F1](TH01): started configuration
[0xB4F1:ZDO](TH01): 'async_configure' stage succeeded
[0xB4F1:1:0x0003]: Configuring cluster attribute reporting
Error handling '_save_attribute' event with (00:12:4b:00:25:16:50:3a, 1, 0, 5, 'TH01', datetime.datetime(2023, 9, 17, 0, 46, 8, 994195, tzinfo=datetime.timezone.utc)) params: FOREIGN KEY constraint failed
[0xB4F1:1:0x0402]: Failed to bind 'temperature' cluster: Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102>
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.Broadcast: 15>, address=<BroadcastAddress.ALL_ROUTERS_AND_COORDINATOR: 65532>), dst_ep=0, source_route=None, extended_timeout=False, tsn=5, profile_id=0, cluster_id=0, data=Serialized[b'\x01\xdf_=\x0b\x00o\r\x00\x00\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xb4f1:zdo] ZDO request ZDOCmd.NWK_addr_req: [00:0d:6f:00:0b:3d:5f:df, <AddrRequestType.Single: 0>, 0]
[0xB4F1:1:0x0001]: Failed to bind 'power' cluster: Failed to deliver message: <EmberStatus.DELIVERY_FAILED: 102>
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=6, profile_id=260, cluster_id=1026, data=Serialized[b'\x185\x07\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0402] Received ZCL frame: b'\x185\x07\x00'
[0xB4F1:1:0x0402] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=53, command_id=7, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0402] Decoded ZCL frame: TemperatureMeasurement:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=<Status.SUCCESS: 0>)])
[0xB4F1:1:0x0402]: Successfully configured reporting for '{'measured_value': (30, 900, 50)}' on 'temperature' cluster: [ConfigureReportingResponseRecord(status=<Status.SUCCESS: 0>)]
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=0, source_route=None, extended_timeout=False, tsn=8, profile_id=0, cluster_id=32801, data=Serialized[b'1\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0405]: bound 'humidity' cluster: Status.SUCCESS
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=9, profile_id=260, cluster_id=1, data=Serialized[b'\x188\x07\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0001] Received ZCL frame: b'\x188\x07\x00'
[0xB4F1:1:0x0001] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=56, command_id=7, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0001] Decoded ZCL frame: PowerConfiguration:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=<Status.SUCCESS: 0>)])
[0xB4F1:1:0x0001]: Successfully configured reporting for '{'battery_voltage': (3600, 10800, 1), 'battery_percentage_remaining': (3600, 10800, 1)}' on 'power' cluster: [ConfigureReportingResponseRecord(status=<Status.SUCCESS: 0>)]
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=10, profile_id=260, cluster_id=1029, data=Serialized[b'\x18:\x07\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0405] Received ZCL frame: b'\x18:\x07\x00'
[0xB4F1:1:0x0405] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=58, command_id=7, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0405] Decoded ZCL frame: RelativeHumidity:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=<Status.SUCCESS: 0>)])
[0xB4F1:1:0x0405]: Successfully configured reporting for '{'measured_value': (30, 900, 100)}' on 'humidity' cluster: [ConfigureReportingResponseRecord(status=<Status.SUCCESS: 0>)]
[0xB4F1:1:0x0003]: 'async_configure' stage succeeded
[0xB4F1:1:0x0402]: 'async_configure' stage succeeded
[0xB4F1:1:0x0405]: 'async_configure' stage succeeded
[0xB4F1:1:0x0000]: 'async_configure' stage succeeded
[0xB4F1:1:0x0001]: 'async_configure' stage succeeded
[0xB4F1](TH01): completed configuration
Tries remaining: 3
[0xB4F1:1:0x0003] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=60, command_id=64, *direction=<Direction.Server_to_Client: 0>)
[0xB4F1:1:0x0003] Sending request: trigger_effect(effect_id=<EffectIdentifier.Okay: 2>, effect_variant=<EffectVariant.Default: 0>)
[0xb4f1] Extending timeout for 0x3c request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=11, profile_id=260, cluster_id=3, data=Serialized[b'\x18<\x0b@\x81'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0003] Received ZCL frame: b'\x18<\x0b@\x81'
[0xB4F1:1:0x0003] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=60, command_id=11, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0003] Decoded ZCL frame: Identify:Default_Response(command_id=64, status=<Status.UNSUP_CLUSTER_COMMAND: 129>)
[0xB4F1](TH01): started initialization
[0xB4F1:ZDO](TH01): 'async_initialize' stage succeeded
[0xB4F1:1:0x0003]: initializing cluster handler: from_cache: False
[0xB4F1:1:0x0003]: finished cluster handler initialization
[0xB4F1:1:0x0402]: initializing cluster handler: from_cache: False
[0xB4F1:1:0x0402]: initializing uncached cluster handler attributes: ['measured_value'] - from cache[False]
[0xB4F1:1:0x0402]: Reading attributes in chunks: ['measured_value']
[0xB4F1:1:0x0402] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=62, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0xB4F1:1:0x0402] Sending request: Read_Attributes(attribute_ids=[0])
[0xb4f1] Extending timeout for 0x3e request
[0xB4F1:1:0x0405]: initializing cluster handler: from_cache: False
[0xB4F1:1:0x0405]: initializing uncached cluster handler attributes: ['measured_value'] - from cache[False]
[0xB4F1:1:0x0405]: Reading attributes in chunks: ['measured_value']
[0xB4F1:1:0x0405] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=64, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0xB4F1:1:0x0405] Sending request: Read_Attributes(attribute_ids=[0])
[0xb4f1] Extending timeout for 0x40 request
[0xB4F1:1:0x0000]: initializing cluster handler: from_cache: False
[0xB4F1:1:0x0000]: finished cluster handler initialization
[0xB4F1:1:0x0001]: initializing cluster handler: from_cache: False
[0xB4F1:1:0x0001]: initializing uncached cluster handler attributes: ['battery_voltage', 'battery_percentage_remaining'] - from cache[False]
[0xB4F1:1:0x0001]: Reading attributes in chunks: ['battery_voltage', 'battery_percentage_remaining']
[0xB4F1:1:0x0001] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=66, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0xB4F1:1:0x0001] Sending request: Read_Attributes(attribute_ids=[32, 33])
[0xb4f1] Extending timeout for 0x42 request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=12, profile_id=260, cluster_id=1026, data=Serialized[b'\x18>\x01\x00\x00\x00)\xc3\t'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0402] Received ZCL frame: b'\x18>\x01\x00\x00\x00)\xc3\t'
[0xB4F1:1:0x0402] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=62, command_id=1, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0402] Decoded ZCL frame: TemperatureMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=<Status.SUCCESS: 0>, value=TypeValue(type=int16s, value=2499))])
[0xB4F1:1:0x0402]: finished cluster handler initialization
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=13, profile_id=260, cluster_id=1029, data=Serialized[b'\x18@\x01\x00\x00\x00)\xb0\x11'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0405] Received ZCL frame: b'\x18@\x01\x00\x00\x00)\xb0\x11'
[0xB4F1:1:0x0405] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=64, command_id=1, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0405] Decoded ZCL frame: RelativeHumidity:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=<Status.SUCCESS: 0>, value=TypeValue(type=int16s, value=4528))])
[0xB4F1:1:0x0405]: finished cluster handler initialization
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=14, profile_id=260, cluster_id=1, data=Serialized[b'\x18B\x01 \x00\x00 \x1f!\x00\x00 \xc8'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0001] Received ZCL frame: b'\x18B\x01 \x00\x00 \x1f!\x00\x00 \xc8'
[0xB4F1:1:0x0001] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=66, command_id=1, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0001] Decoded ZCL frame: PowerConfiguration:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0020, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint8_t, value=31)), ReadAttributeRecord(attrid=0x0021, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint8_t, value=200))])
[0xB4F1:1:0x0001]: Performing cluster handler specific initialization: ['battery_voltage', 'battery_percentage_remaining']
[0xB4F1:1:0x0001]: Reading attributes in chunks: ['battery_size', 'battery_quantity']
[0xB4F1:1:0x0001] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=68, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0xB4F1:1:0x0001] Sending request: Read_Attributes(attribute_ids=[49, 51])
[0xb4f1] Extending timeout for 0x44 request
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=16, profile_id=260, cluster_id=1029, data=Serialized[b'\x18\x01\n\x00\x00!F\x11'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-32)
[0xB4F1:1:0x0405] Received ZCL frame: b'\x18\x01\n\x00\x00!F\x11'
[0xB4F1:1:0x0405] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=1, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0405] Decoded ZCL frame: RelativeHumidity:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=4422))])
[0xB4F1:1:0x0405] Received command 0x0A (TSN 1): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=4422))])
[0xB4F1:1:0x0405] Attribute report received: measured_value=4422
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xB4F1), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=17, profile_id=260, cluster_id=1, data=Serialized[b'\x18D\x011\x00\x863\x00\x86'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=255, rssi=-33)
[0xB4F1:1:0x0001] Received ZCL frame: b'\x18D\x011\x00\x863\x00\x86'
[0xB4F1:1:0x0001] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=68, command_id=1, *direction=<Direction.Client_to_Server: 1>)
[0xB4F1:1:0x0001] Decoded ZCL frame: PowerConfiguration:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0031, status=<Status.UNSUPPORTED_ATTRIBUTE: 134>), ReadAttributeRecord(attrid=0x0033, status=<Status.UNSUPPORTED_ATTRIBUTE: 134>)])
[0xB4F1:1:0x0001]: finished cluster handler initialization
[0xB4F1:1:0x0003]: 'async_initialize' stage succeeded
[0xB4F1:1:0x0402]: 'async_initialize' stage succeeded
[0xB4F1:1:0x0405]: 'async_initialize' stage succeeded
[0xB4F1:1:0x0000]: 'async_initialize' stage succeeded
[0xB4F1:1:0x0001]: 'async_initialize' stage succeeded
[0xB4F1](TH01): power source: Battery or Unknown
[0xB4F1](TH01): completed initialization
[0xF1D6](S31 Lite zb): Device seen - marking the device available and resetting counter
[0xF1D6](S31 Lite zb): Update device availability -  device available: True - new availability: True - changed: False
[0x11B2](lumi.vibration.aq1): Device seen - marking the device available and resetting counter
[0x11B2](lumi.vibration.aq1): Update device availability -  device available: True - new availability: True - changed: False
[0xC315](DS01): Device seen - marking the device available and resetting counter
[0xC315](DS01): Update device availability -  device available: True - new availability: True - changed: False

That looks like the sensor is asleep. Can you try to re-pair it? (maybe even try multiple times and/or with fresh batteries)

If its going deep sleep and not being configured OK it can being needed removing the battery and putting it in and doing the reconfigure for it receiving it (Some IKEA controller with latest firmware is one normal problem).

Thank you for your replies; I've been doing a bit of testing. I tried re-pairing a few times and most of them failed and got stuck on "Starting Interview". I wonder if this issue is related to this: https://github.com/home-assistant/core/issues/99497
I've tried repairing with new batteries, reloading the integration, and rebooting home assistant.
In any case, when I repair either of these SNZB-02 devices the temperature doesn't update beyond the initial update. Humidity updates just fine.
Or perhaps it's an issue with the coordinator I have? Zooz 800 series ZST39 (https://www.getzooz.com/zooz-zst39-z-wave-long-range-usb-stick/)
It seems the only way I can get new devices to pair reliably is via "Add Devices Via This Device" on the Coordinator.
Zigbee Shed Temp
Re-Pairing Logs: Zigbee Shed Temp (Fails to Pair)
New device 0x955f (00:12:4b:00:2a:52:26:bd) joined the network
[0x955f] Requesting 'Node Descriptor'
Device 0x955f (00:12:4b:00:2a:52:26:bd) joined the network
[0x955f] Requesting 'Node Descriptor'
[0x955f] Requesting 'Node Descriptor'
Device 0x955f (00:12:4b:00:2a:52:26:bd) left the network
Device 0x955f (00:12:4b:00:2a:52:26:bd) joined the network
[0x955f] Requesting 'Node Descriptor'
[0x955f] Requesting 'Node Descriptor'
[0x955f] Requesting 'Node Descriptor'
[0x955f] Requesting 'Node Descriptor'
[0x955f] Requesting 'Node Descriptor'
Device 0x955f (00:12:4b:00:2a:52:26:bd) joined the network
[0x955f] Requesting 'Node Descriptor'
Device 0x955f (00:12:4b:00:2a:52:26:bd) joined the network
[0x955f] Requesting 'Node Descriptor'
[0x955f] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)
[0x955f] Discovering endpoints
[0x955f] Discovered endpoints: [1]
[0x955f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x955f:1] Discovering endpoint information
[0x955f] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb509fdb990>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0x955f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x955f:1] Discovering endpoint information
[0x955f] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb509fdb990>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0x955f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x955f:1] Discovering endpoint information
[0x955f] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb509fdb990>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0x955f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x955f:1] Discovering endpoint information
[0x955f] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb509fdb990>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0x955f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x955f:1] Discovering endpoint information

Re-Pairing Logs: Zigbee Shed Temp (Fails to Pair again)
New device 0xd73f (00:12:4b:00:2a:52:26:bd) joined the network
[0xd73f] Requesting 'Node Descriptor'
Device 0xd73f (00:12:4b:00:2a:52:26:bd) joined the network
[0xd73f] Requesting 'Node Descriptor'
[0xd73f] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)
[0xd73f] Discovering endpoints
[0xd73f] Discovered endpoints: [1]
[0xd73f] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xd73f:1] Discovering endpoint information

Re-Pairing Logs: Zigbee Shed Temp (Repaired using "Add Devices Via This Device")
Device 0xf8c5 (00:12:4b:00:2a:52:26:bd) joined the network
[0xf8c5] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb5141c9890>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0xf8c5] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xf8c5:1] Discovering endpoint information
Device 0xf8c5 (00:12:4b:00:2a:52:26:bd) joined the network
[0xf8c5] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb5141c9890>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0xf8c5] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xf8c5:1] Discovering endpoint information
[0xf8c5] Already have endpoints: {0: <zigpy.zdo.ZDO object at 0x7fb5141c9890>, 1: <Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>}
[0xf8c5] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xf8c5:1] Discovering endpoint information
[0xf8c5:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=770, device_version=0, input_clusters=[0, 3, 1026, 1029, 1], output_clusters=[3])
[0xf8c5] Read model 'TH01' and manufacturer 'eWeLink' from <Endpoint id=1 in=[basic:0x0000, identify:0x0003, temperature:0x0402, humidity:0x0405, power:0x0001] out=[identify:0x0003] status=<Status.ZDO_INIT: 1>>
[0xf8c5] Discovered basic device information for <Device model='TH01' manuf='eWeLink' nwk=0xF8C5 ieee=00:12:4b:00:2a:52:26:bd is_initialized=True>
Creating cluster handler for cluster id: 0 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.BasicClusterHandler'>
Creating cluster handler for cluster id: 3 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.Identify'>
Creating cluster handler for cluster id: 1026 class: <class 'homeassistant.components.zha.core.cluster_handlers.measurement.TemperatureMeasurement'>
Creating cluster handler for cluster id: 1029 class: <class 'homeassistant.components.zha.core.cluster_handlers.measurement.RelativeHumidity'>
Creating cluster handler for cluster id: 1 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.PowerConfigurationClusterHandler'>

Regarding this, can you also attach the diagnostic information from the ZHA integration itself? It can be downloaded on the integrations page.

^
and is that stick a Z-Wave and Zigbee stick?

Can you toss me a screenshot for where to grab the logs you're looking for?

Today I updated the firmware on my SONOFF ZBDongle-E from 6.10.3 to 7.3.1 and at first this didn't do much, however, after several pairing attempts I was able to re-pair the shed temp SNZB-02 with Home Assistant. I still don't think the temperature is regularly updating and humidity still is.
home-assistant_zha_2023-09-24T19-42-19.274Z_RepairingWorked_zhaonly.log

Update: it seems that the temp is updating. I put the sensor under my leg and let it be for a few minutes and it is updating now! It seems updating the firmware and repairing a few times did the trick!

I'm re-testing https://github.com/zigpy/zha-device-handlers/issues/2587 as well and it seems that at least one of those is also fixed now.


Failed to generate mapping method

Hi,
I've this compile error.
 Error:(34, 18) java: Failed to generate mapping method for type com.test.Period to com.test.PeriodResource not supported on com.test.PeriodMapper.toResource(com.test.Period) !   --> Add a custom mapper or 'withIgnoreFields' on @Mapper or @Maps to fix this ! If you think this a Bug in Selma please report issue here[https://github.com/xebia-france/selma/issues].
`
I've attached the sample maven project.
selma.zip

Hi,
did you try to add a default constructor to PeriodResource class ? I think this is what selma miss. The error message is not really helping and should be improved.

Hi,
That works thanks.
It will be fine, If you could update the documentation.

Confirming this worked in my case too. Had some classes with custom constructors without an empty constructor and that was causing the same error.

Why not throw an error containing something like "can't map because no default constructor exists on ..."?

Hi,
did you try to add a default constructor to PeriodResource class ? I think this is what selma miss. The error message is not really helping and should be improved.

Hi,
How can we deal the situation if we don't have default constructor available in class like I am trying to Map StackTraceElement Object but getting the same error like mentioned in original thread.
error: Failed to generate mapping method for type java.lang.StackTraceElement to java.lang.StackTraceElement not supported on asObjectA(ObjectADTO) !
public abstract ObjectA asObjectA(ObjectADTO objectADTO);
^
--> Add a custom mapper or 'withIgnoreFields' on @Mapper or @Maps to fix this ! If you think this a Bug in Selma please report issue here [https://github.com/xebia-france/selma/issues].


Front-end: Some URL-encoded characters cause display failure

To replicate, set up a Front-end node, for example: SW-BPAM02 (XMV8280-D Rack 1)
1: http://localhost:8085/nodes/SW-BPAM02%20(XMV8280-D%20Rack%201)/index-sample.xml works correctly:

2: http://localhost:8085/nodes/SW-BPAM02%20%28XMV8280-D%20Rack%201%29/index-sample.xml does NOT (blank page):

In this example, it's the () being encoded as %28%29 respectively, however this may highlight some kind of general escaping issue.
This is an issue because many of the Nodel browsers redirect the user to the encoded version (2).

This was addressed a while back. I can't recall exactly which PR, but the extraneous names in "( )" etc are ignored in the URLs now.
e.g. SW-BPAM02 (XMV8280-D Rack 1) would appear as (http://localhost:8085/nodes/SWBPAM02/index.xml)


Fixed state to match URL changes

Summary of Changes
Made changes to the search page so that changes to the URL would be reflected in changes to the state of the search page. Two things that were fixed in this process: the back and forward buttons on the search page as well as the home button.
Tests
Modified SearchPage test so that SearchPage wrapper expects RouteComponentProps from react router.
Documentation
N/A
CheckList
Make sure you have checked all steps below to ensure a timely review.

[ ] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[ ] PR includes a summary of changes, including screenshots of any UI changes.
[ ] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public python functions and the classes in the PR contain docstrings that explain what it does

[ ] PR passes all tests documented in the developer guide
[ ] I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message"

Codecov Report

Merging #171 into master will increase coverage by 19.85%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #171       +/-   ##
==========================================
+ Coverage   53.24%   73.1%   +19.85%
==========================================
  Files         108      22       -86
  Lines        2710     948     -1762
  Branches      277      79      -198
==========================================
- Hits         1443     693      -750
+ Misses       1238     229     -1009
+ Partials       29      26        -3

Impacted Files
Coverage Δ

...ication/static/js/components/common/Tabs/index.tsx

...ndsen_application/static/js/ducks/search/api/v0.ts

...ation/static/js/ducks/tableMetadata/api/helpers.ts

..._application/static/js/components/NavBar/index.tsx

...ation/static/js/components/SearchPage/constants.ts

...application/static/js/ducks/popularTables/types.ts

...pplication/static/js/ducks/tableMetadata/api/v0.ts

...ic/js/components/SearchPage/SearchBar/constants.ts

...on/static/js/components/AnnouncementPage/index.tsx

...application/static/js/ducks/popularTables/sagas.ts

... and 74 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5e574bf...6f19171. Read the comment docs.

Addressed comments, updated and added tests for componentDidUpdate and getSanitizedURLParams

Moved setstate out of getSanitizedUrlParams and changed function name to getSanitizedUrlParams

Fixed typos


stake: index consensus set based on minimum stake requirement

This is a work-in-progress, here is a high-level overview of what this PR does:

Add a min_validator_stake stake parameters specifying the minimum amount of stake required for a validator to be Inactive.
Add a Defined state for validator that is the initial state for all post-genesis validators
Keep a single source-of-truth for validator definitions in the JMT.
Create a consensus_set nonverifiable index that tracks the identity keys of validators that have reached a minimum stake threshold
Remove usage of the validator_list_* methods that returns (and collect) every validator definition.

This is the current validator state machine diagram:
///                         ┌──────────────────────────────────────┐
///         ┌────────────┐  │  ┌─────────────────────┐             │
///         │            │  ▼  ▼                     │             │
///         ▼          ┌─┴──────┐               ┌────────┐         │
///    ┌─────────┐     │        ├──────────────▶│        │    ┌────────┐
///    │ Defined │────▶│Inactive│    ┌──────────│ Active │───▶│ Jailed ││
///    └─────────┘     │        │    │          │        │    └────────┘│
///         │  ▲       └────────┘    │          └────────┘         │    │
///         │  │            ▲        │               │             │    │
///         │  │            │        │               │             │    │
///         │  │            │        │               │             │    │
///         │  │            │        │               │             │    │
///         │  │            │        ▼               │             │    │
///         │  │            │  ┌──────────┐          ▼             │    │
///         │  │            └──┤          │    ┌──────────┐        │    │
///         │  │               │ Disabled │    │Tombstoned│◀───────┘    │
///         │  └───────────────┤          │    └──────────┘             │
///         │                  └──────────┘                             │
///         │                     ▲     ▲                               │
///         └─────────────────────┘     └───────────────────────────────┘

I haven't looked at the changes in detail yet, but I wanted to make one initial comment:

Remove usage of the validator_list_* methods that returns (and collect) every validator definition.

This is a non-goal of the change, the point of introducing the Defined state is that we don't want to make extensive changes to the staking component state machine we already have, we just want to gate access to it.

Thanks for giving it a look, let me try to workshop an alternative.
Currently, we have:

A state_key::validator that maps identity keys to validator definitions
StateReadExt::validator_list which is a prefix query that collects all the validator definitions
StateReadExt::validator_identity_list which is a prefix_keys query that collect all the validator identity keys

I don't think we can escape adding another index because even if we gate access to state_key::validator for post-Defined validators, we still have to track Defined validator definitions some place else. If that's alright, then we could:

Add a state_key::defined_validator that tracks defined validators.
Gate access to state_key::validator on being post-Defined
Keep the validator_list and validator_list_identity methods, perhaps turning them into streams.

The entry point for transitions in-out of the precursor Defined state:

Executing a Delegate action
Processing undelegations

We discussed this and will go with the original approach because the alternative approach outlined in the previous comment is actually more complicated. To understand why, walk through the case where a validator is Defined and we process a delegation that triggers a state transition to Inactive. We need to pull the validator's definition from storage. If we store the Defined validators separately this actually creates more I/O than promoting the IdentityKey of the validator to an entry in a consensus_set index, because we have to remove the definition from that store and add it to the list of validators.

There are some "architectural" TODOs that I plan to tackle as part of #3615.


Connexion failed

Hello,
I tried to log on replacing "python2 pokecli.py -a ptc -u tejado -p 1234 --location "New York, Washington Square" by my IDs but I have an error, my login and password yet they are ok, I don't understand :(
thanks in advance

Are you replacing the tejado:1234 section?
I cant seem to replicate the issue....

Yes I have replaced "tejado" by my login and "1234" by my password .. :/

I think i have the same problem:
2016-07-21 14:13:09,019 [   pokecli] [ INFO] Your given location: LOCATION 2016-07-21 14:13:09,023 [   pokecli] [ INFO] lat/long/alt: [..] 2016-07-21 14:13:09,026 [  auth_ptc] [ INFO] Login for: USERNAME 2016-07-21 14:13:09,720 [  auth_ptc] [ERROR] Could not retrieve token: Your username or password is incorrect. You have 3 attempts left before you will be locked out of your account for 15 minutes. 2016-07-21 14:13:09,765 [    pgoapi] [ INFO] Login process failed

Are you logging in the a Google account or Pokemon trainer club?
If Google you need to change 'ptc' to google

It is a Pokemon Trainer Club account and it work for me on any other devices.
That was my input in the CMD and i running Windows64:
E:\Pokemon GO\Bot2\PokemonGo-Bot-master>pokecli.py -a ptc -u USER -p PASS --location "City, Place"

add python to the start.

python pokecli.py -a ptc -u USER -p PASS --location "City, Place"

On Thu, Jul 21, 2016 at 10:20 PM, dominikue<EMAIL_ADDRESS>wrote:

It is a Pokemon Trainer Club account and it work for me on any other
devices.
That was my input in the CMD and i running Windows64:
E:\Pokemon GO\Bot2\PokemonGo-Bot-master>pokecli.py -a ptc -u USER -p PASS
--location "City, Place"
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/PokemonGoF/PokemonGo-Bot/issues/25#issuecomment-234237135,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIy-CpQjxrb-MHkBt1Y-gviBhga-n_02ks5qX2QHgaJpZM4JRubD
.

Still the same error and to run the cmd as admin doesn't help too.

Please copy / screenshot the error that happens once you attempt it.

Thank you for your fast helping btw :)

You will need to check agian in 15 - or start a new account and test with that!

I have exactly the same problem

@eggins It wasnt disabled as I tried it - it was the fourth trial.

I created an google account and it doesnt work for me too.
2016-07-21 14:59:43,473 [auth_google] [ INFO] Google login for<EMAIL_ADDRESS>2016-07-21 14:59:43,816 [auth_google] [ INFO] Google Login failed. 2016-07-21 14:59:43,819 [    pgoapi] [ INFO] Login process failed

You as your login is correct when you log on the website or app ?

log in the google from your browser then run the bot ,it may be suspicious to google or something -.-'

Still login process failed "Login process failed" :(

nobody has an idea ? :(

thanks @millejosh , I replaced "ptc" by google, it works !

@ElGecko76 awesome man! glad to hear it

Found the bug for me:
Old password was "u8lJx^f2fs6@T3n" and i replaced it with a simpler one. Think your programm cant handle all chars :)


Pipelines: cross-account deployment needs shared KMS

Describe the bug
I'm leveraging cross-account deployment using pipelines as follows, and have bootstrapped with the correct permissions:
blueprints.CodePipelineStack.builder()
      .name("eks-blueprints-pipeline-test")
      .owner("youngjeong46")
      .repository({
          repoUrl: 'eks-blueprints-pipeline-test',
          credentialsSecretName: 'github-token',
          targetRevision: 'main'
      })
      .wave({
        id: 'dev',
        stages: [
          { id: "dev-1", stackBuilder: blueprint.clone('us-east-1')},
          { id: "dev-2", stackBuilder: blueprint.clone('us-west-2')},
        ]
      })
      .wave({
        id: "prod",
        stages: [
          { id: "west-1", stackBuilder: blueprint.clone('us-east-1', prodAccount)},
        ]
      })
      .build(scope, id+'-stack', props);
  }

When I try deploying, the cdk produces the error needing either a bucket with a key or a shared KMS cross-account key (needed when creating the cross-account Artifact bucket).
Expected Behavior
Deploy as intended (dev into the current account, and prod to a designated prod account)
Current Behavior
The following error occurs:
/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/aws-codepipeline/lib/pipeline.ts:726
        throw new Error(
              ^
Error: Artifact Bucket must have a KMS Key to add cross-account action 'Prepare' (pipeline account: '661554271967', action account: '181460066119'). Create Pipeline with 'crossAccountKeys: true' (or pass an existing Bucket with a key)
    at Pipeline.getRoleFromActionPropsOrGenerateIfCrossAccount (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/aws-codepipeline/lib/pipeline.ts:726:15)
    at Pipeline.getRoleForAction (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/aws-codepipeline/lib/pipeline.ts:698:27)
    at Pipeline._attachActionToPipeline (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/aws-codepipeline/lib/pipeline.ts:529:29)
    at Stage.attachActionToPipeline (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/aws-codepipeline/lib/private/stage.ts:155:27)
    at Stage.addAction (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/aws-codepipeline/lib/private/stage.ts:93:29)
    at Object.produceAction (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/pipelines/lib/codepipeline/codepipeline.ts:572:15)
    at CodePipeline.pipelineStagesAndActionsFromGraph (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/pipelines/lib/codepipeline/codepipeline.ts:428:36)
    at CodePipeline.doBuildPipeline (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/pipelines/lib/codepipeline/codepipeline.ts:377:10)
    at CodePipeline.buildPipeline (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/pipelines/lib/main/pipeline-base.ts:120:10)
    at CodePipeline.buildJustInTime (/Users/yojeo/src/kubernetes/eks-blueprints-pipeline-test/node_modules/aws-cdk-lib/pipelines/lib/main/pipeline-base.ts:134:12)

Subprocess exited with error 1

Reproduction Steps
See Above
Possible Solution
As described here, the key should be enabled across account with the following prop value when instantiating a new CodePipeline: crossAccountKeys: true.
Additional Information/Context
No response
CDK CLI Version
2.20.0
EKS Blueprints Version
1.0.0
Node.js Version
v16.13.2
Environment details (OS name and version, etc.)
MacOS 10.15.7
Other information
No response

@youngjeong46 Hi, so I think this is an easy fix. If you could call it like:
blueprints.CodePipelineStack.builder()
      .name("eks-blueprints-pipeline-test")
      .owner("youngjeong46")
      .repository({
          repoUrl: 'eks-blueprints-pipeline-test',
          credentialsSecretName: 'github-token',
          targetRevision: 'main'
      })
      .enableCrossAccountKeys()
...

Would that work for you?


acai: Alert-Classifying AI for the Zwicky Transient Facility

This PR set up the repo structure and implements an end-to-end training and hyper-parameter tuning pipeline for ACAI using W&B experiment tracking and sweeps.
Concretely:

Set up the public repo: linting, tests, CI, etc.
acai/nn.py implements the (tunable) "hybrid" MLP+CNN model architectures
acai/utils.py implements a number of utility function and classes, including such for handling the (alert) data sets
acai.py defines the CLI commands to execute actions such as training a model, running hyper-parameter tuning or linting sources.

Screenshots from W&B:
Sweep:

Training the best-performing architecture:

@stefanv the beast is out of the cage! Should be ready for review.
I apologize for the size of this PR - it essentially sets up the whole system, but most part are kind of standard/trivial, so shouldn't be too bad. The main files to look at are acai.py and acai/nn.py.
thank you!

@stefanv a friendly ping :)


Unified into an expire and drop interface.

Usage
Before:
> str.drop k1
> list.drop k1
> expire.str k1 1000
> expire.list k1 1000

now:
> drop k1
> expire k1 1000

The test samples here seem to fail now～


KARAHA

Describe the feature request
Description of the feature request here.Im rich
Spam policy

[X] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

Reported for spam


Allow using config ⚙ even if the wallet is not connected

Solves https://github.com/soroswap/frontend/issues/335
Allow users to click ⚙ for slippage even if not logged in.

cool


Colors

Added Github palette for the bars. Included a folder "colors" with the json from: https://github.com/ozh/github-colors/blob/master/colors.json, a crystal script to make a css from it, and the css itself. A picture of the result:

Also, there's an issue with C++ having the character + in the css. The color, as you can see, defaults to the old blue instead of pink.

This is a great idea! I just changed it a little bit to handle special characters (C#, C++, etc.) and made the index.html use a separate colors.css instead of modifying styles.css.


Do not emit all excludes at info logging

This matches the behavior of includes.  Previously rat spammed the
maven logs but now has the succinct output:
[INFO] --- apache-rat-plugin:0.13-SNAPSHOT:check (default) @ jclouds-resources ---
[INFO] Enabled default license matchers.
[INFO] Will parse SCM ignores for exclusions...
[INFO] Finished adding exclusions from SCM ignore files.
[INFO] 61 implicit excludes (use -debug for more details).
[INFO] 56 explicit excludes (use -debug for more details).
[INFO] 2 resources included (use -debug for more details)
[INFO] Rat check: Summary over all files. Unapproved: 0, unknown: 0, generated: 0, approved: 2 licenses.

@andrewgaul thanks for raising the issue - could you be so kind to file a Jira ticket and link as RAT is not properly connected via Github to the ASF infrastructure (the project still runs on SVN). Thanks!

Done:
https://issues.apache.org/jira/browse/RAT-241

Thanks for your patience - since there's no Github integration, please close the merge request.
Your patch will be applied via https://issues.apache.org/jira/browse/RAT-241.


rtx exec --install

there should be a way to both install and execute a tool so you can do something like this even if you don't already have node installed:
rtx exec --install node@latest -- node -v

open for ideas on the naming here

on second thought, I'm actually thinking this could just be the standard behavior

@jdx Do you think it would make sense to have mise exec node -- node -v (without the @20) install node@20 if node = 20 is specified in the .mise.toml?
I'm trying to implement scripts that automatically install the tools with mise if they're not already installed, without having to specify versions in every one of these scripts (and thus update them everywhere when needed).
Both mise install node && node ... and mise exec node -- node ... do not work currently; only workaround I've found is mise install node && mise x -- node ..., but that seems a bit hackish to me. :)
Kinda related to #1572 and my comment there.


Docs improvements

Reorganized README, adding subsections etc.
Moved transfer noticed to CONTRIBUTING
Updated gradle calls in CONTRIBUTING

I recommend viewing in your browser, in https://github.com/obs-websocket-community-projects/obs-websocket-java/tree/docs-improvements

Thanks for your feedback on this! Hopefully the docs are helpful to devs using this library :D


Add lspconfig names to Mason

Implements usage of register_aliases added in this PR: https://github.com/williamboman/mason.nvim/pull/1146

This initial commit is just the POC, let me know if this looks all good and I'll add all of the other LSPs to this table instead of how I did it in the other MR initially!

Sounds good I'll add that test case. Out of curiosity, how do I actually run those tests? haha

$ FILE=<path_to_file> make test

or all tests
$ make test

If you're on Windows (without WSL) it's a bit harder (in that case just push things directly)

Btw the test will fail on CI until mason.nvim is merged to main. This PR LGTM now!

@williambotman /fixup

@williambotman /fixup

The tests are failing because we override the mappings in the new test (per my recommendation). Luassert doesn't provide a nice way to mock tables, I'll look into properly reverting the mock and push a fix!

Ohh I see haha sounds good. Let me know if you need anything!

@williambotman /apply
diff --git a/tests/helpers/lua/test_helpers.lua b/tests/helpers/lua/test_helpers.lua
index 5e38639..15ccd5e 100644
--- a/tests/helpers/lua/test_helpers.lua
+++ b/tests/helpers/lua/test_helpers.lua
@@ -16,6 +16,25 @@ function async_test(suspend_fn)
     end
 end

+local TableMock = {}
+TableMock.__index = TableMock
+
+function TableMock.new(tbl, key)
+    return setmetatable({
+        tbl = tbl,
+        key = key,
+    }, TableMock)
+end
+
+function TableMock:apply(value)
+    self.original_value = self.tbl[self.key]
+    self.tbl[self.key] = value
+end
+
+function TableMock:revert()
+    self.tbl[self.key] = self.original_value
+end
+
 -- selene: allow(incorrect_standard_library_use)
 mockx = {
     just_runs = function() end,
@@ -29,6 +48,12 @@ mockx = {
             error(exception, 2)
         end
     end,
+    table = function(tbl, key, new_value)
+        local mock = TableMock.new(tbl, key)
+        mock:apply(new_value)
+        assert:add_spy(mock)
+        return mock
+    end,
 }

 ---@param package_name string
diff --git a/tests/mason-lspconfig/setup_spec.lua b/tests/mason-lspconfig/setup_spec.lua
index 1cbd9e6..6c8f293 100644
--- a/tests/mason-lspconfig/setup_spec.lua
+++ b/tests/mason-lspconfig/setup_spec.lua
@@ -229,10 +229,10 @@ describe("mason-lspconfig setup", function()
     it("should set up package aliases", function()
         stub(registry, "register_package_aliases")

-        require("mason-lspconfig.mappings.server").package_to_lspconfig = {
+        local mapping_mock = mockx.table(require "mason-lspconfig.mappings.server", "package_to_lspconfig", {
             ["rust-analyzer"] = "rust_analyzer",
             ["typescript-language-server"] = "tsserver",
-        }
+        })

         mason_lspconfig.setup {}

@@ -241,6 +241,7 @@ describe("mason-lspconfig setup", function()
             ["rust-analyzer"] = { "rust_analyzer" },
             ["typescript-language-server"] = { "tsserver" },
         }
+        mapping_mock:revert()
     end)
 end)

@williambotman /apply
diff --git a/vim.yml b/vim.yml
index 72b86e7..2fb8959 100644
--- a/vim.yml
+++ b/vim.yml
@@ -31,6 +31,11 @@ globals:
     mockx.returns:
         args:
             - type: any
+    mockx.table:
+        args:
+            - type: table
+            - type: string
+            - type: any

     describe:
         args:

Haha all good nice! Thanks for the review 😄


[Compute] Update from CoreOS to Flatcar Linux

Issue: #18484
Description

As CoreOS is deprecated and there is no Image in the marketplace any more, update to use Flatcar linux instead of it.
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Compute

/azp run


Current main branch is broken

🐛 Summary
The requirements.txt file in /backend/workers/ has scipy and scikit-learn in it which causes a failure in building.  These are accounted for moving forward with PR #1854 and PR #1861 but things are currently not building.

If someone happens upon this before the fixes are put in place remove scipy and scikit-learn from the requirements.txt file, save, and try building.


Respond to PR Feedback

@FloEdelmann left some great feedback on https://github.com/ValentinH/jest-fail-on-console/pull/15#pullrequestreview-930423021 after the PR was merged. This addresses that feedback.

I made an example project if you'd like to test this: https://github.com/doug-wade/jest-fail-on-console-client

Thanks for this fix. I actually just merged a PR that added the missing methods to the documentation so could you please rebase your PR and adjust accordingly ? 🙂

Fix published in https://github.com/ValentinH/jest-fail-on-console/releases/tag/v2.4.1


Use Hydra vocab for paging info

See https://www.hydra-cg.com/spec/latest/core/ & http://www.hydra-cg.com/.
Must decide on Linked Data Platform norms v. current setup v. Hydra for paging etc.

Another spec to consider: the collection design of TREE is designed to be compatible with both Hydra and LDP, and supports adding more semantics to what your pagination links mean (e.g., describe an ordering, or add more than just next, first, last, previous): https://w3id.org/tree/specification

Thanks @pietercolpaert! The paging semantics here have, so far been pretty bad so I think this is a good suggestion to move to the robust hydra. The HTTP paving Link headers are standard, so we can keep those.
I’ll try to fold in hydra soon: we are working on a major update to this API now which adds support for Python’s new FastAPI, not just Flask, so we can probably do all this in the same move.


Coolers don't work properly

When creating a simple layer with valid glowstone coolers, cells and moderators we have that the cooling is zero when it should have been 2080HT/t

Just tried exact same setup as yours.

What fuel do you have?
Even TBU gives more heat gen

Closing as author is not responding and i was not able to reproduce the issue


Confused about how to pass dispatch as a prop when using jest

I am trying to test a connected component that uses dispatch(action). dispatch is a required prop and I am trying to pass it in as a prop, but the state.js version of dispatch (without connect) requires state, action as parameters. I've spent a few hours on this to no avail and have posted a question on stackoverflow asking for help. My guess is that I just need to pass dispatch in with the state already specified, something like dispatch={(state, action) => dispatch(action)} but that doesn't look right.
http://stackoverflow.com/questions/41375502/how-do-i-pass-a-redux-dispatch-function-into-a-smart-component-without-using-con
Any helpful suggestions very welcome and much appreciated:-)

I still can't figure this out. My smart component renders a page. I just want to test it using jest and snapshot. My problem is that my smart component is normally connected to a store using connect(). How can I dispatch the normal way from within my smart component when I am testing it in isolation. connect() is not being used. I seem to have to pass a dispatch() function down to my smart component, but it is clearly not the right function. Maybe I am supposed to approaching this in a whole different way?

import {dispatch} from '../../../../test/state';
export const dispatch = (state, action) => reducer(state, action);

So when I dispatch something without using connect I have to give it state and action and the reducer runs on that action. But in my smart component, dispatch is mostly used with a single parameter, an action, so where does it get the state information on when under test?

I think I figured this out.
In pepperoni-app-kit there is a test function provided for use by test code only that passes an action through all reducers. It happens to be called "dispatch" and takes two arguments (state, action) which means it is really a reducer.
In my code (also derived from pepperoni-app-kit) I am dispatching actions using a dispatch function that only requires the action to be passed because it already knows what store it is dealing with and the store knows about state.
Instead of trying to pass the dispatch(state, action) function down to my components (really a reducer), I imported a redux store itself and now pass the store.dispatch function down to the unit under test.
I have to pass it in, because I don't want to have to change my source code under test.


There're a lot of unmeaningful tags in the repo

As title mentioned, there're a lot of  releases and tags on https://github.com/facebookincubator/profilo/releases

Currently, we don't have stable releases, so Travis is set up to create a tag and publish a release from every commit in the repo. We will address this in the future as the API surface stabilizes and we gauge the versioning needs for artifact purposes.


incorrectly "packaged" ...?

not 100% sure yet what's causing this but Vite gives this error

Vite might force packages to use exports in the package.json, but will research some more.

one related thread I found:
https://github.com/vitejs/vite/discussions/6013

Hello @mesqueeb I have created a test repo here https://github.com/kouts/vue-dataset-next-import
it uses the latest version of Vite and an example of vue-dataset.
It seems that vue-dataset seems to work ok with Vite so I couldn't reproduce the issue.
It could be something specific to your setup, can you please let me know so that I can close this?

@kouts Hmmm, that's odd, I wonder why it happened to me before.
Perhaps it's only in a monorepo setting. Or only in Vitepress. I can do some more digging.
In the meanwhile, please check the suggested way of defining the package.json is at the bottom of this page of the Vite docs:
https://vitejs.dev/guide/build.html#library-mode
other famous vue libraries like Vueuse now all also use this format for their exports:
https://github.com/vueuse/vueuse/blob/main/packages/core/package.json

Thanks @mesqueeb I've checked the linked docs, it seems that there's not an explanation as to why this is recommended,
here are some more links for the exports property of package.json.
https://nodejs.org/api/packages.html#subpath-exports
https://webpack.js.org/guides/package-exports/
Meanwhile I have created a test repo for vue-dataset with Vite as well just to make sure there's no problem with the Vue 2 version.
You can find it here: https://github.com/kouts/vue-dataset-import


details for bom-phase1.md

component and vendor selection proposal

@mgheorghe can you please explain what is the exact usage of those components from the picture:

3 (KVM)
6 (Virt)
7 (Storage)
8 (Tgen)
9 (Test SW)
@glimchb
The KVM will be used to provide remote Keyboard, Video, and Mouse to the server hosts (virt server, DPU hosts, etc)
The Virt is a host with a VMware ESXi Hypervisor on it that will be used to host necessary lab services like DHCP, DNS, Lab firewall, etc. --since we are not using a Lab services provider we will have to setup our own lab services, but the $ tradeoff for doing so was deemed worth it.
The Storage is another host used for general lab storage necessary to run the lab services and may have other uses as well.
The Tgen is a traffic generator host.
and the Test SW is a switch to which the test/DPUs and DPU hosts will be connected. It will be a higher throughput switch to handle the DPU network speeds, whereas the TS at top is where mgmt ports, KVM, virt host, etc will be connected

updated the lab diagram to match the items in the table
KVM is to be able to grab "physical" control of video signal and mouse and keyboard in a unified way for all devices in lab.
similar functionality can be provided via iDrac, iLo .... but this works for any device that accepts a monitor and keyboard and mouse irrespective if they have a bmc like module or not.

@glimchb there was a concern regarding the number of cores on the server hosting the DPU, number of cores is still 2x16 cores

I approve, but this cannot be merged until one of the maintainers approves


read_dig_captrack should be renamed: CapTrak (k, not ck)

The function mne.channels.read_dig_captrack is for reading Brain Products electrode digitization data in the bvct format (=BrainVision CapTrak).
Apparently we had a typo at some point and now our function reads "captrack" instead of "captrak".
I don't know why Brain Products decided to name their device CapTrak instead of CapTrack ... but I think we should rename our function to fit the actual device/system that it supports.

+1 with deprecation cycle


Gracefully handle confstr failures

There appear to be some instances where confstr can fail to create a temporary directory that are not the direct result of a programmer error. To accommodate this, we should handle this gracefully instead of aborting so that we fall through to either TMPDIR or /tmp.

@swift-ci please test


AI Tool Error: "state label" is expected to be Label, but "undefined" has been go

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

all container and service is ok.

cvat version

docker container is ok

nuclio and functions is ok

auto annotation is ok.

but after finish auto annotation, no label data, no draw rectangle in the video! so I'm open the task use the left slide bar "AI Tools" , an error occured!

Expected Behaviour

Current Behaviour

Possible Solution

Steps to Reproduce (for bugs)

Context

Your Environment

Git hash commit (git log -1):

commit 37d82f90052ab26c584dfb2c87a4623cb22e0ff4 (HEAD, tag: v1.2.0)
Merge: 8eb7c136 da4efddd
Author: Nikita Manovich<EMAIL_ADDRESS>Date:   Fri Jan 8 19:06:27 2021 +0300

    Merge branch 'release-1.2.0'

Docker version docker version (e.g. Docker 17.0.05):

Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:18:17 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:17:52 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Are you using Docker Swarm or Kubernetes? --> No
Operating System and version (e.g. Linux, Windows, MacOS): --> MacOS 11.1
Code example or link to GitHub repo or gist to reproduce problem:
Other diagnostic information / logs:
no error, but has some warning:

2021-03-05 15:10:04,297 DEBG 'runserver' stderr output:
WARNING:root:Failed to import module 'coco_format.converter.py': numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

2021-03-05 15:10:04,538 DEBG 'runserver' stderr output:
WARNING:root:Failed to import module 'coco_format.extractor.py': numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

2021-03-05 15:10:04,543 DEBG 'runserver' stderr output:
WARNING:root:Failed to import module 'datumaro_format.converter.py': numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

2021-03-05 15:10:04,546 DEBG 'runserver' stderr output:
WARNING:root:Failed to import module 'transforms.py': numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

Next steps
You may join our Gitter channel for community support.

Hi @toddlerya
Please, be acquainted with my previous reply and corresponding thread. Looks like issue might be the same and already fixed (need to update CVAT only). Let us know additionally if it does not help.

yes, This way is effective :  https://github.com/openvinotoolkit/cvat/issues/2747#issuecomment-786389222

@toddlerya
If you don't use projects, yes. If you do, the only way is to update CVAT. Can we close the issue?

@toddlerya
If you don't use projects, yes. If you do, the only way is to update CVAT. Can we close the issue?

OK，Please close the issue.


Single Click on group of multiple selected elements deselects all

Hi All,
This might be a configuration issue on my part, but I'm wondering if the library supports this behavior.
Behavior 1
With SelectionJS:

Drag Select multiple items
Click on one of the items
Result: all items are deselected

Behavior 2
With any OS file system:

Drag Select multiple items
Click on one of the items
Result: the item you clicked remains selected

I've written a workaround to emulate Behavior 2 using the 'start' and 'stop' handlers but am I missing something in configuration? Thanks.

Hey :) This is actually done in https://github.com/Simonwep/selection/commit/51c8c0f7944f3ac0b3ec6a150ff63b3fb9e0f15e and will be part of v2.1.0 which I'm going to release this weekend. I already noticed the lack of consistency between OS selection and selectionjs (see #106).

Thanks for the quick response, I will wait for that release!

Hello, just wanted to check in on that 2.1 release?  Thank you!


$this in static methods

Fountain (library generation tool used at ProcessOut) references to $this in static generated methods.
The expected behaviour would be to reference to a new instance of the current object created in the static method.

Solved in version <IP_ADDRESS>


Dropdown aria-activedescendant issue

Latest version

[X] I have tested the latest version

Description
The salt dropdown has aria-activedescendant issue report by the axe

ARIA attributes must conform to valid values
To solve this problem, you need to fix the following:
Invalid ARIA attribute value: aria-activedescendant=":r4:"

Steps to reproduce
Go to dropdown first default example, open the dropdown and select an item. Observe aria-activedescendant referring to invalid item (may need to repeat selection a few times to see this)
https://www.saltdesignsystem.com/salt/components/dropdown/examples
Expected behavior
No axe error
Package name(s)
Core (@salt-ds/core)
Package version(s)
1.37.1
Browser

[X] Chrome
[ ] Safari
[ ] Firefox
[ ] Microsoft Edge

Operating system

[X] macOS
[ ] Windows
[ ] Linux
[ ] iOS
[ ] Android

Are you a JPMorgan Chase & Co. employee?

[X] I am an employee of JPMorgan Chase & Co.

SO Question 94028

I cannot reproduce this

After testing, this seems to happen if you:

Visit https://www.saltdesignsystem.com/salt/components/dropdown/examples#default-single-select
Select the second item
Re-open and select the third item


[1623] Update uk and international fee data type

Context
UK and International Fees
Changes proposed in this pull request
Specifical set UK and International fees to integer
Guidance to review
Post should not be a string

I don't think we actually need this change 🤔

It seems like this change will improve our model of the underlying data?

@dankmitchell is it because we have frontend validations on the input? We should disable those I think.

 Add missing validations to enrichments

I think this has introduced this bug:
https://trello.com/c/weZDU1qy/1671-saving-an-empty-fee-gets-converted-to-0


Show context for diff view of merge conflict and introduce compareAll.

To improve the merge conflict resolve experience, a new setting merge-conflict.diffViewContext was added to show the context around the conflict
Before: there is no context around the diff

After: with "merge-conflict.diffViewContext": 3

A new command Compare All is introduced to display the full compare between current workspace and incoming changes, with which you can compare the old content, the incoming one, and the latest local content on disk

After discussion during today's sit-down, the code change is being stripped to

Compare command now always show the full diff view and scroll to the active conflict position
merge-conflict.openDiffInNewEditor controls if the diff view should be opened in a new editor group


Metallic Roughness texture changes after export

This is how my metallic roughness texture looks like:

after exporting the model to gltf I get this :

seems it adds color to R channel after export.
I use this example to create my material :

I am on blender 2.8 with gltf add-on version 0.9.11

@Ali-RS Can you please share the .blend file?

Yes
test.blend.zip

@julienduroure I found that it does work fine in v 0.9.1 but broken from v0.9.2.
So it should be one of these commits that breaks it:
2ea96343df3e4d13b7a16ef4611fd16f6acdc2ff
or
f12b8205284d13ebcd294abc525ff54d8d4c1663

@emackey : Seems to be related to your commit. Do you have time to have a look on it?

If you're not using an occlusion channel, there is no need for this exporter to preserve the red channel.  The exporter will assemble occlusion, roughness, metallic from separate grayscale images if need be, and the final result is expected to be different from the source images.
That said, there is a separate desire to have the exporter preserve original image encoding whenever possible, and that would affect this outcome as well.  There's a long history of that feature getting implemented and then getting broken again, first in the glTF-Blender-Exporter project, and again later in this project, most recently in #404.  We're tracking that problem in #428.

@emackey: Now that #506 is merged, maybe this ticket can be closed?

@julienduroure seems not resolved yet, please see the Stuff still needs doing: in this post:
https://github.com/KhronosGroup/glTF-Blender-IO/pull/506#issue-283435093

I re-tested this. It's fixed (see https://github.com/KhronosGroup/glTF-Blender-IO/pull/798#issuecomment-561284590).


unexpected behavior of @default with non-string types

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

How did you install the Amplify CLI?
pnpm
If applicable, what version of Node.js are you using?
v16.13.2
Amplify CLI Version
7.6.25
What operating system are you using?
mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
no
Amplify Categories
api
Amplify Commands
Not applicable
Describe the bug
@default does not work for non-string types unless supplied default value is passed as a string. In the example below we are attempting to set default values based on the field type.
type Todo @model {
  someString: String @default(value: "my-default-string")
  someInt: Int @default(value: 42)
  someFloat: Float @default(value: 3.14)
  someBoolean: Boolean @default(value: true)
}

However this results in an error upon running amplify api gql-compile:
🛑 Schema validation failed.

Expected type String!, found 42.

GraphQL request:12:32
11 |   someString: String @default(value: "my-default-string")
12 |   someInt: Int @default(value: 42)
   |                                ^
13 |   someFloat: Float @default(value: 3.14)

Expected type String!, found 3.14.

GraphQL request:13:36
12 |   someInt: Int @default(value: 42)
13 |   someFloat: Float @default(value: 3.14)
   |                                    ^
14 |   someBoolean: Boolean @default(value: true)

Expected type String!, found true.

GraphQL request:14:40
13 |   someFloat: Float @default(value: 3.14)
14 |   someBoolean: Boolean @default(value: true)
   |                                        ^
15 | }

After modifying the schema to pass default values as strings, we are then able to successfully compile the GraphQL schema and observe VTL templates are generated with the correct default values:
type Todo @model {
  someString: String @default(value: "my-default-string")
  someInt: Int @default(value: "42")
  someFloat: Float @default(value: "3.14")
  someBoolean: Boolean @default(value: "true")
}

and the resulting Mutation.createTodo.init.2.req.vtl for example
## [Start] Setting "someString" to default value of "my-default-string". **
$util.qr($context.args.input.put("someString", $util.defaultIfNull($ctx.args.input.someString, "my-default-string")))
## [End] Setting "someString" to default value of "my-default-string". **
## [Start] Setting "someInt" to default value of "42". **
$util.qr($context.args.input.put("someInt", $util.defaultIfNull($ctx.args.input.someInt, 42)))
## [End] Setting "someInt" to default value of "42". **
## [Start] Setting "someFloat" to default value of "3.14". **
$util.qr($context.args.input.put("someFloat", $util.defaultIfNull($ctx.args.input.someFloat, 3.14)))
## [End] Setting "someFloat" to default value of "3.14". **
## [Start] Setting "someBoolean" to default value of "true". **
$util.qr($context.args.input.put("someBoolean", $util.defaultIfNull($ctx.args.input.someBoolean, true)))
## [End] Setting "someBoolean" to default value of "true". **
{}

Expected behavior
Default value adheres to field type
type Todo @model {
  someString: String @default(value: "my-default-string")
  someInt: Int @default(value: 42)
  someFloat: Float @default(value: 3.14)
  someBoolean: Boolean @default(value: true)
}

Reproduction steps

amplify init -y
amplify add api > GraphQL > Blank schema
paste provided schema
amplify api gql-compile
observe error

GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
https://docs.amplify.aws/cli/graphql/data-modeling/#assign-default-values-for-fields

NOTE: this is working as expected. add more examples to the docs for non-string types


Marble testing doc additions

Description:
Additions and adjustments to the marble testing documentation. These additions emphasize the async helper functions, and also make the subscriptionMarbles parameter more explicit.
Related issue (if exists):
Closes #4521.

Will the change log bot ignore those two fixup commits? Or should I rebase them into their respective initial commits?

All of the commits in here are so closely related that I would expect the person merging to squash them, so I wouldn't worry about it.

@JWO719 done. Thanks for the pointer. I didn't realize there was a spot for those docs in the guide and that's a much better (and nicer looking) place.


NodeSelector and NodeAffinity and NodeAntiAffinity Enhancement

Please refer here for more detailed explanation.
And desgin doc here.

@deepak-vij Merging this PR, to create the release and container's to test.


Not Skipping on Windows Devices but will skip on Android devices

Using Plex HTPC on 2 different Windows PCs that were able to have Plex stuff on them skip but recent stopped working. Android devices are still working find and I can cast from Home Assistant to Android Devices without issue.
Running it in a docker for windows but even running with python directly in windows I get the same issue.
requests.exceptions.ConnectionError: HTTPConnectionPool(host='device.ip', port=32500): Max retries exceeded with url: /player/playback/seekTo?commandID=1&offset=81807&type=video (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd7d5692d70>: Failed to establish a new connection: [Errno 111] Connection refused'))
Is now the error I get after getting a 404 error for so long. I have disabled my firewalls completely, tried port specific rules for the firewall. I just cant get this to work on Windows anymore. Even tried with Blue Stacks and had issues
Please let me know what you know to help with this issue.

Found the issue. Something on my end with how the network was configured