Worx Rasenroboter - was gibt die webschnittstelle her

Begonnen von ritter_runkel, 27 Juni 2016, 23:36:10

Vorheriges Thema - Nächstes Thema

Allgaeuer

@schneider.krombach: hast Du das Modul nach dem rüberkopieren auch geladen? -> in der FHEM-Befehlszeile oben reload 74_LANDROID eingeben (oder restart des Systems geht natürlich auch)

@hanswerner1: damit .bladeTimeOffset angezeigt wird, muss vorher im Modul "global" das Attribut showInternalValues gesetzt werden.

Viele Grüße vom Allgäuer

schneider.krombach

@Allgaeuer: Ich habe das Modul nach FHEM kopiert, die Version mit einem Editor auf die Version 18 überprüft und mit reload 74_LANDROID neu geladen. Danach den bladeTimeCounter auf null gesetzt und FHEM restartet. Nach dem Restart steht der bladeTimeCounter wieder auf dem Wert von totalBladeTime.

Grüße Thomas

Hier das List vor den Restart mit bladeTimeCounter auf 0 gesetzt.
Internals:
   DEF        localhost
   FUUID      5c507811-f33f-2b4b-99c1-7e69a36fe9fa5745
   HOST       localhost
   INTERVAL   60
   NAME       mover
   NR         574
   PORT       8001
   STATE      Status: active <br> ges. Weg: 683.1 km <br> Messer: 0.0 h <br> Batterie: 92 % <br> Wifi: -50 dBm <br> Wire missing
   TYPE       LANDROID
   .attraggr:
   .attreocr:
     .*
   .attrminint:
     moverStatusTxt.*:300
   .userReadings:
     HASH(0x555ab6979d00)
     HASH(0x555ab6987948)
     HASH(0x555ab66da168)
     HASH(0x555ab62c3e40)
   Helper:
     DBLOG:
       batteryLevel:
         DBLOG:
           TIME       1589054527.39125
           VALUE      92
       wifiQuality:
         DBLOG:
           TIME       1589046427.33294
           VALUE      -50
   READINGS:
     2020-05-10 09:20:04   .bladeTimeOffset 38374
     2020-05-10 09:19:40   JSON_Error     
     2020-05-10 09:19:40   areasArea1      0
     2020-05-10 09:19:40   areasArea2      0
     2020-05-10 09:19:40   areasArea3      0
     2020-05-10 09:19:40   areasArea4      0
     2020-05-10 09:19:40   areasAreaAct    0
     2020-05-10 09:19:40   areasAreaActInd 3
     2020-05-10 09:19:40   areasStartSequence 0,0,0,0,0,0,0,0,0,0
     2020-05-10 09:19:40   batteryChargeCycle 1076
     2020-05-10 09:19:40   batteryCharging false
     2020-05-10 09:19:40   batteryLevel    92
     2020-05-10 09:19:40   batteryTemperature 18.8
     2020-05-10 09:19:40   batteryVoltage  18.8
     2020-05-10 09:20:04   bladeTimeCounter 0
     2020-05-10 09:20:04   bladeTimeCounterhour 0.0
     2020-05-10 09:19:40   calendarWeekday0BorderCut false
     2020-05-10 09:19:40   calendarWeekday0StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday0WorkTime 360
     2020-05-10 09:19:40   calendarWeekday1BorderCut true
     2020-05-10 09:19:40   calendarWeekday1StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday1WorkTime 360
     2020-05-10 09:19:40   calendarWeekday2BorderCut false
     2020-05-10 09:19:40   calendarWeekday2StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday2WorkTime 360
     2020-05-10 09:19:40   calendarWeekday3BorderCut true
     2020-05-10 09:19:40   calendarWeekday3StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday3WorkTime 360
     2020-05-10 09:19:40   calendarWeekday4BorderCut false
     2020-05-10 09:19:40   calendarWeekday4StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday4WorkTime 360
     2020-05-10 09:19:40   calendarWeekday5BorderCut true
     2020-05-10 09:19:40   calendarWeekday5StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday5WorkTime 360
     2020-05-10 09:19:40   calendarWeekday6BorderCut false
     2020-05-10 09:19:40   calendarWeekday6StartTime 12:00
     2020-05-10 09:19:40   calendarWeekday6WorkTime 360
     2020-05-10 09:19:40   changeCfgTimeExtend 0
     2020-05-10 09:19:40   changeRainDelay 0
     2020-05-10 09:19:40   firmware        3.52
     2020-05-10 09:19:40   lastStatusRequestState statusRequest_done
     2020-05-10 09:19:40   mowTimeExtend   0
     2020-05-10 09:19:40   mowerActive     true
     2020-05-10 09:19:40   mowerError      3
     2020-05-10 09:19:40   mowerErrorTxt   Wire missing
     2020-05-10 09:19:40   mowerState      false
     2020-05-10 09:19:40   mowerStatus     0
     2020-05-10 09:19:40   mowerStatusTxt  Idle
     2020-05-10 09:19:40   mowerWaitRain   0
     2020-05-10 09:19:40   serialNumber    30174102170313010108
     2020-05-10 09:19:40   state           active
     2020-05-10 09:19:40   totalBladeTime  38374
     2020-05-10 09:20:04   totalBladeTimehour 639.6
     2020-05-10 09:19:40   totalDistance   683086
     2020-05-10 09:20:04   totalDistancekm 683.1
     2020-05-10 09:19:40   totalTime       40615
     2020-05-10 09:20:04   totalTimehour   676.9
     2020-05-10 09:19:40   wifiQuality     -50
   helper:
     requestErrorCounter 0
     setErrorCounter 0
