Worx Rasenroboter - was gibt die webschnittstelle her

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

Vorheriges Thema - Nächstes Thema

The Spirit

Welche App?
Hast du nen link?
Dann kann ich das mal testen.
Danke
THZ 304 Eco Baujahr 2015


The Spirit

Danke. Werd ich morgen testen und nochmal bescheid geben.
THZ 304 Eco Baujahr 2015

lestat.le

Sorry. Da habe ich mich schlecht ausgedrückt. Ich meinte die application LandroidSrv.js. Die war nicht online.

fred_feuerstein

Zitat von: Allgaeuer am 17 März 2020, 17:21:03
Hallo,

ich suche Beta-Tester für eine FHEM-Landroid-Erweiterung. Ich habe ein FHEM-Modul geschrieben, dass auf dem Landroid-Modul aufsetzt und zusätzlich das "DWD_OpenData" verwendet.
Folgende wesentliche Funktionen sind drin:

- Starten/Stoppen nach Sonnenauf- / -untergang +/- Offset
- keine Ausfahrt, wenn Regen gemeldet ist
- Rasenwachstum-Simulator und daran gekoppelt eine Mäh-Notwendigkeitsberechnung (z.B. weniger Mähen, wenn's lange trocken ist)
- "vorsorgliches" Mähen, wenn die nächsten Tage Regen angesagt ist.
- Startzeit-Optionen: a) mit möglichst vollem Akku starten, b) so starten, dass Akku bei geplantem Mähende gerade leer ist, c) normaler Start zur geplanten Zeit.

Der Rasen bei mir wächst noch nicht richtig, d.h. mein Mäher dreht zur Zeit nur Testrunden im Keller.

Wenn jemand Interesse am Testen hat, dann bitte melden  ;)

@Otto: ich hoffe, ich bin Dir mit meinem vorigen Post nicht auf die Füße getreten. Deine Anleitung war für mich sehr hilfreich und sollte in keinster Weise auch nur ein Hauch von Kritik sein.


Klingt interessant. Wenngleich ich mir über DOIFs etc. und schaltbare Steckdose für den Shaun, Wetterdaten, Kalendersteuerung über Google-Kalender etc.  viele der von Dir genannten Funktionen bereits bei mir eingebaut habe.
Denke, ich brauche es aktuell nicht. Bin aber gespannt und würde es mir auf jeden Fall einmal anschauen und testen wollen.


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)

FFHEM

Zitat von: Allgaeuer am 17 März 2020, 20:12:08
Hallo FFHEM

2 Instanzen sollten nicht laufen. Gib mal ein:
$ pm2 stop 1
$ pm2 delete 1
$ pm2 list
$ pm2 save

damit sollte die 2. Instanz nachhaltig gelöscht sein.
Hallo Allgaeuer,
das war's!!!!  ;D ;D ;D ;D ;D ;D ;D ;D
Vielen Dank!
Der Raspi hat sich jetzt beruhigt, und nur noch 1 Landroid-Prozess/-Server läuft.
Viele Grüße

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

FFHEM

Leider zu früh gefreut.  :-\
Die CPU-Last ging mit der Änderung schlagartig runter. Raspi runter von 60 °C nach 50 °C
Auffrischen der Werte nach FHEM war auch noch aktiv.

Aber nach einem Reboot ist jetzt zwar auch nur noch 1 Landroid-Prozess vorhanden, aber
1. Werte in FHEM werden nicht mehr aufgefrischt
2. CPU-Auslastung ist wieder recht hoch: Die Zeile
node /usr/lib/node_modules/pm2/lib/ProcessContainerFork.js mower1
taucht im ca. 2-Sekunden-Takt mit einer hohen CPU-Auslastung von um die 100 % auf. Raspi-Temperatur deswegen wieder bei 60 °C.

Taucht dieser Prozess bei Euch auch mit dieser CPU-Last auf?


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

FFHEM

Ich komme irgendwie nicht weiter. Habe nun noch einmal node.js (für Raspberry Pi 3) installiert mit:

sudo apt-get install nodejs

Danach zeigen sowohl
nodejs -v
als auch
node -v
die Version
v10.19.0  an.

Ist es richtig, dass sowohl node als auch nodejs installiert sind?
Kann jemand einmal die beiden Befehle aufrufen?
Also  nodejs -v  und  node -v.

Was kann ich noch ausprobieren? Wie deinstalliere ich am besten den Landroid-Server, hatte wie gesagt, vorher

Vielen Dank!
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Allgaeuer

Hallo FFHEM

nodejs habe ich nicht mehr drauf. Ich habe erst vor Kurzem meine System neu aufgesetzt, deshalb vermutlich die neuere node-Version.

Kann es sein dass Du mehrere Instanzen von "LandroidSrv.js mower1" am laufen hast. Ich habe "node" und PM2 jeweils nur 1x drin.

$ nodejs -v
-bash: nodejs: Kommando nicht gefunden.
$ node -v
v13.9.0



Allgaeuer

was kommt, wenn Du (aus der Anleitung von Axel Mohnen) eingibt:

