Worx Rasenroboter - was gibt die webschnittstelle her

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

Vorheriges Thema - Nächstes Thema

FFHEM

Habe die Ursache gefunden, warum mein Raspberry beim Installieren der Landroid-Worx-Adapter Probleme machte:
https://forum.fhem.de/index.php/topic,55053.msg1032442.html#msg1032442

1. Habe  node  und nodejs deinstalliert (nodejs war noch von einer vorherigen Installation vorhanden, könnte Probleme bereit haben, bin mir aber nicht sicher. Dank Allgaeuer (!) ist nodejs nicht notwendig). Dann nur noch node.js installiert.

2. Dann hatte ich diese Zeile aus der Git-Anleitung:
pm2 start /opt/landroid/fhem-landroid-s/LandroidSrv.js -f -- mower1
ohne "-- mower1" aufgerufen (hatte das als Kommentar aufgefasst  ::) ::)
Das führt dazu, dass die Mower-ID fehlt und der Server immer wieder neu gestartet wird.
Letzteres kann man in den Infos zum Prozess sehen:
pm2 show LandroidSrv

┌───────────────────┬──────────────────────────────────────────────┐
│ status            │ online                                       │
│ name              │ LandroidSrv                                  │
│ namespace         │ default                                      │
│ version           │ N/A                                          │
restarts          │ 65                                            │


Bei "restarts" stand dann schon nach kurzer Zeit eine zweistellige Zahl, was die CPU-Auslastung erklärt.

Diese Info nur für diejenigen, die evtl. auch das Problem einmal haben.

Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Allgaeuer

@FFHEM: freut mich, dass es geklappt hat
@xasher:
a) Du hast das Intervall auf 60sec gesetzt, d.h. Du ballerst ordentlich auf den Landroid-Server. Zumindest für die Fehlersuche solltest Du wieder auf 180 sec gehen.
b) teste mal, wie im Post #611 beschrieben.

lestat.le

Hallo.

Hat jemand noch eine Idee warum bei mir edgecutting nicht zur Auswahl steht?

Grüße

Allgaeuer

@lestat.le: kann es sein, dass Du eine alte Version von 74_Landroid.pm hast? Aktuell ist die V1.7

lestat.le

Wo kann ich das nachschauen bzw. wie komme ich an die Version 1.7?
Ist komisch, da ich die Funktion schonmal gesehen hatte. Allerdings hatte ich vor ein paar Tagen nochmal Teile der Anleitung befolgt und quasi nachinstalliert, da ich eine Fehlermeldung hatte.

Allgaeuer

den cat-Befehl eingeben wie im Screenshoot, dann schauen.

lestat.le

@Allgaeuer
Ich hatte eine alte Version von 74_LANDROID.pm.
Jetzt hab ich die Version 1.7 und auch die gewünschte Funktion.

Vielen Dank für den Tipp und deine Hilfe

xasher

Zitat von: Allgaeuer am 19 März 2020, 19:59:20
@xasher:
a) Du hast das Intervall auf 60sec gesetzt, d.h. Du ballerst ordentlich auf den Landroid-Server. Zumindest für die Fehlersuche solltest Du wieder auf 180 sec gehen.
b) teste mal, wie im Post #611 beschrieben.

Hallo Algaeuer,

ich habe die Seite mit der IP des FHEM aufgerufen: http://192.168.0.149:8001/getMessage
und bekomme leider eine leere Seite.
Das Intervall sitzt wieder auf 180.

Grüße,
Alex

Allgaeuer

@xasher (und andere, die Verbindungsprobleme haben) für die Installation am raspi:
Zur Fehlersuche empfehle ich folgende Vorgehensweise:
a) Testen, ob der Login zum Worx-Server überhaupt klappt. Dazu eignet sich diese PC-App hervorragend
https://www.roboter-forum.com/index.php?thread/22795-entwicklungsprojekt-worx-landroid-kress-mission-desktop-app/

