Worx Landroid M1000i

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

tkirsche
Beiträge: 7
Registriert: 28.05.2015, 21:50

Worx Landroid M1000i

Beitrag von tkirsche » 18.08.2016, 15:30

Hallo,

hat einer von euch schon ein Mähroboter von Worx in die Homematic eingebunden?

Über die Shell kann man starten:
curl -u admin:0000 -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",11,1]]' http://192.168.2.167/jsondata.cgi

und stoppen:

curl -u admin:1312 -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",12,1]]‘ http://192.168.77.130/jsondata.cgi

Wie binde ich es bei der Homematic ein? Könnte es mir einer bitte erklären? CUXD ist auf de CCU2 installiert.


tkirsche

tkirsche
Beiträge: 7
Registriert: 28.05.2015, 21:50

Re: Worx Landroid M1000i

Beitrag von tkirsche » 20.08.2016, 16:14

Hallo,

kriege immer über die Shell auf der CCU2 ein:

# /usr/local/addons/worxstart
/usr/local/addons/worxstart: line 2: syntax error: unterminated quoted string

in der worxstart seht:

curl -u admin:1312 -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",11,1]]‘ http://192.168.77.90/jsondata.cgi

was mach ich falsch?

thx

firephaser
Beiträge: 72
Registriert: 22.09.2014, 20:43
Danksagung erhalten: 1 Mal

Re: Worx Landroid M1000i

Beitrag von firephaser » 23.08.2016, 21:22

Wenn das Script die einen Fehler in Zeile 2 auswirft, hast du vielleicht die obere Angabe im Scipt in zwei Zeilen stehen. Der Aufruf im Script muss in EINER Zeile stehen, prüf das mal.

Ich habe gestern eine Anleitung im Roboter-Forum gepostet und werde es auch gleich mal hier hochladen
Zuletzt geändert von firephaser am 23.08.2016, 21:30, insgesamt 1-mal geändert.
Gruß Micha

firephaser
Beiträge: 72
Registriert: 22.09.2014, 20:43
Danksagung erhalten: 1 Mal

Re: Worx Landroid M1000i

Beitrag von firephaser » 23.08.2016, 21:27

Hallo zusammen,

anbei meine Konfigurationen und Einstellungen, um den Worx über Homematic zu steuern, bzw. den Status des Worx zu sehen. Die Konfiguration setzt Erfahrungen und Grundkenntnisse mit Homematic/ CUXD usw. voraus. Alles ohne Gewähr und auf eigene Verantwortung. Für Fragen stehe ich gerne zur Verfügung.


Worx 796E (WLAN) in Homematic einbinden)

--------------- Teil 1 / Zustand des Worx in der CCU anzeigen --------------------------------
Damit der Zustand des Worx bei mir angezeigt werden kann, läuft bei mir ein Script auf einem NAS. In der CCU2 müssen dafür folgende Variablen angelegt werden:
Rasenmaeher-nicht-erreichbar Logikwert Wahr=nicht-erreichbar Falsch=erreichbar
Roboter-faehrt-zur-Ladestation Logikwert Wahr=ja Falsch=nein
Roboter-in-Ladestation Logikwert Wahr=ja Falsch=nein
Roboter-maeht Logikwert Wahr=ja Falsch=nein

Anschließend die ID der Variablen ermitteln: Im Browser die URL http://IP-CCU/config/xmlapi/sysvarlist.cgi aufrufen und die entsprechenden ID der oberen IDs notieren.

