Aller au contenu

Did

Membres confirmés
  • Compteur de contenus

    9 225
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Did

  1. Did

    VD Robonect pour HC2

    Bonjour tout le monde, J'ai installé mon module Robonect sur l'Automower, tout fonctionne parfaitement sans les remontées vers la HC2, mais après pas mal de recherche, je suis enfin tombé sur un VD pour HC2 concernant la carte Robonect (sur leur site d'ailleurs, je ne l'avais pas vu la première fois). https://robonect.de/viewtopic.php?f=12&t=287 Le problème est qu'il est en allemand, j'ai commencé à traduire quelques étiquettes, entrer mes identifiants et créer les trois variables requises, il fonctionne mais quelques petits soucis subsistent, même en rentrant les numéros des icônes, celle du VD reste invariablement sur la OFFline (même quand elle tond). Je n'ai pas non plus encore testé les boutons de mode, juste le "Statut". Voici la mainloop (je vous livre celle du VD d'origine pour ne pas laisser mes identifiants): fibaro:debug('Starte PING') local IP = '192.168.xx.xx' local PORT = 80 local versuche = 3 local iconOFFLINE = "1009" -- ANPASSEN; Gerät ist offline local iconONLINE = "1001" -- ANPASSEN; Gerät ist online local iconCHECK = "1003" -- ANPASSEN; Gerät wird angepingt local function _ping(retry) fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconCHECK) retry = retry or 0 local tcpSocket = Net.FTcpSocket(IP, PORT) tcpSocket:setReadTimeout(250) fibaro:debug('Suche..., versuche #' .. retry .. ' bitte warten...') fibaro:sleep(250) local bytes, errorCode = tcpSocket:write('ping') if errorCode == 0 then return true else if retry < versuche then fibaro:debug('Nicht gefunden, erneut versuchen, bitte warten...') fibaro:sleep(1000); return _ping(retry + 1) end return false end end local f, result = pcall(_ping) if (f) then if (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Aktiv" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Aktiv') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "pressButton", "6"); fibaro:debug("Status wurde abgefragt, warte für 2 Minuten"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); fibaro:sleep(120000) elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Standby" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Standby') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "pressButton", "6"); fibaro:debug("Status wurde abgefragt, warte für 30 Minuten"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); fibaro:sleep(1800000) elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Deaktiviert" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Deaktiviert') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "pressButton", "6"); fibaro:debug("Status wurde abgefragt, warte für 30 Minuten"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); fibaro:sleep(1800000) elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Manuell" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Manuell') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "pressButton", "6"); fibaro:debug("Status wurde abgefragt, warte für 10 Minuten"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); fibaro:sleep(600000) else fibaro:debug(IP.. ':' .. PORT .. ' wurde nicht gefunden.') fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconOFFLINE) fibaro:call(175, "setProperty", "currentIcon", iconOFFLINE); fibaro:debug("Status des Automower wird aufgrund mangelnder Erreichbarkeit nicht abgefragt") fibaro:debug("Status wurde nicht abgefragt, warte für 10 Minuten)"); fibaro:sleep(600000) end else fibaro:debug('Error: ' .. f) end Et le bouton n°6 "Status" (les autres n'ont que quelques lignes): -- Setze Verbindungsdaten -- Benutzername Passwort fuer MOWER mowerUser = "MOWER" mowerPW = "PWD" -- hole ip adresse aus virtuellem modul selfId = fibaro:getSelfId() mowerIP = fibaro:get(selfId, "IPAddress") mowerPort = fibaro:get(selfId, "TCPPort") -- setze variable MOWER aus IP und Logindaten MOWER = Net.FHttp(mowerIP) MOWER:setBasicAuthentication(mowerUser, mowerPW) -- ------------------------------------------------- -- ------------------------------------------------- -- geting info about specific device response = MOWER:GET("/json?cmd=status") -- decoding json string to table extractedjson = json.decode(response) -- "status/battery": "Battery Status" -- "status/duration": "Mode Duration" -- "status/hours": "Hours" -- "status/mode": "Mode" -- "status/status": "Status" -- "timer/status": "Timer Status" battery = extractedjson.status.battery duration = extractedjson.status.duration hours = extractedjson.status.hours AM_Status = extractedjson.status.status AM_Mode = extractedjson.status.mode AM_Timer = extractedjson.timer.status fibaro:debug(battery.."%") fibaro:debug(duration.."s") fibaro:debug(hours.."h") fibaro:debug(AM_Status) fibaro:debug(AM_Mode) fibaro:debug(AM_Timer) fibaro:call(selfId, "setProperty", "ui.LabelBatterystatus.value",(battery).." %"); fibaro:call(selfId, "setProperty", "ui.LabelModeDuration.value",(duration).." s"); fibaro:call(selfId, "setProperty", "ui.LabelHours.value",(hours).."h"); fibaro:call(selfId, "setProperty", "ui.LabelMode.value",(AM_Mode)); fibaro:call(selfId, "setProperty", "ui.LabelStatus.value",(AM_Status)); fibaro:call(selfId, "setProperty", "ui.LabelTimer.value",(AM_Timer)); fibaro:debug("Status Auswertung gestartet") if (AM_Status == 0) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Status wird ermittelt"); fibaro:log("Status: Status wird ermittelt") fibaro:debug("Status wird ermittelt") elseif (AM_Status == 1) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower parkt"); fibaro:log("Status: Automower parkt") fibaro:debug("Automower parkt") elseif (AM_Status == 2) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower mäht"); fibaro:log("Status: Automower mäht") fibaro:debug("Automower mäht") elseif (AM_Status == 3) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower sucht die Ladestation"); fibaro:log("Status: Automower sucht die Ladestation") fibaro:debug("Automower sucht die Ladestation") elseif (AM_Status == 4) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower lädt"); fibaro:log("Status: Automower lädt") fibaro:debug("Automower lädt") elseif (AM_Status == 5) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower sucht (wartet auf das Umsetzen im manuellen Modus)"); fibaro:log("Status: Automower sucht (wartet auf das Umsetzen im manuellen Modus)") fibaro:debug("Automower sucht (wartet auf das Umsetzen im manuellen Modus)") elseif (AM_Status == 7) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Fehlerstatus"); fibaro:log("Status: Fehlerstatus") fibaro:debug("Fehlerstatus") elseif (AM_Status == 8) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Schleifensignal verloren"); fibaro:log("Status: Automower Schleifensignal verloren") fibaro:debug("Automower Schleifensignal verloren") elseif (AM_Status == 16) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower abgeschaltet"); fibaro:log("Status: Automower abgeschaltet") fibaro:debug("Automower abgeschaltet") elseif (AM_Status == 17) then fibaro:call(selfId, "setProperty", "ui.LabelStatus.value"," Automower schläft"); fibaro:log("Status: Automower schläft") fibaro:debug("Automower schläft") else fibaro:call(selfId, "setProperty", "ui.LabelState.value"," Error"); fibaro:log("Status: Ladefehler") fibaro:debug("Ladefehler") end fibaro:setGlobal("AM_Status", AM_Status); fibaro:sleep(100); fibaro:debug("Mode Auswertung gestartet") if (AM_Mode == 0) then fibaro:call(selfId, "setProperty", "ui.LabelMode.value"," Auto"); fibaro:log("Mode: Auto") fibaro:debug("Auto") elseif (AM_Mode == 1) then fibaro:call(selfId, "setProperty", "ui.LabelMode.value"," Manuell"); fibaro:log("Mode: Manuell") fibaro:debug("Manuell") elseif (AM_Mode == 2) then fibaro:call(selfId, "setProperty", "ui.LabelMode.value"," Home"); fibaro:log("Mode: Home") fibaro:debug("Home") elseif (AM_Mode == 3) then fibaro:call(selfId, "setProperty", "ui.LabelMode.value"," Demo"); fibaro:log("Mode: Demo") fibaro:debug("Demo") else fibaro:call(selfId, "setProperty", "ui.LabelMode.value"," Error"); fibaro:log("Mode: Fehler") fibaro:debug("Fehler") end fibaro:setGlobal("AM_Mode", AM_Mode); fibaro:sleep(100); fibaro:debug("Timer Auswertung gestartet") if (AM_Timer == 0) then fibaro:call(selfId, "setProperty", "ui.LabelTimer.value"," Deaktiviert"); fibaro:log("Timer: Deaktiviert") fibaro:debug("Deaktiviert") elseif (AM_Timer == 1) then fibaro:call(selfId, "setProperty", "ui.LabelTimer.value"," Auto"); fibaro:log("Timer: Auto") fibaro:debug("Auto") elseif (AM_Timer == 2) then fibaro:call(selfId, "setProperty", "ui.LabelTimer.value"," Standby"); fibaro:log("Timer: Standby") fibaro:debug("Standby") else fibaro:call(selfId, "setProperty", "ui.LabelTimer.value"," Error"); fibaro:log("Timer: Fehler") fibaro:debug("Fehler") end fibaro:setGlobal("AM_Timer", AM_Timer); -- Setze Icon fibaro:debug('Starte PING') local IP = '192.168.xx.xx' local PORT = 80 local versuche = 3 local iconOFFLINE = "1002" -- ANPASSEN; Gerät ist offline local iconONLINE = "1001" -- ANPASSEN; Gerät ist online local iconCHECK = "1003" -- ANPASSEN; Gerät wird angepingt local function _ping(retry) fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconCHECK) retry = retry or 0 local tcpSocket = Net.FTcpSocket(IP, PORT) tcpSocket:setReadTimeout(250) fibaro:debug('Suche..., versuche #' .. retry .. ' bitte warten...') fibaro:sleep(250) local bytes, errorCode = tcpSocket:write('ping') if errorCode == 0 then return true else if retry < versuche then fibaro:debug('Nicht gefunden, erneut versuchen, bitte warten...') fibaro:sleep(1000); return _ping(retry + 1) end return false end end local f, result = pcall(_ping) if (f) then if (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Aktiv" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Aktiv') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Standby" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Standby') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Deaktiviert" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Deaktiviert') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Manuell" ) then fibaro:debug(IP.. ':' .. PORT .. ' wurde gefunden, der Timer Status des Automower ist Manuell') fibaro:debug("Status wird abgefragt"); fibaro:call(175, "setProperty", "currentIcon", iconONLINE); else fibaro:debug(IP.. ':' .. PORT .. ' wurde nicht gefunden.') fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconOFFLINE) fibaro:call(175, "setProperty", "currentIcon", iconOFFLINE); fibaro:debug("Status des Automower wird aufgrund mangelnder Erreichbarkeit nicht abgefragt") end else fibaro:debug('Error: ' .. f) end J'ai aussi bien remplacé chaque numéro 175 par l'ID de mon VD. J'ai remarqué des différences sur quelques lignes, certaines ont des apostrophes au lieu des guillemets, est-ce normal? Comment fait-on pour ajouter d'autres infos du genre température, humidité, usure des lames ou même la position GPS qui doivent apparaître dans la trame json? J'ai bien essayé d'ajouter une nouvelle étiquette et dupliquer des lignes du genre fibaro:call(selfId, "setProperty", "ui.LabelHours.value" en remplaçant par blades par exemple (pour l'info des lames). J'aimerais aussi ajouter une icône quand la tondeuse est en charge et une autre quand elle est en défaut. Je cherche toujours un doc sur l'API du Robonect. Merci pour votre aide. VD_Automower_2019 Robonect.vfib P.S: Je vous rajoute aussi une trame du json: http://IP_mower/xml?cmd=status&blades&quality%7BAuthorization=Basic <robonect> <name>**********</name> <id>******</id> <status> <status>17</status> <distance>0</distance> <stopped>false</stopped> <duration>3417</duration> <mode>0</mode> <battery>100</battery> <hours>2202</hours> </status> <timer> <status>2</status> <next> <date>2020-11-21</date> <time>17:00:00</time> <unix>1605978000</unix> </next> </timer> <blades> <quality>73</quality> <hours>3</hours> <days>25</days> </blades> <wlan> <signal>-73</signal> </wlan> <health> <temperature>14</temperature> <humidity>47</humidity> </health> <clock> <date>2020-11-20</date> <time>22:39:33</time> <unix>1605911973</unix> </clock> <successful>true</successful> </robonect>
  2. Did

    Fibaro Wall Plug

    J'avais réussi à démonter mon tout premier Wallplug (avec un embout cruciforme très fin) pour intégrer le disque lumineux dans un tableau électrique (en remplaçant les broches par des fils 2,5mm2 soudés au circuit) mais je n'y suis pas arrivé sur un autre qui m'a lâché. J'ai pourtant acheté tous les embouts de tournevis possibles que j'ai trouvé sur Amazon mais jamais réussi à agripper la tête de la vis au fond du trou de la prise de terre.
  3. Did

    Tradition : Bonne année

    Bonne année tout le monde.
  4. Did

    Tradition : Joyeux Noël

    Ah ben moi aussi, bonnes fêtes de fin d'année.
  5. Dans une prise de courant, le module FGS fonctionnera (puisqu'il y a bien phase & neutre). Il faut aussi savoir que les FGD (comme la plupart des variateurs) sont capricieux avec les sources Led et fluo, pas de problèmes avec les lampes à incandescence ou halogène. Attention aussi à ne pas dépasser la puissance du variateur.
  6. Bonjour @NickFR, L'interrupteur est en série avec la lampe donc dans ton boîtier, tu ne peux pas avoir phase et neutre: cela n'allumerait pas la lampe mais ferait disjoncter. Il ne faut pas se fier aux couleurs (dans ton cas, il doit s'agir d'un câble). Par expérience, je peux te prédire que le noir est certainement la phase (celui qui chatouille) et le bleu, le retour vers la lampe. Le neutre est directement relié à la lampe. Pour commander ta lampe sans neutre, pas d'autre solution que le FGD chez Fbaro (c'est un variateur).
  7. Did

    Stress de retour de vacances ... HC2 réponds plus.

    Non, pas réussi à avoir quelque chose sur la sortie VGA ou DVI.
  8. Did

    Bon anniversaire Maître électricien

    Merci les copains.
  9. Did

    Choix d'un module

    Voici le crobar.
  10. Did

    Choix d'un module

    Les deux derniers fils sont déjà énumérés au début (en 2 et 3). Les prises de courant de ta pièce (et peut-être aussi la pièce derrière si c'est une cloison) sont reliées en chaîne (la ligne qui arrive du tableau alimente une première PC puis repart vers une seconde et ainsi de suite (dans un maximum de huit par circuit). Les bleus (et les rouges de leur côté) doivent toujours être reliés ensemble autrement les PC suivantes ne seraient pas directement alimenteées. Je te ferais un schéma depuis un ordi plus tard.
  11. Did

    Choix d'un module

    Les deux bleus doivent être sur un Wago quadruple avec une bretelle en 2,5 qui retourne à la prise et une autre en 1,5 qui alimente le module.
  12. Did

    Bon anniversaire Maître fondateur

    Bon anniversaire @Moicphil.
  13. Did

    Coupure ballon d'eau chaude par Linky

    Il faut mettre le panier derrière la tondeuse, c'est plus prudent. Pour les économies, j'ai cette prise:
  14. Did

    Installer module avant Disjoncteur 10A

    Et pourquoi ne pas utiliser un contact de FGS pour piloter un contacteur qui alimenterait les peignes d'alimentation de tes disjoncteurs 10A ciblés?
  15. Did

    mon installation HC3

    Et c'est Français!
  16. Did

    Coupure ballon d'eau chaude par Linky

    Non c'est @Did, pas @mprinfo et vous allez rapidement comprendre l'utilité de ces compteurs.
  17. Did

    Coupure ballon d'eau chaude par Linky

    Le pire, ce n'est pas le Linky mais les câbles de distribution qui transportent les données car ils ne sont pas blindés. Il faudrait théoriquement les remplacer pour éviter le rayonnement.
  18. Did

    Coupure ballon d'eau chaude par Linky

    Bravo les médias, grâce à eux, les personnes qui voudront tout de même de l'eau chaude n'auront qu'à mettre le contacteur en marche forcée (s'ils ont les moyens) alors qu'ils ne s'en seraient peut-être pas aperçu).
  19. Désolé @MAM78, Je n'ai pas pu me pencher sur tes messages depuis vendredi mais je vois que tu t'en es bien sorti.
  20. Did

    QuickApps - Nuki

    @jojo, Voici la version noire: La clé a un peu bougé à droite et j'ai modifié aussi les blanches du message au dessus. Et pour ceux qui ont des scénarios en rapport (j'ai mis la blanche parce noir sur noir, c'est moyen):
  21. Did

    QuickApps - Nuki

    Ne quittez pas, je vais regardé ce que j'ai en rayon.
  22. Did

    QuickApps - Nuki

    Salut @jojo, Si tu préfères mes icônes pour illustrer ton QA.
  23. Did

    sonde niveau d'eau

    Comme celui-ci par exemple: https://www.domotique-fibaro.fr/topic/12220-indicateur-de-niveau-deau-en-z-wave/
  24. Did

    Groupe Electrogène : AVR ou INVERTER

    Aucune idée, je ne suis pas assureur. Juste une conviction, c'est que si l'installation est réalisée par un électricien habilité, je ne vois par pourquoi l'assurance n'accepterait pas, il saurait se retourner vers sa décennale en cas de litige.
  25. Did

    Wall Plug Qui Fait Disjoncter

    Pour les cartouches de rechange, c'est pratiquement le prix du parafoudre mais pas besoin de tout ouvrir pour réparer.
×