Worx Rasenroboter - was gibt die webschnittstelle her

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

Vorheriges Thema - Nächstes Thema

majorshark

#135
Hallo,

dieses Problem habe ich auch. Gefühlt aktualisiert das Modul erst nach einem Disable -> Enable wieder die Readings. Der Mower als solches ist aber Online.

Nachtrag:
Die Readings werden doch aktualisiert. Da ich aber mit dem event-on-chage-reading .* arbeite dauert es manchmal bis zu einer viertel Stunde bis die Readings aktualisiert werden.
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

Xell1984

Eine Frage. Kann man gezielt zum Kanten mähen schicken über fhem oder dann alternativ z.B. Mittwoch Kanten mähen lt Zeitplan und sonst manuell über fhem starten? Möchte gern 2x täglich über fhem starten ohne die mittags Zeit. Schönen Abend noch. Lg
Razpberry on Raspberry Pi 3 mit Raspian Jessy

axel.mohnen

@Flipkill und Majorshark
Leider kann ich das Problem nicht nachstellen. Habt Ihr mal versucht das Modul zulöschen und wieder zu definieren?

@Xell1984
mittel "changeCfgCalendar" kannst du den Kantenmodus aktivieren (bordercut)
Beispiel: Du möchtes Sontags zweimal mähen mit Kantenmodus:
erster AT Befehl um 9:00  (changeCfgCalendar 0,10:00,300,1)
zweiter At Befehl um 16:00  (changeCfgCalendar 0,17:00,300,1)

@Daniel_B
Das sind die Statuswerte die z.Z vom Modul verarbeitet werden:
0 => "Idle",
       1 => "Home",
       2 => "Start sequence",
       3 => "Leaving home",
       4 => "Follow wire",
       5 => "Searching home",
       6 => "Searching wire",
       7 => "Mowing",
       8 => "Lifted",
       9 => "Trapped",
       10 => "Blade blocked",
       11 => "Debug",
       12 => "Remote control"

Die Statuswerte 30 (Going Home) oder 32(Bordercut) kennt das Modul (noch) nicht. Ich muss mir mal die MqTT Payload vom AWS genauer anschauen. Sollten die Werte so von Worx kommen werde ich diese auch im Module anpassen.

Viele Grüsse
Axel

majorshark

#138
@axel.mohnen

Wie ich oben schon geschrieben habe werden die Readings doch aktualisiert. Da ich aber mit event-on-change-reading .* arbeite, dauert es manchmal bis zu einer viertel Stunde bis die Readings aktualisiert werden.

Läuft also.

Edit, läuft doch nicht.
Wenn ich den gesamten PI neu starte werden die Readings nicht mehr aktualisiert. Erst nach disable -> 1 -> 0 werden die Readings wieder kontinuierlich aktualisiert.
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

DrNuke33

#139
Zitat von: majorshark am 08 Mai 2018, 08:39:25

Edit, läuft doch nicht.
Wenn ich den gesamten PI neu starte werden die Readings nicht mehr aktualisiert. Erst nach disable -> 1 -> 0 werden die Readings wieder kontinuierlich aktualisiert.

Kann sein das im pi ob das Modul nicht im Autostart ist bei mir speichert er es auch nicht im shall überprüfen mit"$ pm2 list"

majorshark

Hallo,

ich denke das betrifft nur den LandroidSrv und nicht das Modul. Ich hänge aber mal das pm2 show LandroidSrv an. Der LandroidSrv startet bei mir eigentlich immer zuverlässig und automatisch mit. Ich hänge es mal an. Vielleicht gibt es da ja doch was zu erkennen warum das Modul nach dem Neustart die Daten nicht aktualisiert.

Ist es vielleicht ein Timing Problem? Ich meine kann es sein, dass das Modul schon Online ist und den Server abfragen möchte aber der LandroidSrv ist noch nicht geladen wurde.


pi@raspberrypi ~ $ pm2 list
┌─────────────┬──────┬────────┬───┬─────┬───────────┐
│ Name        │ mode │ status │ ↺ │ cpu │ memory    │
├─────────────┼──────┼────────┼───┼─────┼───────────┤
│ LandroidSrv │ fork │ online │ 0 │ 0%  │ 32.4 MB   │
└─────────────┴──────┴────────┴───┴─────┴───────────┘