----------------------------------robter.script--------------
#/bin/bash
while true
do
DATUM=`date "+%H%M%d%m%y"`
TIME=`date`
echo "Das ist das Datum $DATUM"
ROBOTER=http://IP-DES-WORX-EINTRAGEN
LOG=/var/log/script.log
DATEI="/TOOLS/TESTMM"
DATEI1="/TOOLS/TESTMM"
LINIE="----------------- $TIME ----------------------------"
echo "$LINIE" >> $LOG
echo "$TIME: Loesche alte Datei" >> $LOG
rm $DATEI
echo "$TIME: Lade Datei" >> $LOG
wget http://IP-DES-WORX/jsonDebug.cgi --user=admin --password=PIN -O /TOOLS/TESTMM
sed 's/\"/ /g' /TOOLS/TESTMM > /TOOLS/TESTMM1
awk '{print $6}' /TOOLS/TESTMM1 > /TOOLS/TEMP.ROBOTER
PART=`cat /TOOLS/TEMP.ROBOTER`
echo "$TIME: Das ist RESULT $PART" >> $LOG
if [ $PART = grass ]
then
echo "$TIME: Roboter ist am maehen" >> $LOG
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=VARIABLE-ROBOTER-AM-MAEHEN&new_value=true"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=ROBOTER-IN-LADESTATION&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Roboter-faehrt-zu-Ladestation&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Rasenmaeher-nicht-erreichbar&new_value=false"
fi
echo "PART HOME" >> $LOG
if [ $PART = home ]
then
echo "$TIME: ---Roboter ist in Ladestation---" >> $LOG
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=ROBOTER-IN-LADESTATION&new_value=true"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Roboter-faehrt-zu-Ladestation&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Rasenmaeher-nicht-erreichbar&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=VARIABLE-ROBOTER-AM-MAEHEN&new_value=false"
fi
echo "PART FOLLOWING" >> $LOG
if [ $PART = following ]
then
echo "$TIME: ---Roboter ist auf dem Weg zur Ladestation---" >> $LOG
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Roboter-faehrt-zu-Ladestation&new_value=true"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=ROBOTER-IN-LADESTATION&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=VARIABLE-ROBOTER-AM-MAEHEN&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Rasenmaeher-nicht-erreichbar&new_value=false"
fi
ping -c 1 IP-DES-WORX
PING=`echo $?`
echo "Das ist PING $PING"
if [ $PING = 1 ]
then
echo "$TIME: ---Roboter ist nicht erreichbar---" >> $LOG
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Roboter-faehrt-zu-Ladestation&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=ROBOTER-IN-LADESTATION&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=VARIABLE-ROBOTER-AM-MAEHEN&new_value=false"
curl -s "http://CCU-IP/config/xmlapi/statechange.cgi?ise_id=Rasenmaeher-nicht-erreichbar&new_value=true"
echo "$TIME: Warte 15 Minuten" >> $LOG
sleep 900
fi
echo "PART ENDE" >> $LOG
rm /TOOLS/TEMP.ROBOTER
rm /TOOLS/TESTMM
sleep 300
done
--------------------------------------
Die festgedruckten Wörter müssen durch eure Daten ersetzt werden. Das Script wird dann einfach mit "./roboter.script gestartet &" und läuft dann im Hintergrund in einer Schleife (alle 5 Minuten). Das Script liest die Debug-Page des Worx aus und filter den Zustand aus. Dieser Zustand setzt dan die entsprechenden Variablen in der CCU.
Damit ist in der CCU der aktuelle Zustand zu sehen.
------------------------------ Teil 2 ----------------------------------------------
Um den Worx über die CCU zu starten und zu stoppen, sind folgende Schritte notwendig.
CUXD muss auf der CCU erfolgreich laufen.
Unter Programme "Programm Mähroboter starten" anlegen
Aktivität: Script mit folgenden Inhalt:
string stdout;
string stderr;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State( "/www/addons/cuxd/worx-start");

Unter Programme "Programm Mähroboter stoppen" anlegen
Aktivität: Script mit folgenden Inhalt:
string stdout;
string stderr;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State( "/www/addons/cuxd/worx-stop");

Auf der CCU per ssh einloggen und die beiden Scripte anlegen:
------------------- /www/addons/cuxd/worx-start --------------------------
/usr/local/addons/cuxd/curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",11,1]]' http://IP-VOM-WORX/jsondata.cgi
------------------- /www/addons/cuxd/worx-stop --------------------------
/usr/local/addons/cuxd/curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",12,1]]' http://IP-VOM-WORX/jsondata.cgi

Beide Scripte auf der CCU ausführbar machen mit chmod 755 worx*

-------------------------- Ende Teil 2 ------------------------------------------
Somit stehen nun 4 Variablen zur Verfügung, die den aktuellen Zustand des Worx anzeigen (z.B. Mähen, Laden, auf dem Weg zur Ladestation, nicht erreichbar). Über die beiden Programm kann der Worx gestartet oder gestoppt werden, dadurch können natürlich auch mehrere Zeiten zum mähen über die CCU programmiert werden oder der das der Worx im Urlaub anders mähen soll. Den Möglichkeiten sind damit keine Grenzen gesetzt.

