-
Compteur de contenus
6 715 -
Inscription
-
Dernière visite
-
Jours gagnés
124
Tout ce qui a été posté par Krikroff
-
Je ferais un truc comme ça pour la logique de traitement local on = "ISCP\0\0\0\16\0\0\0\11\1\0\0\0!1PWR01\r"; local off = "ISCP\0\0\0\16\0\0\0\11\1\0\0\0!1PWR00\r"; parsePowerState = function(str) if (str ~= nil and string.len(str) == 24) then local r = str:match('!1PWR(.+)\r'); if (r ~= nil) then return tonumber(r); end end return 0; end fibaro:debug(parsePowerState(on)); fibaro:debug(parsePowerState(off)); local result = on; if (parsePowerState(result) == 1) then fibaro:debug("Ampli sur ON"); elseif (parsePowerState(result) == 0) then fibaro:debug("Ampli sur OFF"); else -- TODO end
-
Et pourquoi pas : if (tonumber(cmd_value) > 1 and retry < _maxRetryProcess) then return _checkPowerState(retry + 1); else return tonumber(cmd_value); end mais quelles sont valeurs possibles pour cmd_value ? PS: aussi, pour "catcher" plus facilement le code en phase de conception tu peux enlever le pcall
-
Benjy, il me semble que le code return tonumber(cmd_value); ne sera jamais exécuté car avant tu as un return dans ton if mais aussi dans ton else ...
-
Topic unique S.a.h.r.a Et Hc2
Krikroff a répondu à un(e) sujet de Moicphil dans Multimédia (audio, vidéo ...)
JP Encausse fait un travail génial S.A.R.A.H . Il faut au moins jeter un œil ! -
Oui c'est faisable mais les virtual devices ne sont pas optimisés pour cela... Il faut attendre la V4 pour cela je pense!
-
Encore en déplacement aujourd'hui je ne vais donc pas pouvoir d'aider pour l'instant ! Mais je suis certain que c'est un problème d’échappement cf. la sorite du debug... j'ai ma petite idée sur la question , peut être dans la soirée ou demain.
-
T’inquiètes Benjy, il y a des oreilles pour t’écouter . C'est cool que ça avance bien ! Je me demande pourquoi le string.sub(result, 22, 23) marche et pas le reste, un problème d’échappement dans la chaine peut-être ? un fibaro:debug ne sortait rien ?
-
Création d'une page web domotique reunissant HC2,Fox,Netatmo
Krikroff a répondu à un(e) sujet de q.philippe dans Le bistrot
Toujours pas ? C'est fou ça... Merci pour cette rectification Phil Il reste open remote alors même si je ne toujours pas très convaincu ! Si tu as le temps et les connaissances: php ou .net pour la logique métier etc. et JQuery pour le Front End -
Je pense que ta scène ne redémarre pas a cause du if (sourceTrigger["type"] == "autostart") then La condition autostart est il me semble vérifiée uniquement si la scène est mise àjour ou lorsque le service du HC2 redémarré. Tu peux essayer en enlevant cette condition ?
-
Effectivement il est plutôt pas mal, mais 600 Euros pour le V600 c'est un peu abusé juste pour la biométrie ! Greg tu risques bien de faire fortune avec ton projet
-
Création d'une page web domotique reunissant HC2,Fox,Netatmo
Krikroff a répondu à un(e) sujet de q.philippe dans Le bistrot
Oui c'est tout àfait possible mais il faut un minimum de connaissance pour cela car beaucoup de techno sont àmettre en œuvre, avec de la motivation OUI ! Sinon tu connais ImperiHome, c'est sur android mais cela pourrait répondre àtes besoins peut-être ? -
Salut Benjy , oui pour l'IP et le Port il faut utiliser fibaro:get(fibaro:getSelfId(), "IPAddress") et fibaro:get(fibaro:getSelfId(), "TCPPort") ... Je vais essayer de jeter un œil sur le retour d'info dans la soirée si possible
-
Bienvenue Stéphane
-
Encore un Nouveau en Domotique
Krikroff a répondu à un(e) sujet de Senseibr dans Nouveau ? Présentez-vous
Bienvenue sur le forum Senseibr ... Tu auras bien le temps de changer d'avis -
Le sujet m’intéresse aussi, rien de biométrique en Natif Z-wave il me semble !
-
Peux tu poster la scène 1 ? Étrange... C'est quoi la version de ton HC2 ? stable ou bêta ?
-
Tu peux essayer ce code qui devrait logiquement faire un mute sur un ampli Onkyo ? --[[ %% properties %% globals --]] fibaro:log("Start process"); local _deviceIp = "192.168.1.49"; local _devicePort = 60128; local _maxRetryProcess = 2; local function _process(retry) retry = retry or 0; --open the socket local tcpSocket = Net.FTcpSocket(_deviceIp, _devicePort); --set the read timeout tcpSocket:setReadTimeout(250); --notify user fibaro:log("Try Mute on, #" .. retry .. " please wait..."); fibaro:sleep(250); --send packet local bytes, errorCode = tcpSocket:write("ISCP\0\0\0\16\0\0\0\9\1\0\0\0!1AMT00\r"); --check for error if errorCode == 0 then --cli should return the string sent if success local result = tcpSocket:read(); -- could compare to the encoded version of the call to confirm success fibaro:log(result); fibaro:sleep(1000); return true; else if retry < _maxRetryProcess then fibaro:log("Retry process, please wait..."); fibaro:sleep(1000); return _process(retry + 1); end return false; end end local f, result = pcall(_process); if (f) then if (result == true) then fibaro:log("Command successufully transmited."); else fibaro:log("Cannot send command!"); end else fibaro:log("Error: " .. f); end Adaptation de mon code par fuuss et rafal_II du fofo inter fibaro. c'est par ici: http://forum.fibaro.com/viewtopic.php?t=2974 rafal_II a publié un VD qui pourrait t'aider
-
Peux tu ajouter un fibaro:debug dans ta scène ID#4 afin de voir si réellement elle démarre ou pas ...
-
Moi j'ai une variable prédéfinie "Phases journée" avec Jour et Nuit. Cette variable est mise à jour avec une scène. Mais une variable simple marche très bien aussi par ex: "sunsetHour" avec comme valeur 0, mis à jour aussi avec une scène. Pour le CAST en Lua je fais souvent cela : local currentTime = tonumber(os.date("%H%M")); if (currentTime >= tonumber(string.format("%02d%02d", "11", "00"))) then -- TODO ... end pour la mise à jour de la variable je ferais un truc comme ça... Ps: il y a des debugs pour bien comprendre ... local currentTime = os.date("%H%M"); fibaro:debug("currentTime: " .. tonumber(currentTime)); local sunriseHour = string.gsub(fibaro:getValue(1, 'sunriseHour'), ":", ""); fibaro:debug("sunriseHour: " .. tonumber(sunriseHour)); local sunsetHour = string.gsub(fibaro:getValue(1, "sunsetHour"), ":", ""); fibaro:debug("sunsetHour: " .. tonumber(sunsetHour)); if (tonumber(currentTime) >= tonumber(sunriseHour) and tonumber(currentTime) <= tonumber(sunsetHour)) then fibaro:debug("Day Time..."); else fibaro:debug("Night Time..."); end
- 62 réponses
-
- Script lua
- simulation
-
(et 1 en plus)
Étiqueté avec :
-
Pour tester l'heure soit tu fais une convention en timestamp pour travailler sur du numérique soit tu utilises os.difftime (t2, t1)... http://www.lua.org/pil/22.1.html L'utilisation d'une variable jour / nuit n'est pas inintéressante bien au contraire, àtoi de voir ! Envoyé de mon iPhone.
- 62 réponses
-
- Script lua
- simulation
-
(et 1 en plus)
Étiqueté avec :
-
Tu peux utiliser la fonction "insérer un extrait de code" c'est <> dans l'éditeur (sous le ).
-
Il est impossible de créer directement une variable avec des lettres. Il faut créer la variable avec 0 par exemple et la mettre àjour avec un fibaro:setGlobal et la tout est ok: lettres, true/false, etc...
-
je trouve étrange la ligne 115, oui effectivement c'est pas une variable global mais une variable système avec une heure donc pourquoi une comparaison true/false ? Donc il doit manquer une variable qui est mise àjour avec un code comme celui-ci depuis un scène: --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "sunsetHour")) ) ) then fibaro:setGlobal("sunsetHour", true); end ou juste une comparaison si heure > fibaro:getValue(1, "sunsetHour")... Mais je suis aussi fatigué donc ...
- 62 réponses
-
- Script lua
- simulation
-
(et 1 en plus)
Étiqueté avec :
-
Pourrais tu vérifier l'état de la variable sunsetHour dans le panneau Variables lorsque le script devrait fonctionner ? Il devrait aussi avoir dans le debug une ligne Todays sunset: ...
- 62 réponses
-
- Script lua
- simulation
-
(et 1 en plus)
Étiqueté avec :