Aller au contenu

Messages recommandés

Posté(e)

Après maintes et maintes recherches ... je confirme le bug et j'ai même l'explication.

 

{"Picture", idcam, {2, 8}}

 

Avec cette version de GEA quand il voit ceci : {2, 8} il essaie de trouver une correspondance avec d'autre option ... et pour lui, cela revient à allez voir si la valeur du module 2 est bien égale à 8 puis il renvoi ceci 

 

{"Picture", idcam, false}

 

C'est donc corrigé pour la future version.

 

  • Like 2
Posté(e)

Well done @Steven

 

Pour info, par curiosité, j'ai retesté PictureToEmail ;-), cela fonctionne parfaitement, avec 1 ou plusieurs destinataires.

@Sakkhho

en attendant la prochaine version cela répond aussi à ton besoin ;-)

  • Like 1
Posté(e)

@dvine

Je vois que je n'ai jamais répondu sur tes soucis de Open et Close. L'optimisation de la mémoire fonctionne ainsi :

  • Au premier passage, on analyse et enregistre toutes les {"", "", ...} utilisé dans le code 
  • Au 2ème passage, on supprime toutes celles qui ne sont pas utilisées.

Sauf que, dans le code de certaines option, j'utilise le code d'autre option. Dans le cas de "Open" ou "Close", je fais appel à "Value".

 

Donc si dans ton code tu n'utilises pas "Value", ce dernier va être supprimé de la mémoire .. et quand tu vas vouloir faire un "Open" ou "Close" .. et bien catastrophe.

 

Bien évidement c'est déjà corrigé pour la future version.

 

 

Pour ce qui est des logs, je vais voir ce que je peux faire mais vu que je n'aime pas les variables globales, il va falloir que je trouve quelque chose de convaincant.

 

 

Pour le JSON ... grrrrrr ... je te déteste car l'idée est bonne mais qu'elle va me donner du travail ;)

Posté(e)

merci,
 

J'ai d'abord voulu garder le code simple avec une condition avec le temps. Cela a mal tourné. J'ai maintenant essayé avec la condition additionnelle telle que la température extérieure de netatmo et alors le code va bien. J'ai lu la valeur netatmo de fibaro de mon père avec un plugin officiel J'ai besoin du JSON parce que Sankotronic du forum de fibaro fait beaucoup avec. Et j'utilise sa scène netatmo et ses VD au lieu du plugin officiel.

 

 --Rolluiken automatisch open in de ochtend   [ le code est correct ] 
GEA.add( {{"Time", "08:30"}, {"Value+", id["NETATMO_OUTDOOR_TEMP"], 0}}, 30, "", {"Open", {id["ROLLUIK_ZOLDER_RECHTS"], id["ROLLUIK_ZOLDER_LINKS"]}, 100} )

 

Posté(e)
il y a 16 minutes, dvine a dit :

j'utilise sa scène netatmo et ses VD au lieu du plugin officiel.

Me too ;-) Netamo Weather Sation and the VD Main indoor, Outdoor Module...etc..

 

Avec GEA tu peux lire les valeurs des Labels des VDs. You can read Label of VD.

 

Exemple pour le Outdoor Module :

 

GEA.add( {"Label+", <idVD_Outdoor>, "lblTemp", 0}, 30, "", {"Open", {id["ROLLUIK_ZOLDER_RECHTS"], id["ROLLUIK_ZOLDER_LINKS"]}}

 

L'inconvenient d'utiliser la station netatmo : les données coté serveur sont actualisées toutes les 10 mins depuis l'API

 

Posté(e)

merci je ne savais pas à propos de cette capacité.
Je vais tester cela plus tard cette semaine.
L'intervalle de 10 minutes est loin d'être idéal, mais pour les mesures de température, il est bon dans ma situation
Aux Pays-Bas, nous avons le site buienradar.nl qui est directement lisible et il y a un fibaro VD pour. Malheureusement pas pour les autres pays. Je l'utilise par exemple pour amener automatiquement l'auvent à l'intérieur.
Pour l'anémomètre, j'aurais aimé;)

