Aller au contenu
Did

VD Robonect pour HC2

Recommended Posts

 Bonjour tout le monde,

J'ai installé mon module Robonect sur l'Automower, tout fonctionne parfaitement sans les remontées vers la HC2,

 

1560766028_RobonectHx.PNG.fb88f0c0d0074d339f456a892f705e1c.PNG

 

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).

 

large.Automower.PNG.ede4d46c11c4ee4c785cef2c0189cf18.PNG

 

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>

 

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Did, vais commander et me prendre un 305 nouvelle génération. Ca donne quoi le VD, tout fonctionne bien avec ?

Partager ce message


Lien à poster
Partager sur d’autres sites

 La tondeuse est rentrée au garage pour encore au moins deux mois.

Pour le VD, il est toujours dans la config du début, je n'ai pas réussi à faire mes modifs, le Lua ce n'est pas mon rayon.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca roule, je ferai la mise à jour.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 J'ai enfin réussi à faire remonter l'usure et la durée (en jours) des lames sur le VD puis j'ai ajouté un Smart Implant où je récupère la température et l'hygrométrie, j'utilise aussi un des contacts pour allumer les phares bricolés également. Ces ajouts sont alimentés par une autre batterie 12V qui se rechargera une fois rentrée à la station (il me manque encore le contact pour récupérer le 12V de charge).

1024370146_VDAutomower.thumb.PNG.e575a49426d8dbcdb6faf0a98d00f8cf.PNG

Je cale sur le remontée de la température et l'hygrométrie dans le module virtuel, les étiquettes crées restent désespérément vides, voici la mainloop où j'ai ajouté les quelques lignes censées renseigner ces cases mais j'ai du mal faire quelques choses.

fibaro:debug('Lancement PING')

local IP = "192.168.xx.xx"
local PORT = 80
local versuche = 3
local iconOFFLINE = "1055" -- L'appareil est hors ligne
local iconONLINE = "1056" -- L'appareil est en ligne
local iconCHECK = "1054" -- L'appareil émet un ping

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('Recherche..., essayez #' .. retry .. ' veuillez patienter...')
  fibaro:sleep(250)
  local bytes, errorCode = tcpSocket:write("ping")
    
  if errorCode == 0 then
    return true
  else
    if retry < versuche then
      fibaro:debug('Non trouvé, réessayez, veuillez attendre...')
      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 .. ' a été trouvé, le statut de la minuterie de l`Automower est Actif')
 fibaro:debug('L`état est interrogé');
 fibaro:call(389, "pressButton", "6");
 fibaro:debug('Le statut a été demandé, attendez 2 minutes');
 fibaro:call(389, "setProperty", "currentIcon", iconONLINE);
 fibaro:sleep(120000)

 elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Standby" ) then
 fibaro:debug(IP.. ':' .. PORT .. ' a été trouvé, le statut de l`Automower est Standby')
 fibaro:debug('L`état est interrogé');
 fibaro:call(389, "pressButton", "6");
 fibaro:debug('Le statut a été demandé, attendez 30 minutes');
 fibaro:call(389, "setProperty", "currentIcon", iconONLINE);
 fibaro:sleep(1800000)

 elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Deaktiviert" ) then
 fibaro:debug(IP.. ':' .. PORT .. ' a été trouvé, le statut de la minuterie de l`Automower est Désactivé')
 fibaro:debug('L`état est interrogé');
 fibaro:call(389, "pressButton", "6");
 fibaro:debug('Le statut a été demandé, attendez 30 minutes');
 fibaro:call(389, "setProperty", "currentIcon", iconONLINE);
 fibaro:sleep(1800000)

 elseif (result == true) and (fibaro:getGlobalValue("Variable_AM_Timer") == "Manuell" ) then
 fibaro:debug(IP.. ':' .. PORT .. ' a été trouvé, le statut de la minuterie de l`Automower est Manuel)
 fibaro:debug('Ltat est interrogé');
 fibaro:call(389, "pressButton", "6");
 fibaro:debug('Le statut a été demandé, attendez 10 minutes');
 fibaro:call(389, "setProperty", "currentIcon", iconONLINE);
 fibaro:sleep(600000)

 else
 fibaro:debug(IP.. ':' .. PORT .. ' n`a pas été trouvé.')
 fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconOFFLINE)
 fibaro:call(389, "setProperty", "currentIcon", iconOFFLINE);
 fibaro:debug('Le statut de l`Automower n`est pas demandé en raison du manque d`accessibilité')
 fibaro:debug('Le statut n`a pas été demandé, attendez 10 minutes)');
 fibaro:sleep(600000)
 end

 else
 fibaro:debug('Erreur: ' .. f)
 end