pi@raspberrypi ~ $ pm2 show LandroidSrv
Describing process with id 0 - name LandroidSrv
┌───────────────────┬──────────────────────────────────────────────┐
│ status            │ online                                       │
│ name              │ LandroidSrv                                  │
│ restarts          │ 0                                            │
│ uptime            │ 24h                                          │
│ script path       │ /opt/landroid/fhem-landroid-s/LandroidSrv.js │
│ script args       │ N/A                                          │
│ error log path    │ /home/pi/.pm2/logs/LandroidSrv-error-0.log   │
│ out log path      │ /home/pi/.pm2/logs/LandroidSrv-out-0.log     │
│ pid path          │ /home/pi/.pm2/pids/LandroidSrv-0.pid         │
│ interpreter       │ node                                         │
│ interpreter args  │ N/A                                          │
│ script id         │ 0                                            │
│ exec cwd          │ /home/pi                                     │
│ exec mode         │ fork_mode                                    │
│ node.js version   │ 6.10.0                                       │
│ watch & reload    │ ✘                                            │
│ unstable restarts │ 0                                            │
│ created at        │ 2018-05-04T06:15:51.166Z                     │
└───────────────────┴──────────────────────────────────────────────┘
Revision control metadata
┌──────────────────┬───────────────────────────────────────────────────┐
│ revision control │ git                                               │
│ remote url       │ https://github.com/axelmohnen/fhem-landroid-s.git │
│ repository root  │ /opt/landroid/fhem-landroid-s                     │
│ last update      │ 2018-05-09T09:33:25.639Z                          │
│ revision         │ d3c4936e946e382220be0fd7ea4cd22e45fc165f          │
│ comment          │ Update README.md                                  │
│ branch           │ master                                            │
└──────────────────┴───────────────────────────────────────────────────┘
Code metrics value
┌─────────────────┬────────┐
│ Loop delay      │ 0.56ms │
│ Active requests │ 0      │
│ Active handles  │ 5      │
└─────────────────┴────────┘

Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

bugster_de

#141
Hi,

coole Sache! Funktioniert bei mir auf Anhieb

Aber: ich habe zwei Landroid Worx S. Wie kann ich denn beide im FHEM anlegen?

Ich habe einfach mal zwei LANDROID in FHEM spezifizert, aber beide FHEM Instanzen sprechen den gleichen Worx an. Es wird der Worx angesprochen, den ich zuerst in Betrieb genommen und in der App registriert habe.
Die App selbst kann beide Landroid unabhängig steuern also muß es da vermutlich eine Möglichkeit geben, oder?

bioklima

#142
Bei mir werden die Readings auch nicht aktualisiert. Das Modul ist allerdings aktiv und wird beim Neustart des Raspi auch automatisch aktiviert, bei mir allerdings als Service. Die unter etc/systemd/system erstellte Datei landroid.service hänge ich für Interessierte mal an.
[Unit]
Description=Node.js Landroid Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=pi
#
ExecStart=/usr/local/bin/node /opt/landroid/fhem-landroid-s/LandroidSrv.js /var/log/LandroidSrv.log
Restart=on-failure
RestartSec=10
#KillMode=process

[Install]
WantedBy=multi-user.target
Raspi2B mit FHEM Razberry-ZWave/CUL-FS20 (noch Reste)/Homebridge/Landroid-S, Airupnp(Airplay für Sonos),HueBridge2,...

flipkill

Also ich hab den Landroid Server in einem Eigenen Docker Container laufen und habe auch das Disable Enable Problem also kann nicht nur ein Raspberry Pi Problem sein.

Wie isn das mit "totalBladeTime" wie kann ich die wenn ich die klingen gewechselt hab wieder auf 0 stellen?

Danke Gruß Jan

bioklima

Hier mal ein beispielhaftes hombridgemapping für den Landroid-S:

On=mowerStatus,values=/2|3|4|5|6|7/:on;;/.*/:off,cmdOn=startMower,cmdOff=stopMower
ChargingState=batteryCharging,values=false:NOT_CHARGING;;true:CHARGING;;/.*/:NOT_CHARGEABLE
BatteryLevel=batteryLevel,maxValue=100,minValue=0,minStep=1
CurrentTemperature=batteryTemperature,minValue=0,maxValue=100,minStep=0.1
                #OccupancyDetected=mowerStatusTxt,values=/Home|Idle/:OCCUPANCY_DETECTED;;/.*/:OCCUPANCY_NOT_DETECTED
ContactSensorState=mowerStatus,values=/1|2/:CONTACT_DETECTED;;/.*/:CONTACT_NOT_DETECTED
WaterLevel=batteryVoltage,minValue=18,maxValue=22,minStep=0.01


