plugin-ZIGBEE Beta

Je m’en douté pour moi le mode c’est la vanne qui decide et pas du tout l’utilisateur

1 « J'aime »

C’est ca bon ben maintenant que j’ai la trame ya plus qu’a

1 « J'aime »

Yes j’ai trouvé
à vous voir discuter, j’ai compris des choses

Tu parles de quoi la ?

1 « J'aime »

d’un post que j’ai fait en fin d’après midi (5nov à 16h47) sur un DIY zigbee à base d’un CC2530 (voir plus haut)
pour retrouver les retours d’informations.
je viens de renseigner comme ça « 1::6::0 » ce qui me permet de connaitre l’état de ma sortie.
Je comprennais pas comment faire hier soir

:wink:

JE SUIS CONTENT

Maintenant je vais pouvoir attaquer les valeurs analogique.

d’ailleurs si cela peut intéresser des makers je pourrais éventuellement faire une notice d’utilisation de l’ensemble

je pense ca peut interesser du monde effectivement

Suite à la découverte de ce site

https://ptvo.info/zigbee-configurable-firmware-features/

Je me suis empressé de sortir mon SDK basé sur le CC2530 de chez Texas Instrument avec mon debugger.

image
On télécharge donc ce petit Zip de 3.5Mo, ça va vite.

Dézippé, facile

Bon par contre on est dans la norme zigbee 1.2 et pas 3 donc pas de gestion de GPD (GreenPowerDevice)

Et là simplement on renseigne ses entrée/Sortie et son microcontrolleur

Rien de compliqué
image
Puis on « Save » la configuration.

Ce qui génère un fichier txt et un hex

Wouah !!! ultra intéressant

image

Maintenant on utilise l’outil de chez TI « SmartRF Flash Programmer » pour flasher notre contrôleur

ATTENTION pas le V2 dans notre cas car le cc2530 est d’une famille ancienne, la V2 est plutôt compatible avec les µControlleurs compatible zigbee v3.0


On va chercher son *.hex puis clic sur « Perform actions »

Magique le flash marche du premier coup

Ah oui assurez vous que le Débugger n’a pas un voyant rouge sinon il faut le reseter pour qu’il passe vert. Rouge => le chipset n’est soit pas reconnu/connecté

Inclusion dans JeeDom

Ce super configurateur produit un *.hex en Zigbee 1.2 ZHA

Tout a fait reconnu par ce nouveau Plugin Zigbee (Beta) made in JeeDom

On clique donc sur inclusion dans le plugin, et en parallèle on procède à l’inclusion avec notre SDK

Appairage

Flash firmware et permettre de rejoindre un réseau sur votre coordinateur.

Réappairage

Allumez, attendez 2 secondes, éteignez, répétez ce cycle trois fois.

Si vous avez configuré la première broche d’entrée, cliquez dessus et maintenez-la enfoncée pendant 10 secondes.

Le plugin le trouve sans broncher mais aucune commande n’est créé, normal c’est un DIY, il faut donc maintenant le trouver.
image
Dans le plugion on ouvre les logs zigbee et on trouve quelques trames interessantes en jouant sur le SDK

Ici j’ai donc allumé le bouton 2 puis le 1
image
On voit qu’on est sur des commandes classic ON/OFF, donc les commandes sont de type Booléen


Ce qui nous permet d’obtenir ceci sur le Dashboard
image

On a déjà là un très bon support pour se fabriquer pas mal d’équipements Zigbee

Bon c’est l’heure d’aller casser la gueule à la gamelle, j’essayerai de l’analogique ou du PWM plus tard.
Bon appétit

1 « J'aime »

Bonjour,
Comment fait-on pour supprimer complètement un équipement?


Car j’ai supprimé le router 00:15:8d:00:02:a1:25:67
Mais ce dernier est toujours apparant!

J’ai trouvé il faut supprimé le noeud

bref autre chose

Bonjour
si je pouvais avoir un coup de main de @olive par exemple
J’ai compris que je n’avais rien compris
pas mal non?
bref dans la lancée de mon DIY
J’ai configuré mon cc2530 comme ça


