Gardena Mähroboter in HC2 einbinden

Hallo

hat hier schon jemand mal den Angriff gewagt, einen Gardena Mähroboter einzubinden? Hab seit 2 Wochen einen Gardena R70li und hab mir dazu ein Wlan-Modul von
Robonect H30x besorgt. Das funktioniert auch ganz gut mit der Steuerung per Wlan. Möchte ihn jetzt ins HC2 einbinden um ihn bei Regen automatisch in die Station
fahren zu lassen. Eine offene API gibts dazu auch auf dem Modul, nur leider hab ich davon gar keinen Plan .

Wäre für Infos und Hilfe dankbar.

Gruss xn8

Dann poste doch mal die API.

Ansonsten kannst du dir auch das VD vom roomba-Thinking-Cleaner-Modul nehmen und anpassen. Die Steuerbefehle werden ähnlich sein.

Gruß

hier mal ein paar Screens der API

Bildschirmfoto-2016-06-23-um-23.58.06.png

noch eins

Bildschirmfoto-2016-06-23-um-23.58.45.png

ein drittes

Bildschirmfoto-2016-06-23-um-23.59.10.png

und zu guter letzt ein viertes

Bildschirmfoto-2016-06-23-um-23.59.43.png

Hi,

ja, es ist so wie ich mir gedacht habe. Da kannst du einfach oben gepostetes VD anpassen. :slight_smile: Musst nur die Befehle anpassen und bei der Abfrage des Status musst du die json-Antwort anpassen. Keine große Sache.

Gruß

hi boomx

könntest du mir da behilflich sein? LUA ist noch nicht so meins, bekomme zwar schon paar Sachen hin aber zum Großteil hapert es daran.
Hab mir ein VD angelegt das ich so gern nutzen möchte…das nur noch dementsprechend gefüllt werden muß…

gruss xn8

Bildschirmfoto-2016-06-24-um-11.30.52.png

Hast du dir das andere VD mal angeschaut? Dort kannst du einfach die URL-Aufrufe ändern. Poste dann mal den Code, welchen du bisher hast.

Anders kann ich dir nicht helfen, da ich kein Gerät zum Testen besitze.

also beim Home Button hab ich den Code hinterlegt

-- Setze Verbindungsdaten
-- Benutzername Passwort fuer Robonect H30x
-- mowerUser = "xxx"
-- mowerPW = "xxxxxxxxx"
-- 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=mode&mode=home")

-- decoding json string to table
-- result = response;
-- Fibaro.log(result);
  extractedjson = json.decode(response)

und beim Auto Button leicht abgeändert

-- Setze Verbindungsdaten
-- Benutzername Passwort fuer Robonect H30x
-- mowerUser = "xxx"
-- mowerPW = "xxxxxxxxx"
-- 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=mode&mode=auto")

-- decoding json string to table
-- result = response;
-- Fibaro.log(result);
  extractedjson = json.decode(response)

der Mähroboter macht auch das was er soll wenn man auf den jeweiligen Button klickt.

Läuft doch :slight_smile:

ja soweit, wie bekomme ich aber jetzt das Status und das Mode Label mit Daten gefüllt?

Die setzt du mit der json-response vom Status-Call. Die Response kannst du dann mit json.decode dekodieren und die Werte dann ins Label schreiben. Die Zahlen übersetzt du dann mit einer if-else-Abfrage.

Zum Beispiel so:

local httpPath = "/full_status.json";

if (httpData == nil) then
  httpData = Net.FHttp(selfIp, selfPort);
end
	response, status, errorCode = httpData:GET(httpPath);
	--fibaro:debug("Response: "..tostring(response))
	jsonTable = json.decode(response)

local batterylevel = (tostring(jsonTable.power_status.battery_charge));

…probiere jetzt seit Stunden die Daten ins Label zu bekommen, aber mir qualmt der kopf:-( . weiß noch jemand Rat ?

gruss xn8

Poste doch mal den Code mit. Wie soll dir denn sonst jmd helfen? :wink:

Kannst du die Daten denn auslesen? Also hast du diese in lokalen Variablen gespeichert?

Das Label setzt du so (LabelState ist der Name des Labels und statusAkt ist der Status:

fibaro:call(selfId, "setProperty", "ui.LabelState.value", statusAkt)

Gruß

nen Code hab ich noch nicht. hab mit den Infos die du gepostet hast versucht was zusammen zu basteln, aber dann auch wieder entfernt weil es nicht
funzte.

Daten kann ich folgende auslesen wenn ich 192.168.xxx.xx/json?cmd=status eingebe

Bildschirmfoto-2016-06-24-um-21.15.52.png

Variabeln hab ich folgende
MowerMode und MowerStatus

Bildschirmfoto-2016-06-24-um-21.17.03.png

Bildschirmfoto-2016-06-24-um-21.17.16.png

json-decode:

local response = json.decode(json)
local status = response.status.status
fibaro:debug(status)

var setzen:

if status == 0 then
  fibaro:setGlobal("MowerStatus", "schläft")
 elseif status == 1 then
  fibaro:setGlobal("MowerStatus", "läuft")
.
.
. 
end

Wenn ich noch mehr mache, dann kann ich auch 90 € die Stunde nehmen und es selbst programmieren :smiley:

Gruß

Automower mit H30x und VD für HC2

VD Steuerung Gardena oder Husqvana mit HC2