Attributes:
   DbLogInclude (batteryLevel|wifiQuality):360
   alias      Landroid-Mover
   cmdIcon    startMower:rc_PLAY pauseMower:rc_PAUSE stopMower:rc_STOP
   disable    0
   event-min-interval moverStatusTxt.*:300
   event-on-change-reading .*
   group      Landroid
   icon       scene_robo_lawnmower
   interval   60
   port       8001
   room       Garten
   sortby     1
   stateFormat Status: state <br> ges. Weg: totalDistancekm km <br> Messer: bladeTimeCounterhour h <br> Batterie: batteryLevel % <br> Wifi: wifiQuality dBm <br> mowerErrorTxt
   userReadings totalBladeTimehour {sprintf("%.1f", ReadingsVal("mover","totalBladeTime",0)/60) ;;;; },
totalTimehour {sprintf("%.1f", ReadingsVal("mover","totalTime",0)/60) ;;;; },
bladeTimeCounterhour {sprintf("%.1f", ReadingsVal("mover","bladeTimeCounter",0)/60) ;;;; },
totalDistancekm {sprintf("%.1f", ReadingsVal("mover","totalDistance",0)/1000) ;;;; },
   verbose    3



und nach dem Restart, bladeTimeCounter hat wieder den Wert von totalBladeTime .
Internals:
   DEF        localhost
   FUUID      5c507811-f33f-2b4b-99c1-7e69a36fe9fa5745
   HOST       localhost
   INTERVAL   60
   NAME       mover
   NR         574
   PORT       8001
   STATE      Status: active <br> ges. Weg: 683.1 km <br> Messer: 639.6 h <br> Batterie: 92 % <br> Wifi: -50 dBm <br> Wire missing
   TYPE       LANDROID
   .attraggr:
   .attreocr:
     .*
   .attrminint:
     moverStatusTxt.*:300
   .userReadings:
     HASH(0x55b642cc2ed8)
     HASH(0x55b642f371e8)
     HASH(0x55b642f37b00)
     HASH(0x55b642f38c20)
   READINGS:
     2020-05-10 09:22:29   .bladeTimeOffset 0
     2020-05-10 09:23:05   JSON_Error     
     2020-05-10 09:23:05   areasArea1      0
     2020-05-10 09:23:05   areasArea2      0
     2020-05-10 09:23:05   areasArea3      0
     2020-05-10 09:23:05   areasArea4      0
     2020-05-10 09:23:05   areasAreaAct    0
     2020-05-10 09:23:05   areasAreaActInd 3
     2020-05-10 09:23:05   areasStartSequence 0,0,0,0,0,0,0,0,0,0
     2020-05-10 09:23:05   batteryChargeCycle 1076
     2020-05-10 09:23:05   batteryCharging false
     2020-05-10 09:23:05   batteryLevel    92
     2020-05-10 09:23:05   batteryTemperature 18.8
     2020-05-10 09:23:05   batteryVoltage  18.8
     2020-05-10 09:23:05   bladeTimeCounter 38374
     2020-05-10 09:23:05   bladeTimeCounterhour 639.6
     2020-05-10 09:23:05   calendarWeekday0BorderCut false
     2020-05-10 09:23:05   calendarWeekday0StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday0WorkTime 360
     2020-05-10 09:23:05   calendarWeekday1BorderCut true
     2020-05-10 09:23:05   calendarWeekday1StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday1WorkTime 360
     2020-05-10 09:23:05   calendarWeekday2BorderCut false
     2020-05-10 09:23:05   calendarWeekday2StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday2WorkTime 360
     2020-05-10 09:23:05   calendarWeekday3BorderCut true
     2020-05-10 09:23:05   calendarWeekday3StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday3WorkTime 360
     2020-05-10 09:23:05   calendarWeekday4BorderCut false
     2020-05-10 09:23:05   calendarWeekday4StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday4WorkTime 360
     2020-05-10 09:23:05   calendarWeekday5BorderCut true
     2020-05-10 09:23:05   calendarWeekday5StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday5WorkTime 360
     2020-05-10 09:23:05   calendarWeekday6BorderCut false
     2020-05-10 09:23:05   calendarWeekday6StartTime 12:00
     2020-05-10 09:23:05   calendarWeekday6WorkTime 360
     2020-05-10 09:23:05   changeCfgTimeExtend 0
     2020-05-10 09:23:05   changeRainDelay 0
     2020-05-10 09:23:05   firmware        3.52
     2020-05-10 09:23:05   lastStatusRequestState statusRequest_done
     2020-05-10 09:23:05   mowTimeExtend   0
     2020-05-10 09:23:05   mowerActive     true
     2020-05-10 09:23:05   mowerError      3
     2020-05-10 09:23:05   mowerErrorTxt   Wire missing
     2020-05-10 09:23:05   mowerState      false
     2020-05-10 09:23:05   mowerStatus     0
     2020-05-10 09:23:05   mowerStatusTxt  Idle
     2020-05-10 09:23:05   mowerWaitRain   0
     2020-05-10 09:23:05   serialNumber    30174102170313010108
     2020-05-10 09:23:05   state           active
     2020-05-10 09:23:05   totalBladeTime  38374
     2020-05-10 09:23:05   totalBladeTimehour 639.6
     2020-05-10 09:23:05   totalDistance   683086
     2020-05-10 09:23:05   totalDistancekm 683.1
     2020-05-10 09:23:05   totalTime       40615
     2020-05-10 09:23:05   totalTimehour   676.9
     2020-05-10 09:23:05   wifiQuality     -50
   helper:
     requestErrorCounter 0
     setErrorCounter 0