mais pas de bol à part les entrée sortie binaire, je n’arrive pas à trouver les autres commandes
et pourtant il y a au moins l’entrée analogique qui est reconnu en endpoint 4 et clusters 12

{
    "ieee": "00:12:4b:00:1d:37:a9:35",
    "nwk": 24847,
    "status": 2,
    "lqi": "247",
    "rssi": "-63",
    "last_seen": "1604671131.754905",
    "node_descriptor": "01:40:8e:5f:11:50:a0:00:00:00:a0:00:00",
    "endpoints": [
        {
            "id": 4,
            "status": 1,
            "device_type": 256,
            "profile_id": 260,
            "output_clusters": [],
            "input_clusters": [
                {
                    "id": 12,
                    "name": "AnalogInput",
                    "attributes": []
                }
            ]
        },
        {
            "id": 2,
            "status": 1,
            "device_type": 256,
            "profile_id": 260,
            "output_clusters": [
                {
                    "id": 6,
                    "name": "On\/Off",
                    "attributes": []
                }
            ],
            "input_clusters": [
                {
                    "id": 6,
                    "name": "On\/Off",
                    "attributes": [
                        {
                            "id": 0,
                            "name": "on_off",
                            "value": 1
                        }
                    ]
                }
            ]
        },
        {
            "id": 1,
            "status": 1,
            "device_type": 256,
            "profile_id": 260,
            "output_clusters": [
                {
                    "id": 0,
                    "name": "Basic",
                    "attributes": []
                },
                {
                    "id": 2821,
                    "name": "Diagnostic",
                    "attributes": []
                },
                {
                    "id": 6,
                    "name": "On\/Off",
                    "attributes": []
                }
            ],
            "input_clusters": [
                {
                    "id": 0,
                    "name": "Basic",
                    "attributes": [
                        {
                            "id": 0,
                            "name": "zcl_version",
                            "value": 1
                        },
                        {
                            "id": 1,
                            "name": "app_version",
                            "value": 1
                        },
                        {
                            "id": 2,
                            "name": "stack_version",
                            "value": 1
                        },
                        {
                            "id": 3,
                            "name": "hw_version",
                            "value": 1
                        },
                        {
                            "id": 4,
                            "name": "manufacturer",
                            "value": "C.D.S"
                        },
                        {
                            "id": 5,
                            "name": "model",
                            "value": "ptvo.switch"
                        },
                        {
                            "id": 6,
                            "name": "date_code",
                            "value": "2019-06-21"
                        },
                        {
                            "id": 7,
                            "name": "power_source",
                            "value": 1
                        },
                        {
                            "id": 16384,
                            "name": "sw_build_id",
                            "value": "2019-06-21"
                        }
                    ]
                },
                {
                    "id": 2821,
                    "name": "Diagnostic",
                    "attributes": []
                },
                {
                    "id": 6,
                    "name": "On\/Off",
                    "attributes": [
                        {
                            "id": 0,
                            "name": "on_off",
                            "value": 1
                        }
                    ]
                }
            ]
        }
    ],
    "signature": {
        "manufacturer_name": "C.D.S",
        "model": "ptvo.switch",
        "node_descriptor": {
            "byte1": 1,
            "byte2": 64,
            "mac_capability_flags": 142,
            "manufacturer_code": 4447,
            "maximum_buffer_size": 80,
            "maximum_incoming_transfer_size": 160,
            "server_mask": 0,
            "maximum_outgoing_transfer_size": 160,
            "descriptor_capability_field": 0
        },
        "4": {
            "profileid": 260,
            "deviceid": 256,
            "in_clusters": [
                12
            ],
            "out_clusters": []
        },
        "2": {
            "profileid": 260,
            "deviceid": 256,
            "in_clusters": [
                6
            ],
            "out_clusters": [
                6
            ]
        },
        "1": {
            "profileid": 260,
            "deviceid": 256,
            "in_clusters": [
                0,
                2821,
                6
            ],
            "out_clusters": [
                0,
                2821,
                6
            ]
        }
    },
    "class": "zigpy.device"
}

