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"}}
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);
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