local id_module_virtuel = fibaro:getSelfId()
--fibaro:debug(temp.. " °C")
--fibaro:debug(hygro.. " %")

local temp = fibaro:getValue(383, "value")
fibaro:call(id_module_virtuel, "setProperty", "ui.LabelTemp.value",temp.. " °C");
local hygro = fibaro:getValue(384, "value")
fibaro:call(id_module_virtuel, "setProperty", "ui.LabelHygro.value",hygro.. " %");

Les sept dernières lignes concernent la température et l'hygrométrie, j'ai essayé avec les deux lignes commentées mais rien non plus.

Voici mes deux étiquettes ajoutées:

label.thumb.PNG.847aa8212ff72c14e9c44b3adddf77eb.PNG

Si vous aviez la solution, c'est certainement une bêtise, je suis toujours niveau quiche en Lua. :20:

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans le code

LabelTemp, LabelHygro

Dans la déclaration : Labeltemp, Labelhygro

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci @Barelle,

Je viens de remplacer par une majuscule mes deux étiquettes mais toujours rien.

Il faut aussi modifier les variables locales (local temp, local hygro)?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Non, ce n'est pas utile, il faudrait s'assurer, par contre, qu'elles ont bien une valeur :

 

local id_module_virtuel = fibaro:getSelfId()
local temp = fibaro:getValue(383, "value")
fibaro:debug("temp="..temp.. " °C")
fibaro:call(id_module_virtuel, "setProperty", "ui.LabelTemp.value", temp.. " °C");
local hygro = fibaro:getValue(384, "value")
fibaro:debug("hygro="..hygro.. " %")
fibaro:call(id_module_virtuel, "setProperty", "ui.LabelHygro.value", hygro.. " %");

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 Le capteur de température et d'humidité DHT22 relié au FGBS-222 remonte bien des valeurs à la HC2.

Tondeuse.PNG.aa23490a4df4ee1d03c7a553dc7e7897.PNG

Ce sont les nœuds 383 & 384.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé, mais je ne vois pas...

 

Et en essayant de mettre ces quelques lignes en tout début du VD, juste après 

fibaro:debug('Lancement PING')

pour court circuiter les sleep qui sont bien longs.

Partager ce message


Lien à poster
Partager sur d’autres sites

 Toujours pareil.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis à sec, heureusement l'heure de l'apéro approche :74:

 

Par curiosité, que donne le json d'un des deux devices, le 383 par exemple.

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Il faut faire comment pour récupérer le json?

Une ligne à taper dans l'URL?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

http://<adresse HC2>/api/devices/383

 

ou en passant par :

 

http://<adresse HC2>/docs/#!/devices/getDevice

Partager ce message


Lien à poster
Partager sur d’autres sites

 Merci, voici ce  que ça me donne:

id
	383