Attributes:
   DbLogInclude (batteryLevel|wifiQuality):360
   alias      Landroid-Mover
   cmdIcon    startMower:rc_PLAY pauseMower:rc_PAUSE stopMower:rc_STOP
   disable    0
   event-min-interval moverStatusTxt.*:300
   event-on-change-reading .*
   group      Landroid
   icon       scene_robo_lawnmower
   interval   60
   port       8001
   room       Garten
   sortby     1
   stateFormat Status: state <br> ges. Weg: totalDistancekm km <br> Messer: bladeTimeCounterhour h <br> Batterie: batteryLevel % <br> Wifi: wifiQuality dBm <br> mowerErrorTxt
   userReadings totalBladeTimehour {sprintf("%.1f", ReadingsVal("mover","totalBladeTime",0)/60) ;;;; },
totalTimehour {sprintf("%.1f", ReadingsVal("mover","totalTime",0)/60) ;;;; },
bladeTimeCounterhour {sprintf("%.1f", ReadingsVal("mover","bladeTimeCounter",0)/60) ;;;; },
totalDistancekm {sprintf("%.1f", ReadingsVal("mover","totalDistance",0)/1000) ;;;; },
   verbose    3



FHEM unter Ubuntu 18.04 in einer virtuelle Hyper-V Maschine auf einem Intel Xeon Server - LaCrosse, IT, HM, 1-Wire, ESP8266, Landroid, Home Connect, FTUI, Solarview

Otto123

Zitat von: moonsorrox am 09 Mai 2020, 12:12:41
ich hatte zwischenzeitlich auf die Version 1.7 geupdatet aber bei mir tut sich gar nichts.
Du musst wirklich alles neu machen https://forum.fhem.de/index.php/topic,55053.msg1038662.html#msg1038662

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Allgaeuer

@schneider.krombach:
Meine Antwort bezog sich eigentlich auf das Coding von Axel bezüglich "undef" und "0" und nicht auf .bladeTimeOffset.

Für Dein Problem:
Du kannst mal prüfen, ob .bladeTimeOffset in eventTypes.txt abgespeichert wird. Dazu in Linux im LOG-Verzeichnis z.b. cat eventTypes.txt | grep .blade eingeben.
Wenn das Reading nicht auftaucht, kannst Du auch prüfen, ob FHEM überhaupt Schreibrechte auf eventTypes.txt hat.

Anmerkung: FHEM speichert die Readings normaleweise 1x am Tag ab. Bei mir werden auch vor einem Reboot die Readings abgespeichert, je nach Systemeinstellung ist das aber nicht sicher.

Gruß Allgäuer

moonsorrox

Zitat von: Otto123 am 10 Mai 2020, 12:16:37
Du musst wirklich alles neu machen https://forum.fhem.de/index.php/topic,55053.msg1038662.html#msg1038662

Gruß Otto
Danke dir Otto, dass habe ich fast vermutet, ich bin auch nicht der node.js Freund, aber muss wohl sein. Ich werde mir deine Anleitung an einem ruhigen Tag anschauen und versuchen nachzustellen... momentan ist es mir nicht so wichtig wenn es so kompliziert ist, der Mäher fährt ja.  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