Nun viel Spaß.
Gruß Micha

firephaser
Beiträge: 72
Registriert: 22.09.2014, 20:43
Danksagung erhalten: 1 Mal

Re: Worx Landroid M1000i

Beitrag von firephaser » 23.08.2016, 21:33

Das Ergebnis wird bei mir in HomeHub dann so angezeigt:
homehub.JPG
Gruß Micha

MaxMan23
Beiträge: 97
Registriert: 03.01.2014, 14:26

Re: Worx Landroid M1000i

Beitrag von MaxMan23 » 18.03.2017, 06:45

Moin,

wäre es auch möglich das script direkt auf der Homematic laufen zu lassen?
Es gibt auch ein plugin für openhab.

Wie sehen denn die Befehle einzen aus?
Hier ist ein Auszug von openhab:
String Landroid_status "Landroid Status [%s]" <garden> (Rasenmaeher) { http="<[http://admin:1234@10.0.0.1/jsondata.cgi:5000:REGEX(.*\"state\":\"(.*?)\",.*)]" }
String Landroid_Command "Landroid action" <garden> (Rasenmaeher)


Es müsste doch auch möglich die paar Abfragen direkt zu schicken, oder verstehe ich da was falsch?

DocBrown
Beiträge: 3
Registriert: 06.06.2017, 00:12
Danksagung erhalten: 1 Mal

Re: Worx Landroid M1000i

Beitrag von DocBrown » 06.06.2017, 00:18

Hi,

es gibt noch mehr die sich darüber freuen würden wenn das Script ohne NAS in der Homematic läuft. Da ich kein NAS besitze ist es somit nicht umzusetzen. Im Rapberry bekome ich nur Fehlermeldungen und auch keinen Status :(.

Mir würde es ja schon reichen, wenn ich den Landroid nur Starten und wieder in seinen Stall zurückschicken könnte.
Ich wäre für Hilfe dankbar. Der Aufruf per Script (der curl befehl) bringt bei mir nur eine Fehlermeldung

dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("/usr/local/addons/cuxd/curl -u admin:0000-H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",11,1]]' http://192.168.178.48/jsondata.cgi");

Würde mich über eine Antwort und HIlfe freuen.
(Bin aber nicht der beste im Programmieren und Debian/Linux ist nicht mein bester Freund)

DocBrown
Beiträge: 3
Registriert: 06.06.2017, 00:12
Danksagung erhalten: 1 Mal

Re: Worx Landroid M1000i

Beitrag von DocBrown » 07.06.2017, 14:24

Also starten kann ich den Roboter mittlerweile... nur das stoppen will nicht funktionieren. (ich habe auch schon probiert eine weitere Datei einzufügen. Diese habe ich mit setaggi 14 und 15 bespielt... hierdurch müsste eigentlich ein manueller stopp und die Rückkehr ausgelöst werden. Dies funktioniert leider genauso wenig wie die 12.

RalfS
Beiträge: 2
Registriert: 17.06.2017, 12:25

Re: Worx Landroid M1000i

Beitrag von RalfS » 17.06.2017, 12:37

Guten Morgen,

vielen Dank erst einmal für das super Script.
Es läuft bei mir wunderbar und mit meinen rudimentären Kenntnissen konnte
ich es ein wenig anpassen, so dass es für mich super funktioniert.
Ich habe gesehen, dass json noch weitere super Informationen bereithält, deren
Selektion mir ein wenig schwerfällt, da ich quasi Bash-Newbie bin.
Ich meinem Fall ist der Akku bei der Rückfahrt leider immer ein paar Meter vor
dem Ziel zu Ende und ich würde gern die Akkuladung auslesen, damit ich ihn ein
wenig früher zurückschicken kann.
Dummerweise habe ich jedoch noch keinen Substr-Befehl gefunden, der mit diese
Information extrahieren könnte. Könnt ihr mir da evtl. ein wenig weiterhelfen?

RalfS
Beiträge: 2
Registriert: 17.06.2017, 12:25

Re: Worx Landroid M1000i

Beitrag von RalfS » 18.06.2017, 20:39

Habe es jetzt bereits selbst geschafft...

Antworten

Zurück zu „HomeMatic allgemein“