name	"T° tondeuse"
roomID	232
type	"com.fibaro.temperatureSensor"
baseType	"com.fibaro.multilevelSensor"
enabled	true
visible	true
isPlugin	false
parentId	371
remoteGatewayId	0
interfaces	
0	"zwave"
1	"zwaveAlarm"
2	"zwaveMultiChannelAssociation"
properties	
parameters	
0	
id	24
lastReportedValue	0
lastSetValue	0
size	1
value	0
1	
id	25
lastReportedValue	0
lastSetValue	0
size	1
value	0
2	
id	40
lastReportedValue	0
lastSetValue	0
size	1
value	0
3	
id	41
lastReportedValue	0
lastSetValue	0
size	1
value	0
4	
id	47
lastReportedValue	255
lastSetValue	255
size	2
value	255
5	
id	49
lastReportedValue	0
lastSetValue	0
size	2
value	0
6	
id	52
lastReportedValue	255
lastSetValue	255
size	2
value	255
7	
id	54
lastReportedValue	0
lastSetValue	0
size	2
value	0
8	
id	63
lastReportedValue	5
lastSetValue	5
size	1
value	5
9	
id	64
lastReportedValue	0
lastSetValue	0
size	2
value	0
10	
id	65
lastReportedValue	5
lastSetValue	5
size	2
value	5
11	
id	66
lastReportedValue	0
lastSetValue	0
size	2
value	0
12	
id	67
lastReportedValue	5
lastSetValue	5
size	2
value	5
13	
id	68
lastReportedValue	0
lastSetValue	0
size	2
value	0
14	
id	150
lastReportedValue	10
lastSetValue	10
size	1
value	10
15	
id	151
lastReportedValue	10
lastSetValue	10
size	1
value	10
16	
id	152
lastReportedValue	0
lastSetValue	0
size	2
value	0
17	
id	153
lastReportedValue	0
lastSetValue	0
size	2
value	0
18	
id	154
lastReportedValue	0
lastSetValue	0
size	1
value	0
19	
id	155
lastReportedValue	0
lastSetValue	0
size	1
value	0
20	
id	156
lastReportedValue	0
lastSetValue	0
size	2
value	0
21	
id	157
lastReportedValue	0
lastSetValue	0
size	2
value	0
pollingTimeSec	0
zwaveCompany	"Fibargroup"
zwaveInfo	"3,6,2"
zwaveVersion	"5.2"
alarmLevel	"0"
alarmType	"0"
categories	"[\"climate\"]"
configured	true
dead	"false"
deadReason	""
deviceControlType	"0"
deviceIcon	"1060"
emailNotificationID	"0"
emailNotificationType	"0"
endPointId	"8"
log	""
logTemp	""
manufacturer	""
markAsDead	"true"
model	""
nodeId	"81"
offset	"0.00"
parametersTemplate	"825"
productInfo	"1,15,5,2,16,0,5,2"
pushNotificationID	"0"
pushNotificationType	"0"
remoteGatewayId	"0"
saveLogs	"true"
serialNumber	"h'0000000000000835"
showFireAlarm	"true"
showFreezeAlarm	"false"
smsNotificationID	"0"
smsNotificationType	"0"
unit	"C"
useTemplate	"true"
userDescription	""
value	"10.80"
actions	
reconfigure	0
created	1617216046
modified	1617216046
sortOrder	246
383
name "T° tondeuse"
roomID 232
type "com.fibaro.temperatureSensor"
baseType "com.fibaro.multilevelSensor"
enabled true
visible true
isPlugin false
parentId 371
remoteGatewayId 0
interfaces  
0 "zwave"
1 "zwaveAlarm"
2 "zwaveMultiChannelAssociation"
properties  
parameters  
0  
id 24
lastReportedValue 0
lastSetValue 0
size 1
value 0
1  
id 25
lastReportedValue 0
lastSetValue 0
size 1
value 0
2  
id 40
lastReportedValue 0
lastSetValue 0
size 1
value 0
3  
id 41
lastReportedValue 0
lastSetValue 0
size 1
value 0
4  
id 47
lastReportedValue 255
lastSetValue 255
size 2
value 255
5  
id 49
lastReportedValue 0
lastSetValue 0
size 2
value 0
6  
id 52
lastReportedValue 255
lastSetValue 255
size 2
value 255
7  
id 54
lastReportedValue 0
lastSetValue 0
size 2
value 0
8  
id 63
lastReportedValue 5
lastSetValue 5
size 1
value 5
9  
id 64
lastReportedValue 0
lastSetValue 0
size 2
value 0
10  
id 65
lastReportedValue 5
lastSetValue 5
size 2
value 5
11  
id 66
lastReportedValue 0
lastSetValue 0
size 2
value 0
12  
id 67
lastReportedValue 5
lastSetValue 5
size 2
value 5
13  
id 68
lastReportedValue 0
lastSetValue 0
size 2
value 0
14  
id 150
lastReportedValue 10
lastSetValue 10
size 1
value 10
15  
id 151
lastReportedValue 10
lastSetValue 10
size 1
value 10
16  
id 152
lastReportedValue 0
lastSetValue 0
size 2
value 0
17  
id 153
lastReportedValue 0
lastSetValue 0
size 2
value 0
18  
id 154
lastReportedValue 0
lastSetValue 0
size 1
value 0
19  
id 155
lastReportedValue 0
lastSetValue 0
size 1
value 0
20  
id 156
lastReportedValue 0
lastSetValue 0
size 2
value 0
21  
id 157
lastReportedValue 0
lastSetValue 0
size 2
value 0
pollingTimeSec 0
zwaveCompany "Fibargroup"
zwaveInfo "3,6,2"
zwaveVersion "5.2"
alarmLevel "0"
alarmType "0"
categories "[\"climate\"]"
configured true
dead "false"
deadReason ""
deviceControlType "0"
deviceIcon "1060"
emailNotificationID "0"
emailNotificationType "0"
endPointId "8"
log ""
logTemp ""
manufacturer ""
markAsDead "true"
model ""
nodeId "81"
offset "0.00"
parametersTemplate "825"
productInfo "1,15,5,2,16,0,5,2"
pushNotificationID "0"
pushNotificationType "0"
remoteGatewayId "0"
saveLogs "true"
serialNumber "h'0000000000000835"
showFireAlarm "true"
showFreezeAlarm "false"
smsNotificationID "0"
smsNotificationType "0"
unit "C"
useTemplate "true"
userDescription ""
value "10.80"
actions  
reconfigure 0
created 1617216046
modified 1617216046
sortOrder 246