Posté(e)
Le 15/01/2018 à 22:31, Steven a dit :

Alors mes tests sont concluant ... mais il y a un bug dans "Slider". Si dans tout ton code tu n'utilises pas "Label", il va se planter après quelques exécutions (je l'avais pas vu venir celle là).

 

Je te conseil donc, d'utiliser {"Label", ... } à la place de {"Slider", ...}

 

Ensuite pour plus de réactivité utilise le 0 à la place du 30 pour cette ligne ci :


 --  Mise à jour du thermostat à partir du Device 88	
    GEA.add( {"Global!", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}}, 0, "", {"Global", "ConsigneChauffage", {"Slider", 88, "slider_0_0"}} )  

 

Ainsi elle sera traité immédiatement après celles qui changent la consigne et non pas 30 secondes après.

 

Voilà, si cela ne fonctionne toujours pas, envoi moi ton script entier à steven.piccand@gmail.com je regarderais avec plaisir,

Steven, je t'envoie mon script car tout marche sauf l'écriture de la variable globale.

Ca marche une fois mas pas 2.

 

En gros aujourd'hui, la consigne est passée de 21 à 19 à 8h mais à 11h30 ... la consigne est tjs à 19 à 18h et ce n'est pas normal aujourd'hui.

 

Si tu peux m'expliquer le pourquoi du comment.

Posté(e)
Le 2018-01-07 à 23:21, MAM78 a dit :

 

Hello @Steven merci pour cette livraison.

 

Snif pour mes propositions :( mais, il n'y a pas seulement des corrections dans cette V6.04 :P 

 

Pour ne pas oublier, il reste si tu veux bien intégrer dans la prochaine version les corrections / évolutions ci-dessous : :13:

 

En attendant, je ferais des copier / coller :P

 

Pour ceux qui souhaitent continuer à tester ma version, voici le fichier construite sur la base de la V6.04 officielle de Steven et dans laquelle j'ai réintégré mes add-ons :

 

     gea_6_04-MAM78.lua

 

Change log :

 

-- ==========================================================
-- v.6.04 MAM78 modified the 7 jan. 2018 on the base of V6.04 from Steven
-- add : Sonos TTS message function
--       Exemple :


GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "Nous sommes le #datefull# il fait dehors #tempsext# degrer et le temps est #value[2]#", 40}, "Annonce de la météo")
GEA.add ({{"Weather!", "Temperature" ,""},{"WeatherLocal!",""}}, 0, "We are #datefull# the outside temperature is #tempsext# degrees and the weather is #value[2]#", {"sonostts", id["VD_SONOS"], id["VD_SONOS_BT"], "We are the #datefull# the outside temperature is #tempsext# degrees and the weather is #value[2]#", 40}, "Wheater annonce")

-- add : Sonos MP3 message function and add sonosMP3foldername variable,
--       Exemple :


GEA.add({id["DETECTEUR_PORTE_GARAGE"], {"Time", "Sunset-15", "Sunrise+5"}}, -1, "La porte du garage vient d être fermée", {{"Inverse"}, {"Sleep", 7, {"sonosmp3", id["VD_SONOS"], id["VD_SONOS_BT"], "Fermeture Porte Cave.mp3", 40}}}, "Fermeture porte Garage")

-- add : #tempsext# substitution text for the external temperature rounded without decimals

-- mod : debug the transpose function
-- mod : modify the action message in debug windows with the transposed values
-- ==========================================================

 

1) Fonctions Sonos

 

Ajouter :


    sonosmp3 = {name = "Sonos MP3",
                    action = function(vd_id, button_id, filename, volume)
                      if (not volume) then volume = 30 end
                      local _f = fibaro
                      local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
                      _x:set(tostring(vd_id), { stream = {stream=GEA.sonosMP3foldername..filename, source="local", duration="auto", volume=volume} })
                      _f:call(vd_id, "pressButton", button_id)
                    end
                },

    sonostts = {name = "Sonos TTS",
                    action = function(vd_id, button_id, message, volume)
                      local message = GEA.getMessage(message)
                      local langue = "en-US"
                      if GEA.language:lower() == "fr" then
                        langue = "fr-FR"
                      end
                      if (not volume) then volume = 30 end
                      local _f = fibaro
                      local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
                      _x:set(tostring(vd_id), { tts = {message=message, duration='auto', language=langue, volume=volume} })
                      _f:call(vd_id, "pressButton", button_id)
                    end
                }