Execute node server for testing (exit afterwards with CTRL-C)
$ node LandroidSrv.js mower1

The Spirit

THZ 304 Eco Baujahr 2015

Allgaeuer

versuche mal Schritt für Schritt diese Anleitung.

https://github.com/axelmohnen/fhem-landroid-s

insbesondere das hier:
    Edit Landroid Adapter config File (Worx Login data)

$ nano LandroidConf.json

Change email address for mower1 (if you have more mowers please enter email for mower2 etc..)

Change password for mower1 (if you have more mowers please enter pwd for mower2 etc..)

Press CTRL-o to save changes

Press enter to confirm filename to write

Press CTRL-x to exit nano

Execute node server for testing (exit afterwards with CTRL-C)

$ node LandroidSrv.js mower1   

The Spirit

hab es nach der gemacht. dann mach ich das nochmal alles und geb bescheid. danke
THZ 304 Eco Baujahr 2015

xasher

Hallo zusammen,

ich habe ein ähnliches Problem wie "The Sprit". Ich habe einen Worx Landroid SO500i.
Bei mir wird inzwischen auch nur State 200 angezeigt


Internals:
   CFGFN      ./FHEM/88_garten.cfg
   DEF        localhost
   FUUID      5e731cf1-f33f-2077-f855-6b39fd61703875b1
   HOST       localhost
   INTERVAL   60
   NAME       robbi
   NR         1485
   PORT       8001
   STATE      200
   TYPE       LANDROID
   READINGS:
     2020-03-19 08:32:04   lastSetCommandMsg http://localhost:8001/edgeCutting?value=: empty answer received
     2020-03-19 08:32:04   lastSetCommandState cmd_error
     2020-03-19 09:02:12   lastStatusRequestError empty response
     2020-03-19 09:02:12   lastStatusRequestState statusRequest_error
     2020-03-19 09:02:12   state           200
   helper:
     requestErrorCounter 33
     setErrorCounter 1
Attributes:
   disable    0
   group      Mower
   interval   60
   port       8001
   room       Garten


Das hier liefert node

