Page 7 sur 8
Re: Combee2 Sonoff SNZB-01P
Publié : 08 oct. 2025, 20:45
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).
Re: Combee2 Sonoff SNZB-01P
Publié : 09 oct. 2025, 09:49
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'.
Re: Combee2 Sonoff SNZB-01P
Publié : 09 oct. 2025, 10:03
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).
Re: Combee2 Sonoff SNZB-01P
Publié : 09 oct. 2025, 18:01
par Thorgal
Tu peux utiliser
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']"
Re: Combee2 Sonoff SNZB-01P
Publié : 09 oct. 2025, 21:27
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)
Re: Combee2 Sonoff SNZB-01P
Publié : 10 oct. 2025, 15:48
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.
Re: Combee2 Sonoff SNZB-01P
Publié : 30 oct. 2025, 11:06
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'

Re: Combee2 Sonoff SNZB-01P
Publié : 30 oct. 2025, 12:37
par Keros
Remets nous ton code complet et un screenshot du des widgets (c'est pour vérifier les noms utilisés).
Re: Combee2 Sonoff SNZB-01P
Publié : 01 nov. 2025, 18:09
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?
Re: Combee2 Sonoff SNZB-01P
Publié : 02 nov. 2025, 10:11
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.