Ajouter dans la partie -- CONFIGURATON GENERALE : 


  GEA.sonosMP3foldername = "//xxxxxxxx/music/Domotique/Domotique/iTunes Media/Music/Sons Domotiques/Sons Domotiques/"

 

3) Substitutions de valeurs #tempsext#

 

Ajouter :


      if (message:find("#tempsext#")) then
      	message = message:gsub("#tempsext#", tonumber(string.format("%.0f", GEA.getOption({"weather", "Temperature"}).getValue())))
      end

 

3) Fonction transpose

 

Remplacer :


      transpose = {name = "Transpose", 
                  getValue=function(table1, table2, value) tools.error(table1) return GEA.translate(value, table1, table2) end
                },

par :


    transpose = {name = "Transpose",
                     getValue=function(value, table1, table2) return GEA.translate(value, table1, table2) end,
                     action  =function(value, table1, table2) return GEA.translate(value, table1, table2) end
                },

 

3) Clarifier le contenu du mode debug, en ligne 1341 :

 

Remplacer :


          tools.debug("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;["..GEA.trad.action.."] " .. entry.actions[i].getLog())

Par :


          tools.debug("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;["..GEA.trad.action.."] " .. GEA.getMessage(entry.actions[i].getLog()))

 

I can see all the things applied in the code you attached except the #tempsext". Is that the only thing needed in your code? (Since the translation is not done while testing code)

 

- Can I translate to only say/message the weekday? Like "Today its Monday and the weather condition is Sunny"

Posté(e)

Hello, je pense que quelqu'un a deja pose la question mais je ne sais plus où.

J'utilise le VD sonos pour lancer des messages TTS. Tout cela fonctionne bien.

Mais, parfois j'écoute de la musique sur mes Sonos via Spotify.

le TTS vient interrompre l'album lu par Spotify mais une fois l'annonce terminée, j'aurais voulu que la lecture de l'album reprenne ensuite.

 

Y a t il moyen ou est ce impossible?

 

A+

Posté(e)
Le 17/01/2018 à 18:02, Jacquominot a dit :

Steven, je t'envoie mon script car tout marche sauf l'écriture de la variable globale.

Ca marche une fois mas pas 2.

 

En gros aujourd'hui, la consigne est passée de 21 à 19 à 8h mais à 11h30 ... la consigne est tjs à 19 à 18h et ce n'est pas normal aujourd'hui.

 

Si tu peux m'expliquer le pourquoi du comment.

Steven,

 

J'ai un autre soucis avec les lignes Global + et -. Ma maison était à 25 degrés ce soir. LEs chauffages ont tourné à fond toute la journée alors que la consigne (slider) et la variable globale étaient à 21.

Posté(e)

Je cherche encore mais je ne vois pas de véritable problème. Je suis en train de préparer un version un peu plus réactive car avec @pepite, on a remarqué que dans certains car, heureusement assez rare, GEA ne captais pas bien les instructions {"Time", "20:00"}. En effet, si GEA se déclenche à 20:00:29 secondes, et que le temps de traitement des lignes au dessus de celle qui contient le "Time" met plus de 1s, il va tester la ligne à 20:00:30 comme il est indiqué que la ligne doit être valable au moins 30 secondes, il va attendre le prochain passage ... par contre au prochain passage, il sera 20:01:00 donc la condition de 20:00 ne sera plus correcte.

 

Sinon, j'ai repéré 2 choses étranges dans ton code :

 

   GEA.add({{"Days", "Monday,Thursday,Friday"},{"Time", "16:30",}},30,"",{"Label", 88, "slider_0_0", 21})

Il y a une virgule qui traîne dans le "Time".

 