donc j’ai créé la commande à l’exemple de mes Boutons mais en info numérique


pas de bol

voici donc le log d’inclusion

[2020-11-06 14:53:40][DEBUG] : ""
[2020-11-06 14:53:54][DEBUG] : {"device_joined":"00:12:4b:00:1d:37:a9:35"}
[2020-11-06 14:53:54][DEBUG] : {"device_initialized":"00:12:4b:00:1d:37:a9:35"}
[2020-11-06 14:53:56][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"1":[[{"value":"1","cluster_name":"Basic"},{"value":"1","cluster_name":"Basic"},{"value":"1","cluster_name":"Basic"},{"value":"1","cluster_name":"Basic"}]]}}}
[2020-11-06 14:53:57][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"1":[{"7":{"value":"PowerSource.Mains_single_phase","cluster_name":"Basic"}}]}}}
[2020-11-06 14:53:58][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"1":[{"6":{"value":"2019-06-21","cluster_name":"Basic"},"16384":{"value":"2019-06-21","cluster_name":"Basic"}}]}}}
[2020-11-06 14:54:54][DEBUG] : http://127.0.0.1:8484/device/all type : GET
[2020-11-06 14:58:41][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"2":{"6":[{"value":"Bool.false","cluster_name":"On\/Off"}]}}}}
[2020-11-06 14:58:41][DEBUG] : Search attribut for 00:12:4b:00:1d:37:a9:35 logicalId : 2::6::0 => Bool.false
[2020-11-06 14:58:42][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"1":{"6":[{"value":"Bool.false","cluster_name":"On\/Off"}]}}}}
[2020-11-06 14:58:42][DEBUG] : Search attribut for 00:12:4b:00:1d:37:a9:35 logicalId : 1::6::0 => Bool.false
[2020-11-06 14:58:50][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"2":{"6":[{"value":"Bool.true","cluster_name":"On\/Off"}]}}}}
[2020-11-06 14:58:50][DEBUG] : Search attribut for 00:12:4b:00:1d:37:a9:35 logicalId : 2::6::0 => Bool.true
[2020-11-06 14:58:51][DEBUG] : {"devices":{"00:12:4b:00:1d:37:a9:35":{"1":{"6":[{"value":"Bool.true","cluster_name":"On\/Off"}]}}}}
[2020-11-06 14:58:51][DEBUG] : Search attribut for 00:12:4b:00:1d:37:a9:35 logicalId : 1::6::0 => Bool.true
[2020-11-06 14:59:22][DEBUG] : http://127.0.0.1:8484/device/info?ieee=00%3A12%3A4b%3A00%3A1d%3A37%3Aa9%3A35 type : GET
[2020-11-06 15:04:11][DEBUG] : http://127.0.0.1:8484/device/info?ieee=00%3A12%3A4b%3A00%3A1d%3A37%3Aa9%3A35 type : GET
[2020-11-06 15:13:00][DEBUG] : http://127.0.0.1:8484/device/info?ieee=00%3A12%3A4b%3A00%3A1d%3A37%3Aa9%3A35 type : GET

Désolé mais je ne comprends pas où ça pêche

Bonjour, j’ai inclu une télécommande Philips Hue Dimmer RWL021, elle fonctionne bien avec le plugin mais je n’ai que 4 valeurs possibles pour les valeurs de l’état :

  • On = 1

  • DimUp = 2

  • DimDown = 3

  • Off = 4

Je voudrai savoir si c’est normal de ne pas avoir les valeurs pour l’appui prolongé, le double appui.

Merci de votre réponse.

Il n’existe que la valeur du dernier bouton appuyer
en jouant avec un petit scenario tu peut jouer un peut …

Capture d’écran du 2020-11-07 22-07-32

bon courrage

Bonjour est ce que ce plugin fonctionne avec la zigate prolific?
Merci

c’est ton type de convertisseur c’est bien ça ?

c’est la cle usb zigate prolific bleu

Que ce soit bleu ou rouge c’est la partie adaptateur USB - > port série
pour le plugin ça ne change rien

