Worx Landroid S with openHAB

Tags: #<Tag:0x00007faed9fa3b08> #<Tag:0x00007faed9fa3978> #<Tag:0x00007faed9fa36f8>

Hi i have this problem. Any idea?

[2019-04-10T16:25:35.753] [INFO] server.ts - Starting Landroid Bridge…
[2019-04-10T16:25:35.757] [INFO] server.ts - Setting port to 3000…
[2019-04-10T16:25:35.830] [INFO] Mqtt - Connecting to MQTT Broker…
[2019-04-10T16:25:35.832] [INFO] App - Adding static files path /root/landroid-bridge/www
[2019-04-10T16:25:35.832] [INFO] Scheduler - Skipping scheduler initialization (not enabled)
[2019-04-10T16:25:35.836] [INFO] LandroidS - Initializing Landroid Cloud Service…
[2019-04-10T16:25:35.838] [WARN] IoBrokerAdapter - landroid-cloud-2.js will be replaced in next version by mqttCloud.js and worxConfig.js. Reason: better handling of models and mqttCloud supports more brands by a diffent config see also: https://www.npmjs.com/package/iobroker.kress
[2019-04-10T16:25:35.882] [INFO] Mqtt - Successfully connected to MQTT Broker!
[2019-04-10T16:25:35.931] [INFO] Mqtt - Incoming MQTT message to topic landroid/set/: stop
[2019-04-10T16:25:35.931] [ERROR] LandroidS - Unknown MQTT topic: set/
[2019-04-10T16:25:36.244] [ERROR] App - Unhandled exception: SyntaxError: Unexpected token N in JSON at position 0

Landroid have changed their API.

There’s an Issue created for this on GitHub: https://github.com/weweave/landroid-bridge/issues/46

Thanks to the immediate response! I just didn’t understand whether to install the package or what to replace the mqttCloud.js file

You should need to do the following:

1: Edit package.json to change the referenced version of ioBroker.landroid-s from 2.5.4 to 2.5.5
2: Edit the src/LandroidS.ts file changing import * as LandroidCloud from "iobroker.landroid-s/lib/landroid-cloud-2"; to import * as LandroidCloud from "iobroker.landroid-s/lib/mqttCloud"; as noted in the pull request.
3: Execute npm run grunt to rebuild and pull the new stuff.

Sorry for a clarification I used landroid bridge to associate it with openhab …

thank you very much I succeeded!

1 Like

Hi,
I’d like to step in here.

(Openhab 2.4, Raspberry 3B, tested with node 10.15 and 8.12)

When I try to start the landroid-bridge, it shows contradicting log messages:

[2019-04-14T11:26:54.011] [INFO] LandroidS - Initializing Landroid Cloud Service...
[2019-04-14T11:26:54.034] [INFO] Mqtt - Successfully connected to MQTT Broker!
Mqtt url: undefined
[2019-04-14T11:26:55.096] [INFO] IoBrokerAdapter - mower 0 selected

I also noticed in the logfile of my mosquitto service:

1555231112: New connection from 127.0.0.1 on port 1883.
1555231112: New client connected from 127.0.0.1 as mqttjs_2512311c (c1, k60, u'openhabian').
1555231138: Socket error on client mqttjs_2512311c, disconnecting.

My config.json:

"mqtt": {
    "enable": true,
    "url": "mqtt://<user>:<pw>@openhabianpi",
    "topic": "landroid"
},

Due to build errors I changed

import * as LandroidCloud from "iobroker.landroid-s/lib/landroid-cloud-2";

to

import * as LandroidCloud from "iobroker.landroid-s/lib/mqttCloud";

in LandroidS.ts, which helped.

I also tried different hosts in the config.json (127.0.0.1, localhost, 192.168.x.x) but no change at all.
Other clients, such as my ESPs around the network are working with the same MQTT credentials flawlessly.

Has someone also experienced this error?

I also builded and started the landroid-bridge on my windows pc - the same error.
Maybe it’s some changed method in the new mqttCloud library?

Have you also updated package.json from:

"iobroker.landroid-s": "^2.5.4",
to
"iobroker.landroid-s": "^2.5.5",

Yes I’ve tried that. And rebuilded after that.

I think the iobroker is for the communication between the bridge and the worx servers.
I can see all of my robot’s readings in the web ui , so that is working (I think it was also working with 2.5.4).

The part that isn’t working is the MQTT communication between the landroid-bridge and the OpenHab instance (on the same Raspberry Pi). I used the Mosquitto ‘installation wizard’ from OpenHab’s GUI and it’s working with all of my devices.

Edit: The error message comes from the iobroker, https://github.com/MeisterTR/ioBroker.landroid-s/blob/master/lib/mqttCloud.js at line 74. I opened an issue regarding that. Maybe we’ll find a solution.

How did you do that without MQTT, but the data is accessed via the cloud? do you have the configuration for it?

The Code from MeisterTR is for ioBroker, can i usw. it for openHab?

I have this installed

Im not using openHab, but data is stored in an SQLLITE database as i can see, so you need to read this data somehow with a driver from OpenHAB.

I’ve already wondered, this is for openHab and not for ioBroker.

you misunderstood me, that was not a criticism that you post something of ioBroker in this forum here, but that I was amazed that it runs differently with you as openHab with me. That you delete your posts now I find childish and pity.

1 Like

HI,

I like to stop my e-Dolly once in accident green irrigation was initiated while shaun is out there. As shaun can’t get home any longer because of valves open close to wire I just like to stop shaun where it is with landroid/set/mow but this command doesn’t work for me :-/

Anyone having this running???

Getting the same error here, which issue did you open? Have you found a solution in the meanwhile?
Thanks,
Stefan
[edit] Nevermind, found it out myself. Error goes away when mover is started and connected to app.

Hi @virtualzone,
are there ideas to adapt the bridge to the new ioBroker.worx component of MeisterTR (https://github.com/MeisterTR/ioBroker.worx)? I think further development is only going on in the new worx adapter.

Hi all. I’m not sure if this is the right place to ask, but since iobroker has the best integration tool with Landroid-S, I hope than someone can answer. I’m trying to find the terms of service of the Landroid-S lawn mowers api, but I can not find anything. In the german forums there are post about Worx complaining about the abuse of the api, but I dont understand German and even with google translate everything is very confusing to me.
Bluestacks Lucky Patcher

AFAIK there’s no “official” API and so no terms and conditions to use it. The use of the reverse engeneered API is tolerated.