Ensuite, j'ai un problème de compréhension dans ces lignes :

    GEA.add({"Global+", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOff",id["CHAUFFE_BUREAU_JK"]} )
    GEA.add({"Global",  "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOff",id["CHAUFFE_BUREAU_JK"]} )
    GEA.add({"Global-", "ConsigneChauffage", {"Value", id["TEMP_BUREAU_JK"]}}, 1*60, "", {"turnOn",id["CHAUFFE_BUREAU_JK"]} )

Si je prends la 1ère ligne, je lis ceci :

 

Si la température souhaitée est plus grande que la température du bureaux ... alors j'éteins le chauffage dans le bureau.

Donc si ConsigneChauffe = 20 et que la température du bureau est 19 ... alors j'éteins le chauffage

 

Et la 3ème

Si la température souhaitée est plus basse que celle du bureau alors j'allume le chauffage

Donc si ConsigneChauffe = 19 et que la température du bureau est 20 ... alors j'allume le chauffage

 

Heuuuu, ne serais-ce pas une inversion ?

 

 

Je travaille d'arrache pieds sur la version 6.05 qui corrige ces histoires de Time ... dans un 1er temps, tu peux faire {"Time", "16:30", "16.31"}, laissant donc un intervalle d'une minute, pour garantir qu'il n'y aura plus de soucis à ce niveau là.

 

 

 

  • Like 2
Posté(e) (modifié)

@Steven @pepite,

 

sur une ligne avec en condition avec un FGMS (mouvement) est ce que la logique voudrait pas qu'on mette ces lignes en -1 ? car avec un 30, j'ai l'impression qu'il faut plus qu'une detection unique , mais plutôt plusieurs mouvement 'permanent' (donc FGMS toujours en alerte) pour faire les 30s de check.

 

vous en pensez quoi ?

Modifié par Sakkhho
Posté(e)

Oui c'est -1

 

Car 30 signifie que la condition (la détection) doit persister au moins 30s ce qui n'est jamais le cas avec un détecteur.

 

  • Thanks 1
Posté(e) (modifié)

Je vous ai dit que cette règle fonctionnait maintenant. J'ai testé cela 3 ou 4 fois.
Ce matin, le code ne fonctionne plus. Le redémarrage de GEA n'a pas d'importance si j'utilise la notation -1 ou 30

 

  --Rolluiken automatisch open in de ochtend 
GEA.add( {{"Time", "09:07"}, {"Value+", id["NETATMO_OUTDOOR_TEMP"], 0}}, 30, "", {"Open", {id["ROLLUIK_ZOLDER_RECHTS"], id["ROLLUIK_ZOLDER_LINKS"]}, 100} )

 

Après un nouveau redémarrage et que GEA fonctionne pour la première fois pendant 5 minutes, le code est maintenant exécuté. tire-moi;)

Modifié par dvine
  • Haha 1
Posté(e)

@dvine

Par le JSON est-ce que cela pourrais te convenir :

 

GEA.( {"JSONDecodeFromGlobal+", "MyGlobalVariable", "properties.modules[2].value", 0}, "It's not so cold", ...  )

 

{"JSONDecodeFromGlobal, <global variable>, <json property>}

 

et

 

{"JSONDecodeFromLabel, <id vd>, <label name>, <json property>}

  • Like 1
Posté(e)

My doorlocks are no longer working in 6.04.

 

Lock is with type "Doorlock" and is included in secure mode.

 

GEA.add({"Doorlock", id["UTILITY_DOOR"], 0}, 30*60, "Garage door unlocked for >30min")
    

0s validation goes well but then second loop after 30s is goes into error.

 

[DEBUG] 11:15:43: [1;31m2018-01-19 11:15:43.483286 [ fatal] LUA error: /opt/fibaro/scenes/195.lua:783: attempt to index field 'value' (a nil value)

 

Posté(e)

je suis en train d'optimiser  mes lignes GEA

que donne maintenant ceci 

{"Time", "06:00", "06:01"},{"Time", "17:00", "17:01"}

GEA.add({Chauffage,{"Time", "06:00", "06:01"},{"Time", "17:00", "17:01"}}, 30, "Chauffage Entrée 22°", {"ThermostatLevel", id["TT_ENTREE"], 22})

on verifie l'un ou l'autre TIME ou on verifie les 2 :D

 

avant c'était l'un ou l'autre donc j'ai laissé comme c'était et basculé le time en condition, mais j'ai un doute du coup maintenant

(cela semble fonctionner en revanche)

Posté(e)

@Sakkhho, @pepite

Alors, Pepite à raison, mais GEA le fait automatiquement. C'est à dire que quand il trouve plusieurs heures dans les conditions, il les transforme en {"Or", heure1, heure2, ...}

Donc ta syntaxe est correcte ET pepite à raison :60:

 

@Kristiano

Already corrected in the next version ... with sonos btw ;)

Posté(e)

ok cool, je mets au propre 

 

autre question

pour le -1 sur une variable globale ? dans l'état je mets quoi ?

 

    GEA.add({"Global", "Tele", "On"}, -1, "Sonos en mode TV", {"Function", function() fibaro:call(id["SONOS_REMOTE"], "setSlider",15, 80) end })-- On fixe le son de la PlayBar à 80%

 

 

Posté(e)
il y a 22 minutes, pepite a dit :

@Kristiano

could you do this please:

 

http: // iphc2 / api / devices / iddoor

 

and put the result here.

 

 

{"id":506,"name":"Förrådsdörr","roomID":473,"type":"com.fibaro.doorLock","baseType":"com.fibaro.securityMonitoring","enabled":true,"visible":true,"isPlugin":false,"parentId":0,"remoteGatewayId":1,"remoteDeviceID":32,"interfaces":["battery","fibaroFirmwareUpdate","pinCode","remoteGateway","zwave","zwaveAlarm"],"properties":{"alarmLevel":"0","alarmType":"0","batteryLevel":"100","batteryLowNotification":"true","configured":true,"dead":"false","defInterval":"0","deviceControlType":"0","deviceIcon":"1001","emailNotificationID":"0","emailNotificationType":"0","endPointId":"0","firmwareUpdate":"{\"info\":\"\",\"progress\":0,\"status\":\"UpToDate\",\"updateVersion\":\"1.0\"}","liliOffCommand":"","liliOnCommand":"","log":"","logTemp":"","manufacturer":"","markAsDead":"true","maxInterval":"0","maxUsers":"52","minInterval":"0","model":"","nodeId":"2","parameters":[],"parametersTemplate":"0","pollingTimeSec":0,"productInfo":"2,48,0,3,0,1,1,0","pushNotificationID":"0","pushNotificationType":"0","remoteGatewayId":"0","saveLogs":"true","secured":"255","serialNumber":"","smsNotificationID":"0","smsNotificationType":"0","stepInterval":"0","updateVersion":"","useTemplate":"false","userCodes":"[{\"id\":1,\"name\":\"\",\"status\":\"Unknown\",\"update\":\"InProgress\"},{\"id\":2,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":3,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":4,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":5,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":6,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":7,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":8,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":9,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":10,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":11,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":12,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":13,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":14,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":15,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":16,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":17,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":18,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":19,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":20,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":21,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":22,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":23,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":24,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":25,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":26,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":27,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":28,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":29,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":30,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":31,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":32,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":33,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":34,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":35,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":36,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":37,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":38,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":39,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":40,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":41,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":42,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":43,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":44,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":45,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":46,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":47,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":48,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":49,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":50,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":51,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"},{\"id\":52,\"name\":\"\",\"status\":\"Available\",\"update\":\"Ok\"}]","userDescription":"","value":"true","zwaveCompany":"","zwaveInfo":"3,4,5","zwaveVersion":"1.0"},"actions":{"abortUpdate":1,"getMaxUsers":0,"getUserCode":1,"reconfigure":0,"retryUpdate":1,"secure":0,"setInterval":1,"setUserCode":4,"startUpdate":1,"unsecure":0,"updateFirmware":1},"created":1515063713,"modified":1515063713,"sortOrder":162}

 

×
×
  • Créer...