gce-electronics / HA_RFPlayer

RFPlayer plugin for Home assistant
Apache License 2.0
30 stars 10 forks source link

EDISIO en 868 #98

Open Doubledom45 opened 2 weeks ago

Doubledom45 commented 2 weeks ago

System Health details

Test de ta nouvelle version

Je te remonterai d'autres truc plus tard. J'ai vu aussi du DOMIA en binary, mais pas le switch ( il doit falloir le créer) !

@+ Bonjour @

Checklist

Describe the issue

L' EDISIO EDS 100 remonte comme Températures?, EDISIO switch 3514999432 Temperature C'est un détecteur d'ouverture . Position ON/OFF et intermédiaire !

Reproduction steps

  1. Test du Rfplayer new version
  2. ...

Debug logs

2024-11-08 10:30:29.980 DEBUG (MainThread) [custom_components.rfplayer.rfplayerlib.protocol] packet received: ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-66", "floorNoise": "-94", "rfQuality": "7", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "9", "subTypeMeaning": "SHUTTER_OPEN", "id": "3514999432", "qualifier": "1", "info": "8969", "infoMeaning": "EDS-100, 3.5V", "add0": "0", "add1": "0"}}}
2024-11-08 10:30:29.980 DEBUG (MainThread) [custom_components.rfplayer.gateway] Received event from EDISIO-3514999432
2024-11-08 10:30:30.147 DEBUG (MainThread) [custom_components.rfplayer.entity] sensor.edisio_3514999432_temperature_2 updated
2024-11-08 10:30:30.189 DEBUG (MainThread) [custom_components.rfplayer.entity] sensor.edisio_3514999432_rf_level_2 updated
2024-11-08 10:30:30.232 DEBUG (MainThread) [custom_components.rfplayer.entity] sensor.edisio_3514999432_battery_voltage_2 updated
2024-11-08 10:30:30.234 DEBUG (MainThread) [custom_components.rfplayer.rfplayerlib.protocol] data received: ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-73", "floorNoise": "-96", "rfQuality": "5", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "1", "subTypeMeaning": "ON", "id": "3514999432", "qualifier": "1", "info": "9225", "infoMeaning": "EDS-100, 3.6V", "add0": "0", "add1": "0"}}}