fred_feuerstein

Zitat von: axel.mohnen am 08 Mai 2020, 10:10:28

@fred_feuerstein:
Ich habe Firmware 3.45 drauf und hier läuft der Kantenmodus einwandfrei. "Never change a running system" ;-)

Hi Axel,

ich hatte ja auch die 3.45 letztes Jahr drauf, alles palletti. Nur dieses Jahr nach dem Aktivieren gabs eine neue Software für Android und schwups war der Auto-Update Haken wieder gesetzt und der Robbi wurde auf 3.52 gesetzt.
Seit dem ist es so. Er fährt mit der Funktion EdgeCutting aus der Station und fährt dann ohne Messereinsatz die Kante entlang wieder nach Hause.
Ist also irgendwas geändert und ein Downgrade wieder auf die 3.45 hat nichts gebracht.
Allerdings ist es nicht schlimm, habe ja den Workaround, und der funktioniert. In der Tablet UI schaltet mein Schalter nun eben nicht mehr die Funktion EdgeCutting ein, sondern den Dummy EdgeCutting, der dann ein DOIF auslöst und das gleiche macht, nur eben mit eingeschaltetem Messer :)

Wegen Resetbladetimecounter, das Problem habe ich auch, aber bisher nie genutzt.

Wäre aber nicht schlecht, wenn es funktionieren würde.

:)
Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

efyzz

Nabend,

ich habe nun auch mal die edgeCutting-Funktion mit meinem WR-141E getestet. Er fährt ebenfalls ohne aktives Mähwerk am Kabel entlang und zeigt dabei "Zone Training" in der App. Firmware ist noch 2.9, es liegt also nicht an der neuen FW 3.07 / 3.08.

Der Mäher fährt bei set edgeCutting auch schon anders aus der Station raus (nämlich geradeaus), als mit set startMower (seitwärts). Offensichtlich führt er also nicht die Sequenz Start-Pause-Stop aus.

Ob es früher mal funktioniert hat, kann ich nicht sagen, da ich es zuvor nie ausprobiert habe.
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

KHartmann

@schneider.krombach

Da ist im 74_Lanndroid.pm in Zeile 76 wohl ein     readingsSingleUpdate ( $hash, ".bladeTimeOffset", 0, 1 ); zu viel drin ☺

axel.mohnen

Hallo KHartmann,

die Zeile 76 wird in der "Define" Funktion ausgeführt.
Ich dachte die Define Funktion wird nur ausgeführt wenn auch der "DEFINE" Befehl eingeben wird.
Sollte der DEFINE bei jedem FHEM start ausgeführt werden, haben wir einen BUG  ;)

Ich habe mal im Branch version18 die Zeile 76 kommentiert.
Könnt Ihr das mal bitte testen.

    # ---------- Init persistent readings value ---------------------------------------------------
    # IS THE DEFINE EVENT TRIGGERED FOR EVERY RESTART OF FHEM?
    #readingsSingleUpdate ( $hash, ".bladeTimeOffset", 0, 1 );


Vielen Dank
Gruss Axel

KHartmann

Hallo

zumindest bei mir funktioniert es seither. Bin gespannt, ob es bei anderen auch so ist......

Allgaeuer

Hallo,
hab's bisher nicht verwendet und ist mir deshalb nicht aufgefallen.
Jetzt mal getestet: das Problem war nachstellbar und die Lösung von Axel funktioniert bei mir auch  :)

Viel Grüße vom Allgäuer

axel.mohnen

Moin,

sehr gut  8)

D.h folgende Probleme sind mit der version 1.8 gelöst:
- Zone 1 (Area 0) Ansteuerung
- BladeTimeCounter reset nach Neustart

Offener Punkt:
EdgeCutting mit neuer Landroid Firmware > 3.45

Gruss Axel

steffen83

Zitat von: axel.mohnen am 15 Mai 2020, 07:06:44
Moin,

sehr gut  8)

D.h folgende Probleme sind mit der version 1.8 gelöst:
- Zone 1 (Area 0) Ansteuerung
- BladeTimeCounter reset nach Neustart

Offener Punkt:
EdgeCutting mit neuer Landroid Firmware > 3.45

Gruss Axel
Du meinst die Version von Worx 3.08.
Eine andere Version kann ich nicht installieren

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

axel.mohnen

Hi Steffen,

die Vorgänger Modelle (z.b. wr105si) haben aktuell die Firmware version 3.52.
Mit der Version 3.45 ging das EdgeCutting noch.
Bei den neueren Modellen ist eine andere Firmware installiert, die auch das EdgeCutting nicht unterstützt.

Gruss Axel

steffen83

#779
Hallo Axel,
ach so. Ich habe den M500 und da gibt es diese soweit noch nicht.
Gruß
Steffen

Gesendet von meinem MI 8 mit Tapatalk
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM