Intégration Automatisme de porte de garage Zigbee de marque LoraTap

Automatisme de porte de garage Zigbee de marque LoraTap.

Référence fabriquant : GDC311ZBQ1
Marque : LoraTap

Image :
GDC311ZBQ1

Lien :

Actuellement reconnu ainsi :

image

Données brutes :

{
    "ieee": "a4:c1:38:b2:98:2b:8d:ec",
    "nwk": 30471,
    "status": 2,
    "lqi": "None",
    "rssi": "None",
    "last_seen": "None",
    "node_descriptor": "01:40:8e:41:11:42:42:00:00:2a:42:00:00",
    "endpoints": [
        {
            "id": 1,
            "status": 1,
            "device_type": 81,
            "profile_id": 260,
            "manufacturer": "_TZE200_wfxuhoea",
            "model": "TS0601",
            "output_clusters": [
                {
                    "id": 25,
                    "name": "Ota",
                    "attributes": []
                },
                {
                    "id": 10,
                    "name": "Time",
                    "attributes": []
                }
            ],
            "input_clusters": [
                {
                    "id": 4,
                    "name": "Groups",
                    "attributes": []
                },
                {
                    "id": 5,
                    "name": "Scenes",
                    "attributes": []
                },
                {
                    "id": 61184,
                    "name": "Cluster",
                    "attributes": []
                },
                {
                    "id": 0,
                    "name": "Basic",
                    "attributes": [
                        {
                            "id": 0,
                            "name": "zcl_version",
                            "value": 3
                        },
                        {
                            "id": 1,
                            "name": "app_version",
                            "value": 70
                        },
                        {
                            "id": 2,
                            "name": "stack_version",
                            "value": 0
                        },
                        {
                            "id": 3,
                            "name": "hw_version",
                            "value": 1
                        },
                        {
                            "id": 4,
                            "name": "manufacturer",
                            "value": "_TZE200_wfxuhoea"
                        },
                        {
                            "id": 5,
                            "name": "model",
                            "value": "TS0601"
                        },
                        {
                            "id": 6,
                            "name": "date_code",
                            "value": ""
                        },
                        {
                            "id": 7,
                            "name": "power_source",
                            "value": 1
                        }
                    ]
                }
            ]
        },
        {
            "id": 242,
            "status": 1,
            "device_type": 97,
            "profile_id": 41440,
            "manufacturer": null,
            "model": null,
            "output_clusters": [
                {
                    "id": 33,
                    "name": "GreenPowerProxy",
                    "attributes": []
                }
            ],
            "input_clusters": []
        }
    ],
    "signature": {
        "manufacturer": "_TZE200_wfxuhoea",
        "model": "TS0601",
        "node_desc": {
            "logical_type": 1,
            "complex_descriptor_available": 0,
            "user_descriptor_available": 0,
            "reserved": 0,
            "aps_flags": 0,
            "frequency_band": 8,
            "mac_capability_flags": 142,
            "manufacturer_code": 4417,
            "maximum_buffer_size": 66,
            "maximum_incoming_transfer_size": 66,
            "server_mask": 10752,
            "maximum_outgoing_transfer_size": 66,
            "descriptor_capability_field": 0
        },
        "endpoints": {
            "1": {
                "profile_id": 260,
                "device_type": 81,
                "input_clusters": [
                    4,
                    5,
                    61184,
                    0
                ],
                "output_clusters": [
                    25,
                    10
                ]
            },
            "242": {
                "profile_id": 41440,
                "device_type": 97,
                "input_clusters": [],
                "output_clusters": [
                    33
                ]
            }
        }
    },
    "class": "zigpy.device"
}

Mettre le démon en debug depuis la page de configuration du plugin et le redémarrer. Effectuer des actions sur l’équipement

Je ne peux faire cela puisque je n’ai pas de commande.

En toutes logiques, cette équipement devrait avoir une commande pour actionner l’automatisme de la porte automatique (qui monte ou qui descend, il n’y a peut etre qu’une commande) + l’information du capteur qoui dit si la porte est « ouverte » ou fermée".

Merci si vous pouvez l’inclure.