la différence est juste le type de drivers dans ta machine pour voir cet adaptateur
donc si il est déjà vu pas d’importance.

J’utilise avec le plugin zigate. Mon beau-père a la même nous avons tenté des tester le plugin zigbee sur son pi4 on a réussi à intégrer la clé et les équipements mais aucune commande ne remontent. Nous avions bien choisi les équipements correspondants après l’inclusion.

Merci pour ta solution « olive », ça me sera toujours utile. Mais je voudrai surtout savoir, si ça restera comme ça ou si le plugin va évoluer et proposer l’appui prolongé et le double appui.

1 « J'aime »

Je sais pas le plugin est en bêta il y a des avancées tous les jours (Merci à @Loic )
Il faut donc attendre et voir …

Bonsoir,

Je vous partage les modifs que j’ai faites sur le matériel ZIGBEE eurotronic spirit :
1 - modification de la photo (plus grosse, plus normalisée par rapport aux photos d’autres matériels :
Eurotronic.SPZB0001
2 - Modification du JSon pour intégrer des commentaires (reset et appairage) ainsi que pour modifier la commande puissance car la valuer renvoyée par la vanne est un chiffre entre 1 et 255. Rajout d’une formule associée à la commande #value# *100/255`
3 - Enfin, renommage des fichiers json et png en Eurotronic.SPZB0001.json et Eurotronic.SPZB0001.png afin que la vanne soit automatiquement reconnue à l’appairage.

{
  "name": "Vanne Spirit",
  "buylink" : "",
  "ref":"SPZB0001",
  "reset": "Appui long sur les trois bouton -0+, un compteur defile jusqu'Ã  10, puis la vanne se reinitialise",
  "pairing": "Enlever les piles, lorsque la vanne redemarre, il apparait sur l'écran Ins, avec le 0 qui clignote, appuyer sur le O",
  "remark": "Vanne qui a tendance à ne plus accepter d'ordre (changement de consigne) à moins d'enlever les piles et de les remettres. Par contre elle remonte toujours bien les informations de température et changement de consigne manuel",
  "commands": [
    {
      "name": "Température",
      "type": "info",
      "subtype": "numeric",
      "isVisible": 1,
      "isHistorized": 1,
      "unite" : "°C",
      "logicalId": "1::513::0",
      "generic_type" : "THERMOSTAT_TEMPERATURE",
      "configuration" : {
        "calculValueOffset":"#value# / 100"
      }
    },
    {
      "name": "Consigne",
      "type": "info",
      "subtype": "numeric",
      "isVisible": 0,
      "isHistorized": 0,
      "unite" : "°C",
      "logicalId": "1::513::18",
      "generic_type" : "THERMOSTAT_SETPOINT",
      "configuration" : {
        "calculValueOffset":"#value# / 100"
      }
    },
    {
      "name": "Thermostat",
      "type": "action",
      "subtype": "slider",
      "isVisible": 1,
      "isHistorized": 1,
      "unite" : "°C",
      "value": "Consigne",
      "logicalId": "attributes::1::in::513::18::#slider#*100",
      "generic_type" : "THERMOSTAT_SET_SETPOINT",
      "configuration" : {
        "minValue":"6",
        "maxValue":"28"
      },
      "template" : {
        "dashboard" : "button",
        "mobile" : "button"
      }
    },
    {
      "name": "Puissance",
      "type": "info",
      "subtype": "numeric",
      "isVisible": 1,
      "isHistorized": 1,
      "unite" : "%",
      "logicalId": "1::513::8",
      "configuration" : {
        "calculValueOffset":"#value# / 255 * 100"
      }
    },
    {
      "name": "Mode",
      "type": "info",
      "subtype": "string",
      "isVisible": 1,
      "isHistorized": 0,
      "generic_type" : "THERMOSTAT_STATE_NAME",
      "logicalId": "1::513::28"
    },
    {
      "name": "Error",
      "type": "info",
      "subtype": "string",
      "isVisible": 0,
      "isHistorized": 0,
      "generic_type" : "DONT",
      "logicalId": "1::513::16386"
    }
  ]
}

Bonne integration

Norbert