Partager ce message


Lien à poster
Partager sur d’autres sites

 La température et l’hygrométrie s'affichent enfin dans le VD, j'ai supprimé provisoirement toutes les autres lignes de la mainloop où j'ai constaté que ça fonctionnait puis j'ai recollé les lignes d'origine au dessus et maintenant ça marche, bizarre.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 Bon en fait, c'était une fausse joie, l'affichage est figé sur les chiffres remontés quand j'avais retiré la mainloop d'origine, les données du module dans la HC2 ont bougé et ne s'actualisent pas dans le VD. :20:

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Did, ça y est je suis entrain de tout installer aussi.

Question, dans le mainloop tu as mis quoi comme port, juste 80 ? Car moi cela ne veut pas avec 80. Autre question, les icônes tu les as qque part ?

Partager ce message


Lien à poster
Partager sur d’autres sites

 J'ai rentré l'adresse IP (local IP) et le port 80 (local PORT).

Tu as coupé l’émission Wi-Fi provisoire du Robonect pour faire la première connexion?

Pour les icônes, j'ai fait ceux-ci mais le VD affiche toujours le même, j'ai pourtant renseigné les numéros d'icônes.

 

1261767933_Automowerentonte.png.75255c9027cde8919a2915c56ebfc66e.png   2057967191_Automowerstop.png.d2a918f5dbb3de9955303da94e516aab.png   Automower.png.e992e27fafe38de4fc9e2d4ff721ad7e.png

 