PS. @Loic si tu nous donnes la procédure d’intégration, les développeurs peuvent aider si besoin pour les devices qu’ils possèdent.

Bonjour
Au vue du json il ne sera rien possible de faire avec ce module. Essaye de mettre a jour les dépendances et relance le démon voir si c’est mieux, si le json est le même alors il faudra attendre que zigpy intégre le module.

Pour la documentation pour intégrer des modules il n’y en a pas, un bout dans la doc du plugin c’est tout. Après le plugin fait de la création automatique pour les modules simple (lumière, on/off…), Pour tout ce qui est capteur tu as aussi un bouton pour la création automatique des commandes.

Ha ça sent donc pas bon, j’ai mis la derniere version beta, dépendance relancées, voici le résultat :

{
    "ieee": "a4:c1:38:b2:98:2b:8d:ec",
    "nwk": 22015,
    "status": 2,
    "lqi": "255",
    "rssi": "-58",
    "last_seen": "1648239768.286991",
    "node_descriptor": "01:40:8e:41:11:42:42:00:00:2a:42:00:00",
    "endpoints": [
        {
            "id": 1,
            "status": 1,
            "device_type": 81,
            "profile_id": 260,
            "manufacturer": "_TZE200_wfxuhoea",
            "model": "TS0601",
            "output_clusters": [
                {
                    "id": 25,
                    "name": "Ota",
                    "attributes": []
                },
                {
                    "id": 10,
                    "name": "Time",
                    "attributes": []
                }
            ],
            "input_clusters": [
                {
                    "id": 4,
                    "name": "Groups",
                    "attributes": []
                },
                {
                    "id": 5,
                    "name": "Scenes",
                    "attributes": []
                },
                {
                    "id": 61184,
                    "name": "Cluster",
                    "attributes": []
                },
                {
                    "id": 0,
                    "name": "Basic",
                    "attributes": [
                        {
                            "id": 0,
                            "name": "zcl_version",
                            "value": 3
                        },
                        {
                            "id": 1,
                            "name": "app_version",
                            "value": 70
                        },
                        {
                            "id": 2,
                            "name": "stack_version",
                            "value": 0
                        },
                        {
                            "id": 3,
                            "name": "hw_version",
                            "value": 1
                        },
                        {
                            "id": 4,
                            "name": "manufacturer",
                            "value": "_TZE200_wfxuhoea"
                        },
                        {
                            "id": 5,
                            "name": "model",
                            "value": "TS0601"
                        },
                        {
                            "id": 6,
                            "name": "date_code",
                            "value": ""
                        },
                        {
                            "id": 7,
                            "name": "power_source",
                            "value": 1
                        }
                    ]
                }
            ]
        },
        {
            "id": 242,
            "status": 1,
            "device_type": 97,
            "profile_id": 41440,
            "manufacturer": null,
            "model": null,
            "output_clusters": [
                {
                    "id": 33,
                    "name": "GreenPowerProxy",
                    "attributes": []
                }
            ],
            "input_clusters": []
        }
    ],
    "signature": {
        "manufacturer": "_TZE200_wfxuhoea",
        "model": "TS0601",
        "node_desc": {
            "logical_type": 1,
            "complex_descriptor_available": 0,
            "user_descriptor_available": 0,
            "reserved": 0,
            "aps_flags": 0,
            "frequency_band": 8,
            "mac_capability_flags": 142,
            "manufacturer_code": 4417,
            "maximum_buffer_size": 66,
            "maximum_incoming_transfer_size": 66,
            "server_mask": 10752,
            "maximum_outgoing_transfer_size": 66,
            "descriptor_capability_field": 0
        },
        "endpoints": {
            "1": {
                "profile_id": 260,
                "device_type": 81,
                "input_clusters": [
                    4,
                    5,
                    61184,
                    0
                ],
                "output_clusters": [
                    25,
                    10
                ]
            },
            "242": {
                "profile_id": 41440,
                "device_type": 97,
                "input_clusters": [],
                "output_clusters": [
                    33
                ]
            }
        }
    },
    "class": "zigpy.device"
}

Non pas compatible pour le moment ya aucune cluster type on/off ou autres