node LandroidSrv.js mower1
DEBUG: Connect to worx....
DEBUG: Connect to worx ok : {"token_type":"Bearer","expires_in":31536000,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiMmYyMjI4YzZmMjhjZTVlOGU2NjFhNDhjZTQyNjY4ZTZjMDI0YjY0ZjhiNDk5NjFhZDk0NDFmNDcxNTg2M2FkOGEzNzdhMWQwN2U5ZmIyN2UiLCJpYXQiOjE1ODQ2MDUwOTIsIm5iZiI6MTU4NDYwNTA5MiwiZXhwIjoxNjE2MTQxMDkyLCJzdWIiOiIxNTAxNDciLCJzY29wZXMiOlsiKiJdfQ.1AftyXz1LBKHgqNKcRnpSfhKduNwmePnlVv9veqpQE1ZLWHbmrg04EIp0P-14iLSEY1zd0KPFWlrWE6aZBlqV4TfoEbJibB_R5nYrpmBITbv5y8h79-WvI0Cnn8VUFS_SvcSP9dg1s1APJkusDGk7R-U_nTNkwcdaBfO1FJdXoW_rMAfqqDrHn2tr0USh5dWrHK-fXKp2Mk73uZRhbcSpTpU8iknfENWcFSWR3u8B0yMorJbdjs7h5dsoiqXbx8Ee-h-iFTXKBv-ftC6wl8HcrjuiYNo0CfJhVGhChvgg33eJ9KXr0opLRQKeYJwb9ztgk5NGJqlzu6qU-4RfH6BuLwCbTIpZECMJ8biBiuK0vYqKCipwyBA1QotqDvjgZv6U9ZHthnVcv-Is85lwr088xlrpg2QsUJ9F2okf-YVNSqT9admeM-giJ3t3ig40ZjcEf6Cxejk9TdatSA3v6ULcdoElqJRkgRT5kZ2D4WS0i_8ThHxo2mUtfZom9hY7yu2GIqE-pt8rfRdi6zzV1kz07zKUrUBtvOdZKavXkKypumbl11HRBHxmVDV_TAy-JWHpZb-JyY2MEpT5tp34snNM-U00Q6EilUzIgfyD7zTxYak9qJ4ldK_Gsx3x6ySGHlNMjFCiWWeikLOIRc3STF_Op4okYBZ1EH3qmNCPSIwa1Q","refresh_token":"def50200cb81109a8aa35365348a8372b02d551db6b575557b8995aa579f41ed3e87b68abbcce14f037e50af53e48d04cba0390401602979fb93c371d3ac4cd1d504c5918c381dc2e8401c9f8890b81bbb02e138b60d73753ac016509f061acbe49ffa9155124dcfcc20117139bf8c83db1961a4e97c11cba1a31bc1b44739afc5fbf760db4abb575343a8865b85da3416c24134c2100d0f76ffc7edd459565ee06295e43bb3dfa4745e16a72615cf28cd631f4e1376bdf7e5709a8124880d36ff5a7102e0b33ce6b94c3aa2cfb688a569aa8076625f0f131cfbbc9ebde953127e78d4743ca2bc7955b6df86361d0d847ab8d4a0b0d264b3176abf87ad3d7379b319ed6589ca2a74969e86060d69eed431066ea7c3e0d888b12c21850abd44f44261b7ebf193d740688aebe3b0009d68b1e1e3f04000474c9b54f791b40a74caa99a2ec474dbc4bfcf4c93a8d93e01bd192f5c111d3368d88f8c0a8205845ab40f9a48abc09f969281"}
Thu, 19 Mar 2020 08:04:53 GMT --> sucessfully connected!
Thu, 19 Mar 2020 08:04:53 GMT --> Landroid WebServer: server initialized
events.js:165
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::8001
    at Server.setupListenHandle [as _listen2] (net.js:1345:14)
    at listenInCluster (net.js:1386:12)
    at Server.listen (net.js:1474:7)
    at startWebServer (/opt/landroid/fhem-landroid-s/LandroidSrv.js:93:6)
    at Worx.worxCloud.on.worxc (/opt/landroid/fhem-landroid-s/LandroidSrv.js:456:4)
    at Worx.emit (events.js:180:13)
    at /opt/landroid/fhem-landroid-s/node_modules/iobroker.worx/lib/api.js:379:22
    at tryCatcher (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues (/opt/landroid/fhem-landroid-s/node_modules/bluebird/js/release/async.js:15:14)
    at runCallback (timers.js:763:18)
    at tryOnImmediate (timers.js:734:5)
    at processImmediate (timers.js:716:5)
Emitted 'error' event at:
    at emitErrorNT (net.js:1365:8)
    at process._tickCallback (internal/process/next_tick.js:114:19)


sudo netstat -a|grep 8001
tcp6       0      0 [::]:8001               [::]:*                  LISTEN
tcp6       0      0 localhost:8001          localhost:36044         TIME_WAIT


ein pm2 liefert das:

pm2 show LandroidSrv
Describing process with id 0 - name LandroidSrv
┌───────────────────┬──────────────────────────────────────────────┐
│ status            │ online                                       │
│ name              │ LandroidSrv                                  │
│ namespace         │ default                                      │
│ version           │ N/A                                          │
│ restarts          │ 1                                            │
│ uptime            │ 33m                                          │
│ script path       │ /opt/landroid/fhem-landroid-s/LandroidSrv.js │
│ script args       │ mower1                                       │
│ error log path    │ /home/pi/.pm2/logs/LandroidSrv-error.log     │
│ out log path      │ /home/pi/.pm2/logs/LandroidSrv-out.log       │
│ pid path          │ /home/pi/.pm2/pids/LandroidSrv-0.pid         │
│ interpreter       │ node                                         │
│ interpreter args  │ N/A                                          │
│ script id         │ 0                                            │
│ exec cwd          │ /opt/landroid/fhem-landroid-s                │
│ exec mode         │ fork_mode                                    │
│ node.js version   │ 9.9.0                                        │
│ node env          │ N/A                                          │
│ watch & reload    │ ✘                                            │
│ unstable restarts │ 0                                            │
│ created at        │ 2020-03-19T07:26:08.080Z                     │
└───────────────────┴──────────────────────────────────────────────┘
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      │ 2020-03-19T07:32:04.122Z                          │
│ revision         │ a138fd4d438ea4c808ff74287c1225f95044e383          │
│ comment          │ Merge pull request #13 from axelmohnen/version17  │
│                  │                                                   │
│                  │ Version17                                         │
│ branch           │ master                                            │
└──────────────────┴───────────────────────────────────────────────────┘
Code metrics value
┌────────────────────────┬──────────────┐
│ Heap Size              │ 14.03 MiB    │
│ Heap Usage             │ 85.35 %      │
│ Used Heap Size         │ 11.97 MiB    │
│ Active requests        │ 0            │
│ Active handles         │ 5            │
│ Event Loop Latency     │ 0.63 ms      │
│ Event Loop Latency p95 │ 12.58 ms     │
│ HTTP Mean Latency      │ 1 ms         │
│ HTTP P95 Latency       │ 9 ms         │
│ HTTP                   │ 0.02 req/min │
└────────────────────────┴──────────────┘
Divergent env variables from local env
┌────────────────┬──────────────────────────────────────┐
│ SSH_CONNECTION │ 192.168.0.142 56589 192.168.0.149 22 │
│ SSH_CLIENT     │ 192.168.0.142 56589 22               │
│ OLDPWD         │ /opt/landroid                        │
└────────────────┴──────────────────────────────────────┘

Add your own code metrics: http://bit.ly/code-metrics
Use `pm2 logs LandroidSrv [--lines 1000]` to display logs
Use `pm2 env 0` to display environment variables
Use `pm2 monit` to monitor CPU and Memory usage LandroidSrv


Der Robbi bekam in dieser Saison die Firmware 3.52. Über die Software von roboter-forum.com funktioniert der connect und ich bekomme die Daten richtig angezeigt.

Hat jemand noch eine Idee, was ich prüfen kann?

Besten Dank im Voraus,
Alex