Merci beaucoup pour cette info! Le support technique ne donnait donc pas une information complète.
Hi Claude, let’s say I want to have control and visibility over “airFloorMode”
what would you recommend as the best approach?
I’m fine with the syntax and templates but just wondering if I need to create 12 input_select, 12 scripts and 12 sensors ? is there something simpler ?
keeping in mind that I don’t want to end up with “on” and “off” as a substitute for “floor” and “ambiant”
I use “zha.set_zigbee_cluster_attribute” to set the values but not totally sure how to have visibility on the result/track changes so I can add it to a dashboard.
Let me know what you think,
Thank you!
Edit:
what I have so far:
To control:
alias: thermostats sinope set floor control mode
fields:
entity_id:
required: true
description: Entity ID of your thermostat
selector:
entity:
filter:
domain: climate
select:
required: true
description: Select desired option
default: ambiant
selector:
select:
options:
- floor
- ambiant
mode: single
icon: mdi:account
sequence:
- service: zha.set_zigbee_cluster_attribute
data:
ieee: >-
{{ device_attr(entity_id, 'identifiers') | selectattr(0,'eq','zha') |
map(attribute=1) | first }}
endpoint_id: 1
cluster_id: 65281
cluster_type: in
attribute: 261
value: "{{'1' if action == 'floor' else ('2' if action == 'ambiant' else '1')}}"
to report:
(but need to trigger on change instead of time based + report state as “floor” or “ambiant” vs “FloorMode.Floor” and “FloorMode.Air_by_floor”)
alias: thermostat 2e bureau floor control mode
description: ""
trigger:
- platform: time_pattern
minutes: /1
condition: []
action:
- service: zha_toolkit.execute
data:
command: attr_read
ieee: xx:xx:xx:xx:xx
cluster: 65281
attribute: 261
state_id: sensor.thermostat_2e_bureau_floor_control_mode
allow_create: true
tries: 100
mode: single
Merci Claude,
It helps a lot knowing the exact text to put as the Attribue.
So I have my Graph for both the Water Temp and the Instant Wattage.
I have the following in configuration.yaml
scan_interval: 300
stat_interval: 300
But my graph gets updated every 1 hour with 2-3 point took every 5 minutes, then nothing for 1 hour.
Would you have an explanantion ?
Merci
Ben
Mais c’est logique pour protéger les appareils de ne pas tout repartir en même temps après une panne.
What is the graph card you are using
Not sure I understand what you try to achieve.
You want to display ambiant temperature and floor temperature on you floor thermostats ?
You can just pick the ambiant temperature attribute value in a sensor and send it to the second display the same way you send outside temperature.
You will have floor temperature as the lower temperature display and the outside temperature in the second display.
Chaude,
the image is from a click on the created sensor added directly in the dashboard.
I have the same behaviour when I use Mini Graph card.
Thanks
Ben
Sorry maybe this was not clear; I need to control and display the “airFloorMode” feature
which can be set to either “Air” or “Floor”
I want to have a switch/selector to toggle between “Air” / “Floor” (not “on” / “off”)
the switch/selector should also toggle on ZHA value change (ex: if “Air” / “Floor” is changed directly on the thermostat, the HA switch/selector should update its state as well)
similar to Z2M configuration buttons
you will see in my previous post I already found some clues on how to achieve this but would like your advice on the best/simplest method as I have to replicate it for 12 thermostats.
Just don’t want to overengineer this if there is a simple way to get the expected result.
Thank you!
Je n’ai pas de passerelle Neviweb.
J’ai couper plusieurs fois l’alimentation du chauffe eau, puis remis sous tension après environ 1 minute. La lumière “Load” du Calypso se réallume dès la remise sous tension.
Comment provoquer puis observer le mode “reprise après panne” du Calypso?
Est-ce que l’on peu observer ce mode à partir de ZHA ?
Merci.
Oui le retour après panne fonctionne dans ZHA et dans Neviweb. j’ai testé les deux avec mon calypso. Dès qu’on coupe le disjoncteur et qu’on le remet , le mode embarque avec un délais de 2 à 10 minutes aléatoire. Mais je ne sais pas si il y a un attribut qu’on peut changer pour activer cette fonction. Pouvez-vous faire une scan-device avec zha toolkit pour votre calypso pour voir si un attribut a une valeur différente du miens.
service: zha_toolkit.scan_device
data:
ieee: 38:5c:fb:ff:fe:d9:ea:f4 <--iee de votre calypso
endpoint: 1
event_success: my_read_success_trigger_event
event_fail: my_read_fail_trigger_event
event_done: my_read_done_trigger_event
Un gros gros merci
Voici le résultat du scan de mon Calypso
scan:
ieee: xxxxxxxxxxxxxxxxxx
nwk: "xxxxxxx"
model: RM3500ZB
manufacturer: Sinope Technologies
manufacturer_id: "0x4508"
endpoints:
- id: 1
device_type: "0x0002"
profile: "0x0104"
in_clusters:
"0x0000":
cluster_id: "0x0000"
title: Basic
name: basic
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: zcl_version
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 8
"0x0001":
attribute_id: "0x0001"
attribute_name: app_version
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 23
"0x0002":
attribute_id: "0x0002"
attribute_name: stack_version
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0003":
attribute_id: "0x0003"
attribute_name: hw_version
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0004":
attribute_id: "0x0004"
attribute_name: manufacturer
value_type:
- "0x42"
- CharacterString
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: Sinope Technologies
"0x0005":
attribute_id: "0x0005"
attribute_name: model
value_type:
- "0x42"
- CharacterString
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: RM3500ZB
"0x0006":
attribute_id: "0x0006"
attribute_name: date_code
value_type:
- "0x42"
- CharacterString
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: "20221110"
"0x0007":
attribute_id: "0x0007"
attribute_name: power_source
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0010":
attribute_id: "0x0010"
attribute_name: location_desc
value_type:
- "0x42"
- CharacterString
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
attribute_value: " "
"0x0011":
attribute_id: "0x0011"
attribute_name: physical_env
value_type:
- "0x30"
- enum8
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
attribute_value: 0
"0x4000":
attribute_id: "0x4000"
attribute_name: sw_build_id
value_type:
- "0x42"
- CharacterString
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: "245"
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received:
"0x00":
command_id: "0x00"
command_name: reset_fact_default
command_arguments: <class 'zigpy.zcl.foundation.reset_fact_default'>
commands_generated: {}
"0x0002":
cluster_id: "0x0002"
title: Device Temperature
name: device_temperature
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: current_temperature
value_type:
- "0x29"
- int16s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 33
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received: {}
commands_generated: {}
"0x0003":
cluster_id: "0x0003"
title: Identify
name: identify
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: identify_time
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 2
commands_received:
"0x00":
command_id: "0x00"
command_name: identify
command_arguments: <class 'zigpy.zcl.foundation.identify'>
"0x01":
command_id: "0x01"
command_name: identify_query
command_arguments: <class 'zigpy.zcl.foundation.identify_query'>
commands_generated:
"0x00":
command_id: "0x00"
command_name: identify_query_response
command_args: <class 'zigpy.zcl.foundation.identify_query_response'>
"0x0004":
cluster_id: "0x0004"
title: Groups
name: groups
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: name_support
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received:
"0x00":
command_id: "0x00"
command_name: add
command_arguments: <class 'zigpy.zcl.foundation.add'>
"0x01":
command_id: "0x01"
command_name: view
command_arguments: <class 'zigpy.zcl.foundation.view'>
"0x02":
command_id: "0x02"
command_name: get_membership
command_arguments: <class 'zigpy.zcl.foundation.get_membership'>
"0x03":
command_id: "0x03"
command_name: remove
command_arguments: <class 'zigpy.zcl.foundation.remove'>
"0x04":
command_id: "0x04"
command_name: remove_all
command_arguments: <class 'zigpy.zcl.foundation.remove_all'>
"0x05":
command_id: "0x05"
command_name: add_if_identifying
command_arguments: <class 'zigpy.zcl.foundation.add_if_identifying'>
commands_generated:
"0x00":
command_id: "0x00"
command_name: add_response
command_args: <class 'zigpy.zcl.foundation.add_response'>
"0x01":
command_id: "0x01"
command_name: view_response
command_args: <class 'zigpy.zcl.foundation.view_response'>
"0x02":
command_id: "0x02"
command_name: get_membership_response
command_args: <class 'zigpy.zcl.foundation.get_membership_response'>
"0x03":
command_id: "0x03"
command_name: remove_response
command_args: <class 'zigpy.zcl.foundation.remove_response'>
"0x0005":
cluster_id: "0x0005"
title: Scenes
name: scenes
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: count
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0001":
attribute_id: "0x0001"
attribute_name: current_scene
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0002":
attribute_id: "0x0002"
attribute_name: current_group
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0003":
attribute_id: "0x0003"
attribute_name: scene_valid
value_type:
- "0x10"
- Bool
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0004":
attribute_id: "0x0004"
attribute_name: name_support
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received:
"0x00":
command_id: "0x00"
command_name: add
command_arguments: <class 'zigpy.zcl.foundation.add'>
"0x01":
command_id: "0x01"
command_name: view
command_arguments: <class 'zigpy.zcl.foundation.view'>
"0x02":
command_id: "0x02"
command_name: remove
command_arguments: <class 'zigpy.zcl.foundation.remove'>
"0x03":
command_id: "0x03"
command_name: remove_all
command_arguments: <class 'zigpy.zcl.foundation.remove_all'>
"0x04":
command_id: "0x04"
command_name: store
command_arguments: <class 'zigpy.zcl.foundation.store'>
"0x05":
command_id: "0x05"
command_name: recall
command_arguments: <class 'zigpy.zcl.foundation.recall'>
"0x06":
command_id: "0x06"
command_name: get_scene_membership
command_arguments: <class 'zigpy.zcl.foundation.get_scene_membership'>
commands_generated:
"0x00":
command_id: "0x00"
command_name: add_scene_response
command_args: <class 'zigpy.zcl.foundation.add_scene_response'>
"0x01":
command_id: "0x01"
command_name: view_response
command_args: <class 'zigpy.zcl.foundation.view_response'>
"0x02":
command_id: "0x02"
command_name: remove_scene_response
command_args: <class 'zigpy.zcl.foundation.remove_scene_response'>
"0x03":
command_id: "0x03"
command_name: remove_all_scenes_response
command_args: <class 'zigpy.zcl.foundation.remove_all_scenes_response'>
"0x04":
command_id: "0x04"
command_name: store_scene_response
command_args: <class 'zigpy.zcl.foundation.store_scene_response'>
"0x06":
command_id: "0x06"
command_name: get_scene_membership_response
command_args: <class 'zigpy.zcl.foundation.get_scene_membership_response'>
"0x0006":
cluster_id: "0x0006"
title: On/Off
name: on_off
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: on_off
value_type:
- "0x10"
- Bool
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x4001":
attribute_id: "0x4001"
attribute_name: on_time
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
attribute_value: 0
"0x4002":
attribute_id: "0x4002"
attribute_name: off_wait_time
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received:
"0x00":
command_id: "0x00"
command_name: "off"
command_arguments: <class 'zigpy.zcl.foundation.off'>
"0x01":
command_id: "0x01"
command_name: "on"
command_arguments: <class 'zigpy.zcl.foundation.on'>
"0x02":
command_id: "0x02"
command_name: toggle
command_arguments: <class 'zigpy.zcl.foundation.toggle'>
"0x42":
command_id: "0x42"
command_name: on_with_timed_off
command_arguments: <class 'zigpy.zcl.foundation.on_with_timed_off'>
commands_generated: {}
"0x0402":
cluster_id: "0x0402"
title: Temperature Measurement
name: temperature
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: measured_value
value_type:
- "0x29"
- int16s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 5492
"0x0001":
attribute_id: "0x0001"
attribute_name: min_measured_value
value_type:
- "0x29"
- int16s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: -4000
"0x0002":
attribute_id: "0x0002"
attribute_name: max_measured_value
value_type:
- "0x29"
- int16s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 10000
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 3
commands_received: {}
commands_generated: {}
"0x0500":
cluster_id: "0x0500"
title: IAS Zone
name: ias_zone
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: zone_state
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0001":
attribute_id: "0x0001"
attribute_name: zone_type
value_type:
- "0x31"
- enum16
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 42
"0x0002":
attribute_id: "0x0002"
attribute_name: zone_status
value_type:
- "0x19"
- bitmap16
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 48
"0x0010":
attribute_id: "0x0010"
attribute_name: cie_addr
value_type:
- "0xf0"
- EUI64
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
attribute_value:
- 20
- 247
- 95
- 33
- 0
- 75
- 18
- 0
"0x0011":
attribute_id: "0x0011"
attribute_name: zone_id
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: "65533"
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received:
"0x00":
command_id: "0x00"
command_name: enroll_response
command_arguments: <class 'zigpy.zcl.foundation.enroll_response'>
commands_generated:
"0x00":
command_id: "0x00"
command_name: status_change_notification
command_args: <class 'zigpy.zcl.foundation.status_change_notification'>
"0x01":
command_id: "0x01"
command_name: enroll
command_args: <class 'zigpy.zcl.foundation.enroll'>
"0x0702":
cluster_id: "0x0702"
title: Metering
name: smartenergy_metering
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: current_summ_delivered
value_type:
- "0x25"
- uint48_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 2507333
"0x0200":
attribute_id: "0x0200"
attribute_name: status
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0300":
attribute_id: "0x0300"
attribute_name: unit_of_measure
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0301":
attribute_id: "0x0301"
attribute_name: multiplier
value_type:
- "0x22"
- uint24_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0302":
attribute_id: "0x0302"
attribute_name: divisor
value_type:
- "0x22"
- uint24_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1000
"0x0303":
attribute_id: "0x0303"
attribute_name: summation_formatting
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 193
"0x0306":
attribute_id: "0x0306"
attribute_name: metering_device_type
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: "65533"
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received: {}
commands_generated: {}
"0x0b04":
cluster_id: "0x0b04"
title: Electrical Measurement
name: electrical_measurement
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: measurement_type
value_type:
- "0x1b"
- bitmap32
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 9
"0x0505":
attribute_id: "0x0505"
attribute_name: rms_voltage
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 232
"0x0507":
attribute_id: "0x0507"
attribute_name: rms_voltage_max
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 237
"0x0508":
attribute_id: "0x0508"
attribute_name: rms_current
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 30
"0x050a":
attribute_id: "0x050a"
attribute_name: rms_current_max
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 3310
"0x050b":
attribute_id: "0x050b"
attribute_name: active_power
value_type:
- "0x29"
- int16s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x050d":
attribute_id: "0x050d"
attribute_name: active_power_max
value_type:
- "0x29"
- int16s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 783
"0x0600":
attribute_id: "0x0600"
attribute_name: ac_voltage_multiplier
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0601":
attribute_id: "0x0601"
attribute_name: ac_voltage_divisor
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0602":
attribute_id: "0x0602"
attribute_name: ac_current_multiplier
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0603":
attribute_id: "0x0603"
attribute_name: ac_current_divisor
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1000
"0x0604":
attribute_id: "0x0604"
attribute_name: ac_power_multiplier
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0x0605":
attribute_id: "0x0605"
attribute_name: ac_power_divisor
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received: {}
commands_generated: {}
"0x0b05":
cluster_id: "0x0b05"
title: Diagnostic
name: diagnostic
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: number_of_resets
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 4561
"0x0001":
attribute_id: "0x0001"
attribute_name: persistent_memory_writes
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 57660
"0x011b":
attribute_id: "0x011b"
attribute_name: average_mac_retry_per_aps_message_sent
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x011c":
attribute_id: "0x011c"
attribute_name: last_message_lqi
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 152
"0x011d":
attribute_id: "0x011d"
attribute_name: last_message_rssi
value_type:
- "0x28"
- int8s
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: -62
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received: {}
commands_generated: {}
…la suite et fin
"0xff01":
cluster_id: "0xff01"
title: Sinopé Manufacturer specific
name: sinope_manufacturer_specific
attributes:
"0x0001":
attribute_id: "0x0001"
attribute_name: unknown_attr
value_type:
- "0x10"
- Bool
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 1
"0x0002":
attribute_id: "0x0002"
attribute_name: keypad_lockout
value_type:
- "0x30"
- enum8
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 0
"0x0003":
attribute_id: "0x0003"
attribute_name: firmware_number
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 245
"0x0004":
attribute_id: "0x0004"
attribute_name: firmware_version
value_type:
- "0x42"
- CharacterString
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: "0000"
"0x0035":
attribute_id: "0x0035"
attribute_name: "53"
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 100
"0x0037":
attribute_id: "0x0037"
attribute_name: "55"
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 744
"0x0038":
attribute_id: "0x0038"
attribute_name: "56"
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 0
"0x0060":
attribute_id: "0x0060"
attribute_name: connected_load
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 1
"0x0070":
attribute_id: "0x0070"
attribute_name: current_load
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 0
"0x0074":
attribute_id: "0x0074"
attribute_name: "116"
value_type:
- "0x30"
- enum8
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 255
"0x0076":
attribute_id: "0x0076"
attribute_name: dr_config_water_temp_min
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 45
"0x0077":
attribute_id: "0x0077"
attribute_name: dr_config_water_temp_time
value_type:
- "0x20"
- uint8_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 2
"0x0078":
attribute_id: "0x0078"
attribute_name: dr_wt_time_on
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 240
"0x0079":
attribute_id: "0x0079"
attribute_name: "121"
value_type:
- "0x18"
- bitmap8
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 0
"0x0080":
attribute_id: "0x0080"
attribute_name: unknown_attr_4
value_type:
- "0x23"
- uint32_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 0
"0x0090":
attribute_id: "0x0090"
attribute_name: current_summation_delivered
value_type:
- "0x23"
- uint32_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 0
"0x00a0":
attribute_id: "0x00a0"
attribute_name: timer
value_type:
- "0x23"
- uint32_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
"0x00a1":
attribute_id: "0x00a1"
attribute_name: timer_countdown
value_type:
- "0x23"
- uint32_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
"0x00b0":
attribute_id: "0x00b0"
attribute_name: "176"
value_type:
- "0x10"
- Bool
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
"0x0101":
attribute_id: "0x0101"
attribute_name: unknown_attr_9
value_type:
- "0x48"
- Array
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
"0x012a":
attribute_id: "0x012a"
attribute_name: "298"
value_type:
- "0x30"
- enum8
- Discrete
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
"0x012c":
attribute_id: "0x012c"
attribute_name: "300"
value_type:
- "0x48"
- Array
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
"0x0200":
attribute_id: "0x0200"
attribute_name: status
value_type:
- "0x1b"
- bitmap32
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
"0x0202":
attribute_id: "0x0202"
attribute_name: "514"
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
"0x0203":
attribute_id: "0x0203"
attribute_name: "515"
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 44
"0x0280":
attribute_id: "0x0280"
attribute_name: "640"
value_type:
- "0x29"
- int16s
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 5300
"0x0281":
attribute_id: "0x0281"
attribute_name: "641"
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 0
"0x0282":
attribute_id: "0x0282"
attribute_name: "642"
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|WRITE|REPORT
access_acl: 7
manf_id: 4508
attribute_value: 0
"0x0283":
attribute_id: "0x0283"
attribute_name: cold_load_pickup_status
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 1
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
manf_id: 4508
attribute_value: 1
commands_received: {}
commands_generated: {}
out_clusters:
"0x000a":
cluster_id: "0x000a"
title: Time
name: time
attributes:
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 2
commands_received: {}
commands_generated: {}
"0x0019":
cluster_id: "0x0019"
title: Ota
name: ota
attributes:
"0x0000":
attribute_id: "0x0000"
attribute_name: upgrade_server_id
value_type:
- "0xf0"
- EUI64
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value:
- 20
- 247
- 95
- 33
- 0
- 75
- 18
- 0
"0x0001":
attribute_id: "0x0001"
attribute_name: file_offset
value_type:
- "0x23"
- uint32_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 4294967295
"0x0006":
attribute_id: "0x0006"
attribute_name: image_upgrade_status
value_type:
- "0x30"
- enum8
- Discrete
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0x0009":
attribute_id: "0x0009"
attribute_name: minimum_block_req_delay
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 0
"0xfffd":
attribute_id: "0xfffd"
attribute_name: cluster_revision
value_type:
- "0x21"
- uint16_t
- Analog
access: READ|REPORT
access_acl: 5
attribute_value: 1
commands_received:
"0x00":
command_id: "0x00"
command_name: "0"
command_arguments: not_in_zcl
"0x02":
command_id: "0x02"
command_name: "2"
command_arguments: not_in_zcl
"0x05":
command_id: "0x05"
command_name: "5"
command_arguments: not_in_zcl
"0x07":
command_id: "0x07"
command_name: "7"
command_arguments: not_in_zcl
commands_generated:
"0x01":
command_id: "0x01"
command_name: "1"
command_args: not_in_zcl
"0x03":
command_id: "0x03"
command_name: "3"
command_args: not_in_zcl
"0x04":
command_id: "0x04"
command_name: "4"
command_args: not_in_zcl
"0x06":
command_id: "0x06"
command_name: "6"
command_args: not_in_zcl
Claude,
I tried to debug why the Calypso Temp Sensor is giving a reading every hours without success.
In fact, every hour there is 2-3 reading spaced by 5 minutes (which is my scan interval).
I notice that during the hour where no temparature change, the Neviweb cell app or Web page is providing a reading that difers from the one that is stuck in HA.
The Wattage_instant does not behave like the Water_temperature, there is a different value every 5 minutes.
scan_interval: 300
stat_interval: 300
Thanks for you help.
Ben
This is what I have for water temperature
I have a reading every scan_intervall.
What is your graph card ? and what is the setting
I have a sensor
template:
sensor:
- name: "temperature_eau"
unique_id: sensor.temperature_eau
unit_of_measurement: '°C'
device_class: temperature
state_class: measurement
state: "{{ state_attr('switch.neviweb130_switch_calypso_chauffe_eau', 'Water_temperature') }}"
My graph utility is history graph
cards:
- type: history-graph
title: Historique temperature du chauffe eau
entities:
- sensor.temperature_eau
hours_to_show: 24
refresh_interval: 0
Hi Claude, don’t want to be pushy but am not sure if you saw my last post. Still trying to learn how to interact with ZHA and maybe I missed some basic info. Just trying to create selectors (boolean/switch?) For features not already exposed in HA so I can use them in dashboards. Feel free to redirect me to the correct ressources/mandatory reading
Just need some guidance to start off on the right foot.
Thanks for your help
This threat is wild.
Please let me know if I should start a new one - But I figure this is a good place.
Is anyone getting alerts like this?
I’m getting dozens a day on two thermostats. Not always identical. some talking about an update being paused?
It could easily be something in my house, which is full of gremlins.
But - anyone know what it means? Were is this log, anyway? There is nothing in my logbook, and I can’t find anything on Neviweb.com.
Thanks for any leads!
This is sent when during polling of your device data, Neviweb is replying with error message “DVCUNVLB” device unavailable. This is when connection is lost between your device and Neviweb.
Main cause, this is a wifi thermostat and the wifi connection is dropped by your router. The device stop sending data to neviweb so when neviweb130 ask Neviweb for this device data it get an answer from Neviweb about device unavailable.
It can also be because there is an update going on on neviweb and it is not possible to poll for device data. But this one is not too frequent.
I’ll add in the notification the device sku to know which device model it is.
After 20 minutes the polling is restarted to see if device is back.
yes but I was busy to reset my HA to be ready for the first peak. When you test new method it is easy to break things. I spend a lot of time switching device between Neviweb and ZHA. Will check what I can find to help you.
Thank you Claude, much appreciated.
Just migrated to HA so also had fingers crossed with the first peak this morning All good so far.
Meanwhile I was able to create a script (below) to easily control a single feature (floor control mode in this example) on multiple thermostats at once.
What I’m missing is a boolean (or switch, or selector) to control and receive status from thermostats.
Ex: for thermostat X, toggle floor control mode and receive feedback/status on a Lovelace card.
If floor control mode is changed directly on the thermostat, the card should automatically update as well.
Keep me posted once you have a chance,
Cheers,
alias: THERMOSTATS sinope set floor control mode ZHA
fields:
entity_id:
required: true
description: Entity ID of your thermostat
selector:
entity:
multiple: true
filter:
domain: climate
mode:
required: true
description: Select desired option
default: ambiant
selector:
select:
options:
- floor
- ambiant
mode: single
icon: mdi:account
sequence:
- repeat:
for_each: "{{ entity_id }}"
sequence:
- variables:
ieee: |
{{ device_attr(repeat.item, 'identifiers')
| selectattr(0, 'eq', 'zha') | map(attribute=1) | first }}
- service: zha.set_zigbee_cluster_attribute
data:
ieee: "{{ ieee }}"
endpoint_id: 1
cluster_id: 65281
cluster_type: in
attribute: 261
value: >-
{{'1' if mode == 'ambiant' else ('2' if mode == 'floor' else
'1')}}