Et j'avais aussi celles-ci pour afficher le retour à la base, la température et humidité (Smart Implant) mais les fonctions ne sont pas ajoutées ou fonctionnelles.

 

748258153_Automowerhome.png.006b7316cebf476bb1b24dbfbfbebaec.png   1831301569_Automowerthermo.png.a3b1adc536e97b852520fda93014b280.png   275909770_Automowerhygromtrie.png.3c79dba764765ab3f48ea09a1f2d0440.png

 

Si tu en as besoin d'autre, dis-moi.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Top, merci pour les icônes.

Pour le Wifi de départ, je l'ai laissé mais je lui ai ajouté une clef WPA2. Cela permettra un dépannage si jamais.

 

Pour le VD, tu peux me mettre le log de ton Mainloop, car je me demande si le souci ne vient pas de ce dernier avec leur ping (J'aimerai voir ce que sort le tient). Je vais modifier ça (Je ne peux pas encore testé, car il est dans le garage là, il faut que le fil guide et le périph soit en place pour qu'il démarre).

Maintenant je pense virer le refresh auto toutes les x minutes du mainloop, car je ne sais pas si tu as vu, mais le Robonect a un service Push intégré. Ce que je pense faire, ce sera plus propre et surtout sera beaucoup plus réactif : Je vais modifier le bouton statut et y mettre tous les updates dessus, donc les icônes. Et ensuite, le Robonect viendra cliquer sur ce bouton statut à chaque changement de statut. Ainsi le changement de statut sera immédiat et cela évitera un pooling continu pour récupérer son état.

 

Normalement d'ici fin du mois il sera en place dehors, je pourrai faire les tests finaux et je mettrai la version à jour ici.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Tiens, je viens de voir que le mien a un capteur d'humidité intégré, je vais voir si je peux récupérer ça dans le Json.

Partager ce message


Lien à poster
Partager sur d’autres sites

 Voici ce que me donne le debug de celui d'origine (pas traduit), je m'aperçois que la mainloop de celui que j'ai traduit ne tourne pas.

[DEBUG] 13:32:53: Starte PING
[DEBUG] 13:32:53: Suche..., versuche #0 bitte warten...
[DEBUG] 13:32:53: 192.168.xxx.xxx:80 wurde nicht gefunden.
[DEBUG] 13:32:53: Status des Automower wird aufgrund mangelnder Erreichbarkeit nicht abgefragt
[DEBUG] 13:32:53: Status wurde nicht abgefragt, warte für 10 Minuten)

 L'humidité peut-être affichée en haut à droite sur la page du Robonect.

C'est bien celle-ci ta brebis?

 

368921213_Automower305.png.24c88832f82fff333ebda6cb3c67d741.png

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 Voilà le debug du mien, j'ai corrigé ce qui déconnais dans ma mainloop (reste encore la température et l'humidité du Smart Implant qui ne s'affiche toujours pas dans le VD.

 

[DEBUG] 14:13:52: Lancement PING
[DEBUG] 14:13:52: Recherche..., essayez #0 veuillez patienter...
[DEBUG] 14:13:53: 192.168.xxx.xxx:80 n`a pas été trouvé.
[DEBUG] 14:13:53: Le statut de l`Automower n`est pas demandé en raison du manque d`accessibilité
[DEBUG] 14:13:53: Le statut n`a pas été demandé, attendez 10 minutes)
[DEBUG] 14:23:56: Lancement PING
[DEBUG] 14:23:56: Recherche..., essayez #0 veuillez patienter...
[DEBUG] 14:23:56: 192.168.xxx.xxx:80 n`a pas été trouvé.
[DEBUG] 14:23:56: Le statut de l`Automower n`est pas demandé en raison du manque d`accessibilité
[DEBUG] 14:23:56: Le statut n`a pas été demandé, attendez 10 minutes)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×