Mähroboter - Statusabfrage - brauche Unterstützung

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
pedromania
Beiträge: 12
Registriert: 17.02.2017, 22:21

Mähroboter - Statusabfrage - brauche Unterstützung

Beitrag von pedromania » 22.05.2018, 23:23

Hallo Zusammen,

ich habe mir einen Mähroboter von WORX zugelegt, welcher auch eine REST-API bietet.
Ich möchte nun den Status des Roboters direkt in der CCU (Raspberrymatic) abfragen und nicht über IO-Broker gehen.

Es geht darum, diesen String zu parsen und bestimmte Werte in Sys-Vars zu schreiben.

Code: Alles auswählen

{"landroid":{"[b]state":"home[/b]","boardTemperature":34.7,"distance":-4,"wheelLeftDistance":-4,"wheelRightDistance":-4,"angle":0,"rainSensor":3722,"aree":{"index":0,"vet":[1,1,1,1,1,1,1,1,1,1]},"battery":{"[b]percentage":64[/b],"voltage":24.84,"temperature":32.4,"ntcResistance":7663},"batteryCharger":{"[b]state":"charging[/b]","chargeCurrent":1413.13},"accelerometer":{"gravity":[-0.004,-0.003,1.016],"angle":[0.000000,0.000000,0.000000]},"gyroscope":{"angularSpeed":[-0.083,0.030,-1.047],"angle":[1267.146973,-215.715439,-1228.852661]},"motor":[{"speed":0,"maxSpeed":51,"speedReduction":0,"rpm":0,"feedbackError":0,"acceleration":100,"deceleration":220,"fault":false},{"speed":0,"maxSpeed":51,"speedReduction":0,"rpm":0,"feedbackError":0,"acceleration":100,"deceleration":220,"fault":false},{"speed":0,"maxSpeed":92,"speedReduction":0,"rpm":0,"feedbackError":0,"acceleration":100,"deceleration":250,"fault":false}],"guide":{"straightSpeed":0,"turningSpeed":0,"measuredWheelDeltaDistance":0,"requiredWheelDeltaDistance":0,"deltaSpeedCorrection":0}},"id":{"stop1":false,"stop2":false,"lift1":false,"lift2":false,"trappedLeft":false,"trappedRight":false,"door1":false,"door2":false},"dipSw":{"sw1":false,"sw2":false,"sw3":false,"sw4":false},"wireSensor":{"fwVer":0.70,"left":"no wire","right":"no wire"}}
Ich kann die Token per script finden.

Code: Alles auswählen

        
!Status suchen;
        string word = "state";
        integer word_laenge = word.Length();
        integer word_position = worx_json.Find(word);
        string daten = worx_json.Substr((word_position + word_laenge +3), 4);
        integer word_position = daten.Find(word);
        daten = daten.Substr(0, (word_position -2));
        dom.GetObject("Worx_Status").State(daten);
Womit ich Probleme habe, ist, dass die Stati eine interschiedliche Länge haben können.
Mit diesem Script hier ist die Länge des Stati auf 4 begrenzt. Diese kann sich aber auch ändern....
Hier z.B.
{"state":"idle","boardTemperat
{"state":"grass cutting","boar
{"state":"home","boardTemperat
{"state":"start sequence"
{"state":"following wire"



Wie kriege ich das am geschicktesten hin ???

Bin für jeden Tip dankbar!

Pedromania
Zuletzt geändert von pedromania am 23.05.2018, 10:30, insgesamt 2-mal geändert.

33zdenko
Beiträge: 343
Registriert: 21.12.2013, 16:50
Danksagung erhalten: 4 Mal

Re: Mähroboter - Statusabfrage - brauche Unterstützung

Beitrag von 33zdenko » 23.05.2018, 09:32

Code: Alles auswählen

        string word = "state";
        integer word_laenge = word.Length();
        integer word_position = worx_json.Find(word);
        string daten = worx_json.Substr((word_position + word_laenge +3), 100);
        word = "[";
        word_position = daten.Find(word);
        string daten1 = daten.Substr(0, (word_position ));
        dom.GetObject("Worx_Status").State(daten1);

pedromania
Beiträge: 12
Registriert: 17.02.2017, 22:21

Re: Mähroboter - Statusabfrage - brauche Unterstützung

Beitrag von pedromania » 24.05.2018, 00:17

Hallo 33zdenko,
danke für den Denkanstoß!
Habe es mit Deiner Hilfe nun geschafft!

Viele Grüße
Pedromania

Benutzeravatar
kopy
Beiträge: 121
Registriert: 28.12.2015, 14:35
Hat sich bedankt: 2 Mal
Danksagung erhalten: 8 Mal

Re: Mähroboter - Statusabfrage - brauche Unterstützung

Beitrag von kopy » 06.02.2022, 16:17

Hallo, das würde mich auch interessieren.
Könntest Du das komplette Script hier veröffentlichen?

Wäre toll. Gruß, Gerd

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Mähroboter - Statusabfrage - brauche Unterstützung

Beitrag von MichaelN » 06.02.2022, 16:21

Alternativ kannst du auch das JSON Skript aus meiner Signatur nehmen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

Zurück zu „HomeMatic allgemein“