b) die aktuelle Installation überprüfen, Ihr solltet nach der Anleitung vorgeganen sein:
    - https://github.com/axelmohnen/fhem-landroid-s
    - die laufenden Instanzen von "LandroidSrv.js" prüfen (im Normalfall habt Ihr nur 1 Instanz) mit der Eingabe $pm2 list
    - die Bildschirmausgabe im Gut-Fall sieht so aus (Anzahl der Spalten hängt von der Breite des Terminalfensters ab):
        ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
        │ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
        ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
        │ 0  │ LandroidSrv        │ fork     │ 0    │ online    │ 2.2%     │ 43.2mb   │
        └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘


    - alle bestehenden Instanzen vorerst mal stoppen mit: $pm2 stop all
    - jetzt prüfen, ob die Installation grundsätzlich funktioniert: 
       ins richtige Verzeichnis wechsel: $ cd /opt/landroid/fhem-landroid-s/
       node-server testen mit: pi@rasp2:/opt/landroid/fhem-landroid-s $ node LandroidSrv.js mower1
       dann sollte eine längere Bildschrimausgabe kommen, die so beginnt:
      DEBUG: Connect to worx....
      DEBUG: Connect to worx ok : {"token_type":"Bearer","expires_in":31536000,"access_token":"eyJ0.....

       wenn das nicht kommt, dann bitte prüfen, ob Ihr in der Datei LandroidConf.json die korrekte eMail + Passwort eingegeben habt
       (eMail und Passwort habt Ihr getestet oben Punkt bei a) -> die Fehlersuche macht keinen Sinn, wenn Ihr bei a) keine Verbindung herbekommt)
       mit CTRL-C abbrechen.
    - Für den Autostart: Wenn nur 1 Instanzen von "LandroidSrv.js hattet, dann diese wieder aktivieren mit $ pm2 start 0
      es sollte dann wieder die Tabelle wie oben erscheinen.
      jetzt mit $ pm2 save den "Autostart" aktivieren.
    - Für alle, die versehentlich mehrere Instanzen gestartet haben, mit $ pm2 delete 1 die nächste Instanz, $ pm2 delete 2 usw. alle überflüssigen Instanzen löschen
      und zum Schluss  $ pm2 save nicht vergessen.
    - Wenn jemand auch noch z.B. als "root" und manchmal als "pi" sich angemeldet hat, dann bitte mit "root" anmelden und auch hier prüfen, ob Instanzen laufen und ggf.
      alle löschen. Unter "root" sollte keine Instanz laufen, weil normalerweise 1 Instanz schon unter dem User "pi" gestartet wird.

Ich hoffe, dass Euch meine Anleitung weiterhilft, bei dem schönen Wetter hat unser Robbi bald was zu tun  ;)
     

xasher

Hallo Allgauer,

da hast du dir richtig viel Mühe gemacht - vielen Dank für die detailgetreuer Vorgehensweise.
Ich bin auch nochmals die Punkte durchgegangen und poste hier mal das Ergebnis:

Zitat von: Allgaeuer am 20 März 2020, 18:24:07
@xasher (und andere, die Verbindungsprobleme haben) für die Installation am raspi:
Zur Fehlersuche empfehle ich folgende Vorgehensweise:
a) Testen, ob der Login zum Worx-Server überhaupt klappt. Dazu eignet sich diese PC-App hervorragend
https://www.roboter-forum.com/index.php?thread/22795-entwicklungsprojekt-worx-landroid-kress-mission-desktop-app/
-> Das funktioniert wunderbar bei mir

Zitat von: Allgaeuer am 20 März 2020, 18:24:07
b) die aktuelle Installation überprüfen, Ihr solltet nach der Anleitung vorgeganen sein:
    - https://github.com/axelmohnen/fhem-landroid-s
-> Wurde vor einigen Tagen gemacht und scheint zu funktionieren.

