Combee2 Sonoff SNZB-01P

Forum dédié au ZigBee : objets, interfaces ...
Plugins DeConz et ZigBee2MQTT
Pour les questions concernant le plugin ZigBeeForDomoticZ, merci d'utiliser le forum spécifique en dessous.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Combee2 Sonoff SNZB-01P

Message par Keros »

Sans avoir la ligne d'erreur dans les logs, il sera difficile de faire une analyse ...

Pour découvrir et comprendre comment fonctionne la programmation / les conditions, je te propose de regarder les petits guides que j'ai écrits dans ma présentation : il y en a un intitulé Débuter en programmation (lien dans ma signature).
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
DANIEL
Messages : 148
Inscription : 09 avr. 2016, 10:01

Re: Combee2 Sonoff SNZB-01P

Message par DANIEL »

Je n'avais pas pensé à modifier debug c'est en lisant "Débuter en programmation" cela pourrais t-il aider, mais je ne vois aucune erreur.
En faite si je comprend bien le sketch Lua ne commande pas le Device "Eclairage_Froid" mais ne comprend pas pourquoi?

2025-10-09 09:47:36.042 deCONZ zigbee Bridge: Received 140 bytes of data
2025-10-09 09:47:36.042 deCONZ zigbee Bridge: Received 169 bytes of data
2025-10-09 09:47:36.042 deCONZ zigbee Bridge: onMessage called
2025-10-09 09:47:36.043 deCONZ zigbee Bridge: ### WebSocket Data : {'attr': {'lastseen': '2025-10-09T07:47Z'}, 'e': 'changed', 'id': '19', 'r': 'sensors', 't': 'event', 'uniqueid': '38:5c:fb:ff:fe:ce:03:a9-01-0006'}
2025-10-09 09:47:36.043 deCONZ zigbee Bridge: onMessage called
2025-10-09 09:47:36.043 deCONZ zigbee Bridge: ### WebSocket Data : {'e': 'changed', 'id': '19', 'r': 'sensors', 'state': {'buttonevent': 1002, 'lastupdated': '2025-10-09T07:47:35.992'}, 't': 'event', 'uniqueid': '38:5c:fb:ff:fe:ce:03:a9-01-0006'}
2025-10-09 09:47:36.044 deCONZ zigbee Bridge: ### Update device (deCONZ - SNZB01P) : {'nValue': 10, 'sValue': '10'}
2025-10-09 09:47:36.044 (deCONZ - SNZB01P) Updating device from 0:'Off' to have values 10:'10'.
2025-10-09 09:47:38.069 deCONZ zigbee Bridge: onHeartbeat called
2025-10-09 09:47:38.070 deCONZ zigbee Bridge: ### Update device (deCONZ - SNZB01P) : {'nValue': 0, 'sValue': 'Off'}
2025-10-09 09:47:38.070 (deCONZ - SNZB01P) Updating device from 10:'10' to have values 0:'Off'.
Dernière modification par Keros le 09 oct. 2025, 20:26, modifié 1 fois.
Raison : Ajout des balises pour les logs. Merci de lire la section Bien utiliser le forum
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Combee2 Sonoff SNZB-01P

Message par Flying Domotic »

Le plus simple pour écrire un script quand on débute est d'utiliser le template proposé par Domoticz.

Pour l'obtenir, aller dans le menu "Configuration" > "Plus d'options" > "Évènements", puis cliquer sur le "+" à la fin de la liste des onglets et choisir "LUA" > "Device".

On tombe sur ça :

Code : Tout sélectionner

--
-- Domoticz passes information to scripts through a number of global tables
--
-- device changed contains state and svalues for the device that changed.
--   devicechanged['yourdevicename'] = state 
--   devicechanged['svalues'] = svalues string 
--
-- otherdevices, otherdevices_lastupdate and otherdevices_svalues are arrays for all devices: 
--   otherdevices['yourotherdevicename'] = "On"
--   otherdevices_lastupdate['yourotherdevicename'] = "2015-12-27 14:26:40"
--   otherdevices_svalues['yourotherthermometer'] = string of svalues
--
-- uservariables and uservariables_lastupdate are arrays for all user variables: 
--   uservariables['yourvariablename'] = 'Test Value'
--   uservariables_lastupdate['yourvariablename'] = '2015-12-27 11:19:22'
--
-- other useful details are contained in the timeofday table
--   timeofday['Nighttime'] = true or false
--   timeofday['SunriseInMinutes'] = number
--   timeofday['Daytime'] = true or false
--   timeofday['SunsetInMinutes'] = number
--   globalvariables['Security'] = 'Disarmed', 'Armed Home' or 'Armed Away'
--
-- To see examples of commands see: http://www.domoticz.com/wiki/LUA_commands#General
-- To get a list of available values see: http://www.domoticz.com/wiki/LUA_commands#Function_to_dump_all_variables_supplied_to_the_script
--
-- Based on your logic, fill the commandArray with device commands. Device name is case sensitive. 
--
commandArray = {}

