66 328 läst · 113 svar
66k läst
113 svar
Worx Landroid development
Hello! New year, new installation, new problems
Last year I had a working solution with trieb's python script. This year, not so much (new version and all).
My config.ini looks correct:
[Mqtt]
Host: localhost
Port: 1883
BaseTopic: goran
[Landroid]
Addr: http://192.168.9.5/jsondata.cgi
User: admin
Pin: 1234 (changed)
I can access the mower in a browser with the same credentials and IP.
I get no updates. And when I send a "check" cmd via the broker I get this:
# python run.py
Connected with result code0
Received new message
goran/command: check
Sending check...
Traceback (most recent call last):
File "run.py", line 126, in <module>
mqttc.loop_forever()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1261, in loop_forever
rc = self.loop(timeout, max_packets)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 811, in loop
rc = self.loop_read(max_packets)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1073, in loop_read
rc = self._packet_read()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1475, in _packet_read
rc = self._packet_handle()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1943, in _packet_handle
return self._handle_publish()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 2118, in _handle_publish
self._handle_on_message(message)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 2274, in _handle_on_message
self.on_message(self, self._userdata, message)
File "run.py", line 32, in on_message
handle_command(command)
File "run.py", line 51, in handle_command
send_check()
File "run.py", line 77, in send_check
check_general(data)
File "run.py", line 93, in check_general
push_message('/worked_hours', float(data['ore_movimento']))
KeyError: 'ore_movimento'
Any clues?
Last year I had a working solution with trieb's python script. This year, not so much (new version and all).
My config.ini looks correct:
[Mqtt]
Host: localhost
Port: 1883
BaseTopic: goran
[Landroid]
Addr: http://192.168.9.5/jsondata.cgi
User: admin
Pin: 1234 (changed)
I can access the mower in a browser with the same credentials and IP.
I get no updates. And when I send a "check" cmd via the broker I get this:
# python run.py
Connected with result code0
Received new message
goran/command: check
Sending check...
Traceback (most recent call last):
File "run.py", line 126, in <module>
mqttc.loop_forever()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1261, in loop_forever
rc = self.loop(timeout, max_packets)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 811, in loop
rc = self.loop_read(max_packets)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1073, in loop_read
rc = self._packet_read()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1475, in _packet_read
rc = self._packet_handle()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1943, in _packet_handle
return self._handle_publish()
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 2118, in _handle_publish
self._handle_on_message(message)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 2274, in _handle_on_message
self.on_message(self, self._userdata, message)
File "run.py", line 32, in on_message
handle_command(command)
File "run.py", line 51, in handle_command
send_check()
File "run.py", line 77, in send_check
check_general(data)
File "run.py", line 93, in check_general
push_message('/worked_hours', float(data['ore_movimento']))
KeyError: 'ore_movimento'
Any clues?
Firmware 2.21.
Found out that "ore_movimento" is not included in the response from my Göran.
Removed that but also added:
push_message('/state', data['state'])
push_message('/workReq', data['workReq'])
push_message('/message', data['message'])
push_message('/batteryChargerState', data['batteryChargerState'])
push_message('/distance', int(data['distance']))
I can see the topics end up in the broker so that part works fine now, thanks!
But I do not get any regular updates from the scripts, only when I send "check". Is that by design?
Found out that "ore_movimento" is not included in the response from my Göran.
Removed that but also added:
push_message('/state', data['state'])
push_message('/workReq', data['workReq'])
push_message('/message', data['message'])
push_message('/batteryChargerState', data['batteryChargerState'])
push_message('/distance', int(data['distance']))
I can see the topics end up in the broker so that part works fine now, thanks!
But I do not get any regular updates from the scripts, only when I send "check". Is that by design?
Ok thanks for checking.
I will update the script with checks if some variables are missing in the response from the mower.
As it is now no regular updates are made, just as you say but I should probably add an option to set updates based on a timer in the config. I will add that too!
I will update the script with checks if some variables are missing in the response from the mower.
As it is now no regular updates are made, just as you say but I should probably add an option to set updates based on a timer in the config. I will add that too!
I've now pushed an updated version that supports periodic checking.
Note that a new section in the config file has been added for this purpose:
[Misc]
CheckIntervalSeconds: 30
Also added the tags you were missing.
Note that a new section in the config file has been added for this purpose:
[Misc]
CheckIntervalSeconds: 30
Also added the tags you were missing.
Anyone using this with android S500?
I can see in the router the IP is 192.168.1.7.
There are no open ports on the IP, i guess it should be for this to work @miktr?
What command could I try in a browser to see if I can communicate with it?
I can see in the router the IP is 192.168.1.7.
There are no open ports on the IP, i guess it should be for this to work @miktr?
What command could I try in a browser to see if I can communicate with it?
Redigerat:
The data is on port 80, standard web.
Try this: http://192.168.1.7/jsondata.cgi
Then you need to input "admin" and your PIN if the browser asks you for authentication.
Try this: http://192.168.1.7/jsondata.cgi
Then you need to input "admin" and your PIN if the browser asks you for authentication.
Sorry for my bad english ihaven´t istalled anything yet becuse i dont understand how to. But can you get an sms or email or some notification when the landroid "crashes". My landroid have crashed every day since i started it for 2 weeks ago so i wounder i you can get a notification when that happens and see how long before its going home for charging. Its alwas on 48% why?? So i want to know what happens when it happens.
Yes, push notifications are possible for "old" models. I'm getting mine on Facebook Messenger.J JoppeW skrev:Sorry for my bad english ihaven´t istalled anything yet becuse i dont understand how to. But can you get an sms or email or some notification when the landroid "crashes". My landroid have crashed every day since i started it for 2 weeks ago so i wounder i you can get a notification when that happens and see how long before its going home for charging. Its alwas on 48% why?? So i want to know what happens when it happens.
See https://github.com/mjiderhamn/worx-landroid-nodejs/blob/master/home-assistant.md for more information.
I've made some documentation about integrating with the new 2017 Landroid S models that use an intermediate cloud service between the app and the mower. See https://github.com/mjiderhamn/worx-landroid-nodejs/blob/master/landroid-mqtt.md