Zitat von: Allgaeuer am 20 März 2020, 18:24:07
    - die laufenden Instanzen von "LandroidSrv.js" prüfen (im Normalfall habt Ihr nur 1 Instanz) mit der Eingabe $pm2 list
    - die Bildschirmausgabe im Gut-Fall sieht so aus (Anzahl der Spalten hängt von der Breite des Terminalfensters ab):
        ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
        │ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
        ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
        │ 0  │ LandroidSrv        │ fork     │ 0    │ online    │ 2.2%     │ 43.2mb   │
        └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘


Kommt bei mir - mit einer Instanz:

pi@raspberrypi:~ $ pm2 list
┌─────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name           │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ LandroidSrv    │ default     │ N/A     │ fork    │ 955      │ 22h    │ 1    │ online    │ 0.5%     │ 45.2mb   │ pi       │ disabled │
└─────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘


Zitat von: Allgaeuer am 20 März 2020, 18:24:07
    - alle bestehenden Instanzen vorerst mal stoppen mit: $pm2 stop all
    - jetzt prüfen, ob die Installation grundsätzlich funktioniert: 
       ins richtige Verzeichnis wechsel: $ cd /opt/landroid/fhem-landroid-s/
       node-server testen mit: pi@rasp2:/opt/landroid/fhem-landroid-s $ node LandroidSrv.js mower1
       dann sollte eine längere Bildschrimausgabe kommen, die so beginnt:
      DEBUG: Connect to worx....
      DEBUG: Connect to worx ok : {"token_type":"Bearer","expires_in":31536000,"access_token":"eyJ0.....

       wenn das nicht kommt, dann bitte prüfen, ob Ihr in der Datei LandroidConf.json die korrekte eMail + Passwort eingegeben habt
       (eMail und Passwort habt Ihr getestet oben Punkt bei a) -> die Fehlersuche macht keinen Sinn, wenn Ihr bei a) keine Verbindung herbekommt)
       mit CTRL-C abbrechen.

Gesagt getan:

pm2 stop all
[PM2] Applying action stopProcessId on app [all](ids: 0)
[PM2] [LandroidSrv](0) ✓
┌─────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name           │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ LandroidSrv    │ default     │ N/A     │ fork    │ 0        │ 0      │ 1    │ stopped   │ 0%       │ 0b       │ pi       │ disabled │
└─────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

node LandroidSrv.js mower1
DEBUG: Connect to worx....
DEBUG: Connect to worx ok : {"token_type":"Bearer","expires_in":31536000,....
DEBUG: Worxcloud MQTT connected to: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com
DEBUG: Worxcloud MQTT subscribe to DB510/F0FE6B83706C/commandOut
DEBUG: Worxcloud MQTT get Message for mower S (20183019090500326364)
Sat, 21 Mar 2020 08:22:41 GMT --> New data arrived
Sat, 21 Mar 2020 08:22:41 GMT --> Landroid WebServer: server running


Zitat von: Allgaeuer am 20 März 2020, 18:24:07
    - Für den Autostart: Wenn nur 1 Instanzen von "LandroidSrv.js hattet, dann diese wieder aktivieren mit $ pm2 start 0
      es sollte dann wieder die Tabelle wie oben erscheinen.

Funktioniert auch so, wie du sagst:

pm2 start 0
[PM2] Applying action restartProcessId on app [0](ids: 0)
[PM2] [LandroidSrv](0) ✓
[PM2] Process successfully started
┌─────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name           │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ LandroidSrv    │ default     │ N/A     │ fork    │ 19445    │ 0s     │ 1    │ online    │ 0%       │ 19.6mb   │ pi       │ disabled │
└─────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘


Zitat von: Allgaeuer am 20 März 2020, 18:24:07
      jetzt mit $ pm2 save den "Autostart" aktivieren.
    - Für alle, die versehentlich mehrere Instanzen gestartet haben, mit $ pm2 delete 1 die nächste Instanz, $ pm2 delete 2 usw. alle überflüssigen Instanzen löschen
      und zum Schluss  $ pm2 save nicht vergessen.

Meine eine Instanz gespeichert:

pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /home/pi/.pm2/dump.pm2


Zitat von: Allgaeuer am 20 März 2020, 18:24:07
    - Wenn jemand auch noch z.B. als "root" und manchmal als "pi" sich angemeldet hat, dann bitte mit "root" anmelden und auch hier prüfen, ob Instanzen laufen und ggf.
      alle löschen. Unter "root" sollte keine Instanz laufen, weil normalerweise 1 Instanz schon unter dem User "pi" gestartet wird.
Ich hoffe, dass Euch meine Anleitung weiterhilft, bei dem schönen Wetter hat unser Robbi bald was zu tun  ;)