-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
    print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");
--    if (deviceName=='myDevice') then
--        if deviceValue == "On" then
--            print("Device is On")
--        elseif deviceValue == "Off" then
--            commandArray['a device name'] = "On"
--            commandArray['another device name'] = "Off AFTER 10"
--            commandArray['Scene:MyScene'] = "Off"
--            commandArray['Group:My Group'] = "Off AFTER 30"
--        end
--    end
end

return commandArray
Dans ton cas, il suffit de remplacer :

Code : Tout sélectionner

--    if (deviceName=='myDevice') then
--        if deviceValue == "10" then
--            print("Device is On")
--        elseif deviceValue == "Off" then
--            commandArray['a device name'] = "On"
--            commandArray['another device name'] = "Off AFTER 10"
--            commandArray['Scene:MyScene'] = "Off"
--            commandArray['Group:My Group'] = "Off AFTER 30"
--        end
--    end
par :

Code : Tout sélectionner

    if (deviceName=='deCONZ - SNZB01P') then
        if deviceValue == "10" then
            if (otherdevices['deCONZ-Eclairage_Froid']== 'On') then
                commandArray['deCONZ-Eclairage_Froid'] = 'Off'
            else
                commandArray['Scene:Light Eclairage_Froid'] = 'On'
            end
        end
    end
Remarque : le switch "deCONZ - SNZB01P" semble être un sélecteur, dont les valeurs sont "Off" pour zéro et "10" pour 10, qui est la première option. Si on veut tester sur "B1", il faudra changer plus tard les valeurs texte de ce switch (lire un peu la doc pour voir comment on fait ça). Quand ça sera fait, le script ne fonctionnera que si on remplace le test if deviceValue == "10" par if deviceValue == "B1" (ou en fait la valeur affectée au niveau 10).
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Combee2 Sonoff SNZB-01P

Message par Thorgal »

Tu peux utiliser

Code : Tout sélectionner

print(devicechanged['xxxxxxxxxx'])
Pour avoir la valeur du bouton quand tu presses dessus, vu qu'on est deja sur que la pression est detectée.

@Flying Domotic dans ton code tu utilises un coup "commandArray['deCONZ-Eclairage_Froid']" et un coup "commandArray['Scene:Light Eclairage_Froid']"

D'apres sa capture le nom serait juste "commandArray['Eclairage_Froid']"
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Combee2 Sonoff SNZB-01P

Message par Flying Domotic »

Merci pour la remarque, j'avais juste copié/collé le contenu depuis l'exemple de script donné (et je n'utilise pas Deconz)
Dernière modification par Keros le 10 oct. 2025, 20:34, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Combee2 Sonoff SNZB-01P

Message par Thorgal »

Pas de soucis, c'est juste que pour moi son soucis c'est juste des problèmes de typos, donc ça se joue a pas grand chose.
DANIEL
Messages : 148
Inscription : 09 avr. 2016, 10:01

Re: Combee2 Sonoff SNZB-01P

Message par DANIEL »

Il n'y à rien à faire je n'arrive pas à commander le Device lumière. Le bouton est détecter dans les log.
mais je n'ai toujours aucune action dans les log concernant le device lumière.
Je lis et je relis je teste, toujours le même problème.
Lorsque j'utile ton exemple j'ai un message d'erreur aves la fonction else à la ligne 9
2025-10-30 11:04:11.452 Error: EventSystem: in Script #1: [string " ..."]:9: <eof> expected near 'else'
:mrgreen:
Dernière modification par Keros le 30 oct. 2025, 12:35, modifié 1 fois.
Raison : Ajout des balises pour les log
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Combee2 Sonoff SNZB-01P

Message par Keros »

Remets nous ton code complet et un screenshot du des widgets (c'est pour vérifier les noms utilisés).
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
DANIEL
Messages : 148
Inscription : 09 avr. 2016, 10:01

Re: Combee2 Sonoff SNZB-01P

Message par DANIEL »

Je vais vous envoyer mon code, mais avant je pense peut être, être sur une piste.
Lorsque j'actionne le widget "Eclairage froid" dans Domoticz la lumière s'allume bien et le widget dans Phoscon s'allume bien également, jusque ici pas de problème.
Par contre lorsque j'actionne uniquement le widget dans Phoscon il n'y à aucune réaction, cela est t-il normal?
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Combee2 Sonoff SNZB-01P

Message par Thorgal »

Peut etre as tu configuré un groupe dans Phoscon ? (Car de mon coté je ne vois pas comment tu peux avoir un "widget" dedié a ta lampe sous Phoscon, quand on va dans la liste des "lampes" ceux-ci ne sont pas selectionnable).

Mais on galere deja juste avec Deconz et Domoticz, donc pour le moment on va oublier Phoscon.

Le bouton est detecté
Le widget dans domoticz fonctionne

Il manque juste 4 lignes de code pour lier les deux, juste a voir les noms utilisés.
Répondre