Zut, dommage :woozy_face: J’aime bien ce que fait Loratap. Je vais aller voir du côté de Zigpy si je peux aider

Pas encore d’intégration visiblement

Salut
As tu essayé le bouton « Auto découverte des commandes d’information » sur la page du module ?

Salut, oui oui j’ai testé, rien n’est détecté. :face_with_head_bandage:

Merci pour ton idée

J’ai trouvé ce fichier :
https://raw.githubusercontent.com/juanjoSanz/zha-device-handlers/dev/zhaquirks/tuya/ts0601_switch_door.py

"""Tuya Garage Door Opener switches."""
from zigpy.profiles import zha
from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import (
    TuyaManufacturerClusterOnOff,
    TuyaManufCluster,
    TuyaOnOff,
    TuyaSwitch,
)


class TuyaGarageSwitchTO(TuyaSwitch):
    """Tuya garage door opener switch."""
        # "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, 
        #                       user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, 
        #                       mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, 
        #                       manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, 
        #                       maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, 
        #                       *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, 
        #                       *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, 
        #                       *is_security_capable=False)",
        # {
        #   "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
        #   "endpoints": {
        #     "1": {
        #       "profile_id": 260,          # 0x0104
        #       "device_type": "0x0051",
        #       "in_clusters": [
        #         "0x0000",             # Basic (0x0000)
        #         "0x0004",             
        #         "0x0005",
        #         "0xef00"
        #       ],
        #       "out_clusters": [
        #         "0x000a",
        #         "0x0019"              # OTA (0x0019)
        #       ]
        #     },
        #     "242": {
        #       "profile_id": 41440,
        #       "device_type": "0x0061",
        #       "in_clusters": [],
        #       "out_clusters": [
        #         "0x0021"
        #       ]
        #     }
        #   },
        #   "manufacturer": "_TZE200_nklqjk62",
        #   "model": "TS0601",
        #   "class": "zigpy.device.Device"
        # }
    signature = { 
        MODELS_INFO: [
            ("_TZE200_nklqjk62", "TS0601"),
        ],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            242: {
                PROFILE_ID: 0xA1E0,
                DEVICE_TYPE: 0x0061,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [0x0021],
            },
        },
    }
    
    replacement = {
        ENDPOINTS: {
            1: {
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufacturerClusterOnOff,
                    TuyaOnOff,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            242: {
                PROFILE_ID: 0xA1E0,
                DEVICE_TYPE: 0x0061,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [0x0021],
            },
        },
    }

Utile ?

Si tuyau a pas changé le fonctionnement oui tu peux essayer mais si ils ont changé le fonctionnement alors non… Mais ce fichier est assez compliqué à faire le mieux et de lire la documentation que propose zigpy pour savoir comment le faire

As-tu essayé, dans le plugin, avec un autre modèle TS0601 dans le fabricant Tuya ? Des fois cela fonctionne.
Édit : d’après le lien Loratap cela fonctionne qu’avec un contrôleur Loratap

ils disent tous ça pour vendre leur passerelle. Mais on fait du Zigbee ou on fait du propriétaire, si c’est pas du zigbee, ce ne devrait pas etre accepté dans la gamme zigbee.

oui, essayé, rien ne passe, ni en action ni en info

oui mais dans la liste des controleurs admis, il n’y a pas Loratap
image

Avec le Tuya, et dérivés, il y a des restrictions sur certains paramètres qui ne sont pas possible de gérer avec le plugin Zigbee

On me dit sur un autre canal que comme c’est une porte de garage, c’est crypté entre le module et la passerelle Tuya et c’ets pour cela que ce n’est pas compatible avec le plugin Zigbee, cela semble possible effectivement.
Mais la Serrure Danalock Zigbee est aussi un accès sécurisé et le plugin Zigbee la reconnait bien, donc à creuser…

Le fabricant de la serrure n’est pas le meme que celui de ton module tout simplement. Danalock suit les standard zigbee c’est absolument pas le cas de tuya sur aucun de leur module. Ils ont leur propre implémentation du zigbee et ne respect aucun standard, ce qui oblige, pour chaque module, a faire du reverse ingeneering et donc ca prend longtemps et c’est assez compliqué.

1 « J'aime »