Checken unter root - läuft keine Instanz:

su
Passwort:
root@raspberrypi:/opt/landroid/fhem-landroid-s# pm2 list
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘


Ergebnis: Jetzt geht es :D
Ich freu mich total, wenn ich auch verwundert bin, an welcher Stelle es gehakt hat.
Ich bin dir auf jeden Fall sehr dankbar - gute Hilfestellung!

Allen einen guten Start in die neue Gartensaison - bleibt gesund,
Alex

networker

Vorsicht ist auch geboten wenn z.B. das Handy mit der aktiven Worx-App und FHEM im gleichen LAN eingebucht sind.
Mir hat das eine 24h Sperre eingebracht, und unnötige Fehlersuche.

iceman

Hi networker,

wodurch hast Du das mit der 24h Sperre gemerkt?

Letztes Jahr konnte ich noch die Fhem Verbindung und die App gleichzeitig benutzen... Aber seit heute, als ich den Mäher aus dem Winterschlaf geholt hab hbe ich Probleme.

Nach dem Firmware update auf 3.52 kommen an der App zwar Warnungen wie "Mäher angehoben" an. Allerdings läßt er sich nicht mehr von der App aus starten.

In Fhem kriege ich immer: localhost: Verbindungsaufbau abgelehnt (111)

Als Fehlermeldung.

Kann mir jemand weiterhelfen?

Ralli

Kann es vielleicht einfach damit zusammenhängen, dass das Token im notwendigen Zeitraum nicht erneuert wurde, weil dat Mäh so lange aus war und deswegen keine fehlerfreie Verbindung mehr zustande kommt, bis die Anbindung neu initialisiert wird?

Bei mir klappt mit einem 2019er M700 die App parallel zum fhem-Dämon.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

networker

gemerkt habe ich das in FHEM keine Daten angekommen sind (leere Datensätze)
und mit der App war keine Datenänderung möglich.



The Spirit

Zitat von: iceman am 22 März 2020, 16:09:01
Hi networker,

wodurch hast Du das mit der 24h Sperre gemerkt?

Letztes Jahr konnte ich noch die Fhem Verbindung und die App gleichzeitig benutzen... Aber seit heute, als ich den Mäher aus dem Winterschlaf geholt hab hbe ich Probleme.

Nach dem Firmware update auf 3.52 kommen an der App zwar Warnungen wie "Mäher angehoben" an. Allerdings läßt er sich nicht mehr von der App aus starten.

In Fhem kriege ich immer: localhost: Verbindungsaufbau abgelehnt (111)



Als Fehlermeldung.

Kann mir jemand weiterhelfen?

hatte ja am schluss das gleich problem, aber bei mir läuft es jetzt wieder.
hast du schon mit der app getestet, ob du damit die daten abrufen kannst?
wenn ja, schau mal ob du vom pi oder wo auch immer dein fhem läuft in der konsole google.de anpingen kannst?
bei mir hatte der pi keine verbindung mehr mit dem internet, und daher eben das 111.
THZ 304 Eco Baujahr 2015