Die Zuhause-Position kann wie hier als Kontakt oder (auskommentiert) als Anwesenheitsmelder dargestellt werden, funktioniert beides. Da ich im Moment mit der Akkuanzeige nicht ganz zufrieden bin, habe ich die Spannung als Wasserstand (Prozent sind also Volt) eingefügt. Eine Spannung lässt sich meines Wissens noch nicht über Homebridge darstellen.

In Elgato-Eve stellt sich das wie im Anhang gezeigt dar. Der Mower lässt sich auch starten und nach Hause schicken.

Grüße
Raspi2B mit FHEM Razberry-ZWave/CUL-FS20 (noch Reste)/Homebridge/Landroid-S, Airupnp(Airplay für Sonos),HueBridge2,...

bugster_de

ich schiebe meine Frage nochmal an den Start: ich habe zwei Landroid Worx S. Wie kann ich denn beide im FHEM anlegen?

axel.mohnen

@Bugster_de
Das könnte man über ein "Port" Attribut in LandroidSrv.js und 74_LANDROID.pm lösen. Der port 8001 wird als default gesetzt.
Ich schaue mir das mal an... hatte nicht gedacht das jemand zwei haben kann  ;)

@flipkill
Könnte mit User-Readings funktionieren: https://wiki.fhem.de/wiki/UserReadings

@An alle mit Readings update Problem:
Bitte mal das "Verbose" Attribute im FHEM Module auf "3" setzen und speichern.
Was steht im LogFile?

majorshark

#147
Hallo Axel.

Bei mir werden die Readings nach einem Restart definitiv nicht aktualisiert. Gerade noch einmal gestern Abend einen Restart gemacht. Seit dem keine neuen Daten im DbLog.

Anbei mein fhem.log

2018.05.14 07:12:01 1: PERL WARNING: Subroutine LANDROID_GetReadings redefined at ./FHEM/74_LANDROID.pm line 639, <$fh> line 2626.
2018.05.14 07:12:01 3: LANDROID (Heinz) - defined with host localhost on port 8001 and interval 180 (sec)
2018.05.14 07:12:01 3: LANDROID (Heinz) - enabled
2018.05.14 07:12:01 3: LANDROID (Heinz) - set interval to 60
...
2018.05.14 07:12:07 3: DbLog LogDbLandroid - Creating Push-Handle to database mysql:database=fhem;host=192.168.3.5;port=3307 with user xxx
2018.05.14 07:12:07 3: DbLog LogDbLandroid - Push-Handle to db mysql:database=fhem;host=192.168.3.5;port=3307 created
...
2018.05.14 07:17:09 3: LANDROID (Heinz) - disabled
...
2018.05.14 07:17:40 3: LANDROID (Heinz) - enabled



LANDROID (Heinz) - enabled und schon werden die Readings wieder aktualisiert. Mehr Landroid ist im Log nicht drin.

Was mir noch zu dem Thema Statuswerten aufgefallen ist. Der "Heinz" ;-) hat letztens auch einen Statuswert 31 (3 -> 31 -> 1) sowie 32 und 33 gesendet. Die letzten beiden scheinen etwas mit den Mähzonen zu tun zu haben. (1 -> 32 -> 33 -> 7)

@bioklima
Was für ein genericDeviceType hast Du definiert?

Grüße
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

bioklima

Bei mir Folgendes und auch seit gestern Abend 21:10 Uhr keine Aktualisierung der Readings:



2018.05.13 12:27:49 1: *** EN FHEM/74_LANDROID.pm: No document text found[/size]

2018.05.13 21:10:48 1: PERL WARNING: Subroutine LANDROID_GetReadings redefined at ./FHEM/74_LANDROID.pm line 639, <$fh> line 1783.
2018.05.13 21:10:48 3: LANDROID (worxs) - defined with host localhost on port 8001 and interval 180 (sec)
2018.05.13 21:10:48 3: LANDROID (worxs) - enabled
2018.05.14 17:33:50 3: LANDROID (worxs) - disabled
2018.05.14 17:33:55 3: LANDROID (worxs) - enabled



Jetzt aktualisieren die Readings
Raspi2B mit FHEM Razberry-ZWave/CUL-FS20 (noch Reste)/Homebridge/Landroid-S, Airupnp(Airplay für Sonos),HueBridge2,...

axel.mohnen

#149
Es scheint das bei euch das auto polling mittels "InternalTimer()" nicht funzt....

Update:
Bitte mal die folgende URL im Browser eingeben:
http://[SERVER_IP]:8001/getMessage

Damit bekommt man direkt die Payload von der Worx Cloud (AWS).
"ls":1 -> Statuswert

Werden die Daten hier noch aktualisiert (nach Refresh im Browser)?