2024-11-08 10:30:30.234 DEBUG (MainThread) [custom_components.rfplayer.rfplayerlib.protocol] packet received: ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-73", "floorNoise": "-96", "rfQuality": "5", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "1", "subTypeMeaning": "ON", "id": "3514999432", "qualifier": "1", "info": "9225", "infoMeaning": "EDS-100, 3.6V", "add0": "0", "add1": "0"}}}
2024-11-08 10:30:30.234 DEBUG (MainThread) [custom_components.rfplayer.gateway] Received event from EDISIO-3514999432
2024-11-08 10:30:30.234 DEBUG (MainThread) [custom_components.rfplayer.gateway] Event data {"frame": {"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-73", "floorNoise": "-96", "rfQuality": "5", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"}, "infos": {"subType": "1", "subTypeMeaning": "ON", "id": "3514999432", "qualifier": "1", "info": "9225", "infoMeaning": "EDS-100, 3.6V", "add0": "0", "add1": "0"}}}
2024-11-08 10:30:30.399 DEBUG (MainThread) [custom_components.rfplayer.entity] sensor.edisio_3514999432_temperature_2 updated
2024-11-08 10:30:30.440 DEBUG (MainThread) [custom_components.rfplayer.entity] sensor.edisio_3514999432_rf_level_2 updated
2024-11-08 10:30:30.481 DEBUG (MainThread) [custom_components.rfplayer.entity] sensor.edisio_3514999432_battery_voltage_2 updated

Diagnostics dump

No response

racletteparty commented 2 weeks ago

Pour le switch domia il faut le déclarer manuellement mais normalement il y a un profil pour https://github.com/gce-electronics/HA_RFPlayer/blob/32f0e260a240e0474b6a0fcbdffd1cca18c221bd/custom_components/rfplayer/device-profiles.yaml#L16

racletteparty commented 2 weeks ago

Pour edisio j'ai oublié de mettre un filtre sur le sub_type donc il attribue tous les packets vers le profil de temperature https://github.com/gce-electronics/HA_RFPlayer/blob/32f0e260a240e0474b6a0fcbdffd1cca18c221bd/custom_components/rfplayer/device-profiles.yaml#L568

Doubledom45 commented 2 weeks ago

Voici un log d'un BP Ref ETC-4 avec 4 boutons

Les N° boutons sont dans le qualifier

Appuie simple fait TOGGLE voir subTypeMeaning

`ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-65", "floorNoise": "-95", "rfQuality": "7", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "3", "subTypeMeaning": "TOGGLE", "id": "2691240302", "qualifier": "1", "info": "7937", "infoMeaning": "EMITRBTN, 3.1V", "add0": "0", "add1": "0"}}}

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-57", "floorNoise": "-76", "rfQuality": "4", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "3", "subTypeMeaning": "TOGGLE", "id": "2691240302", "qualifier": "2", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-48", "floorNoise": "-93", "rfQuality": "10", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "3", "subTypeMeaning": "TOGGLE", "id": "2691240302", "qualifier": "3", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-54", "floorNoise": "-94", "rfQuality": "10", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "3", "subTypeMeaning": "TOGGLE", "id": "2691240302", "qualifier": "4", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

Appuie long fait DIM-A voir subTypeMeaning

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-43", "floorNoise": "-93", "rfQuality": "10", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "7", "subTypeMeaning": "DIM-A", "id": "2691240302", "qualifier": "1", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-47", "floorNoise": "-76", "rfQuality": "7", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "7", "subTypeMeaning": "DIM-A", "id": "2691240302", "qualifier": "2", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-42", "floorNoise": "-85", "rfQuality": "10", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "7", "subTypeMeaning": "DIM-A", "id": "2691240302", "qualifier": "3", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-44", "floorNoise": "-92", "rfQuality": "10", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "7", "subTypeMeaning": "DIM-A", "id": "2691240302", "qualifier": "4", "info": "7681", "infoMeaning": "EMITRBTN, 3.0V", "add0": "0", "add1": "0"}}}

`

Les subTypeMeaning ne correspondent pas à la doc de l'API du x01

racletteparty commented 2 weeks ago

Ton besoin c'est de mapper ça sur une plate-forme ha Light et faire du toggle turn on / turn off sur le packet toggle et dim+ sur le packet dim-a ?

racletteparty commented 2 weeks ago

Par contre pour gérer les 4 boutons sur un seul device ha, ça demande un peu de code pour rediriger le qualifier sur la bonne instance de Light ou plate-forme en général sur le device.

Doubledom45 commented 2 weeks ago

A vraie dire c'est pour ton Add-on. Je crois que j'avais donner des infos à Mathieu.

L'émission d'un switch est plus compliqué, on peut pas traiter directement Si tu veux d'autres EDISIO, je te ferais log .

Pour émettre une cde pour ETH03 cde Fil pilote, il faut son ID réelle (4 octets faible en 1er)et le code de la fonction, la bat etc , puis le mode [Off/Eco/Comfort(ON)/HG]

Pour OFF sur un ID 216456156 == 0x0C 0xE6 0xDB 0x DC ............ le 0x21 représente le niveau de Bat ( ne sert pas en émission) EDISIOFRAME 0xDC 0xDB 0xE6 0x0C 0x01 0x16 0x21 0x05 0x00 0x02 La réception serait décodée : ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-74", "floorNoise": "-97", "rfQuality": "5", "protocol": "16", "protocolMeaning": "EDISIO", "infoType": "15", "frequency": "868350"},"infos": {"subType": "2", "subTypeMeaning": "OFF", "id": "216456156", "qualifier": "1", "info": "8470", "infoMeaning": "EGW, 3.3V", "add0": "0", "add1": "0"}}}

racletteparty commented 2 weeks ago

Si je crée une variable address_bytes qui contient chaque byte de l'adresse avec un espace entre.

L'équivalent de cmd_set_mode: ON X2DELEC ID {unit_code} %{preset_mode} Donnerait cmd_set_mode: EDISIOFRAME {address_bytes} 0x01 0x16 0x21 0x05 0x00 0x{preset_mode}

Il faudrait savoir exactement à quoi correspond les infos au milieu. Et ce surtout ce qui est important pour une commande. Par exemple la batterie sert à rien.

Doubledom45 commented 1 week ago

Slt. Le décodage est un peu dans la doc API . Je l'avais traduit en XLS, faut que je remette la main dessus ( cala fait un moment, époque Ziblue) Dans ce cas là : Normalement derrière ID, il y a le qualifier, puis le Model, puis Bat, Rfquality et la cde

Je vais essayer de faire semaine prochaine le décodage du ZIA 66 suivant SubType ou model

racletteparty commented 1 week ago

Je vois à peu près qu'elle information va dans la trame de commande edisioframe mais je ne suis pas sur de l'ordre des infos sans spec plus précise.

Au début je pensais faire un profil de device pour la télécommande 4 boutons mais ça pose des problèmes parce que je ne peux pas prévoir à l'avance l'usage de chaque bouton et donc la plate-forme ha correspondante. Le plus simple est donc de voir chaque bouton comme un device séparé. L'autre alternative est de pouvoir charger un fichier yaml de profil défini par l'utilisateur dans ce cas chacun peut se faire un device custom avec sa propre combinaison on/off, Light, cover pour chaque bouton