MQTT2 für Xiaomi Vacuum Sauger

Begonnen von Otto123, 12 Mai 2021, 12:53:37

Vorheriges Thema - Nächstes Thema

TomLee

#15
Das ist alles was im Log steht:

2021-05-14T01:16:01.515Z Connected successfully to mqtt server
2021-05-14T01:16:00.939Z Probed last id = 1001 using get_status (3 retries)
2021-05-14T01:15:59.914Z Webserver is running on port 80 (http)
2021-05-14T01:15:59.908Z Dummycloud is spoofing 203.0.113.1:8053 on 127.0.0.1:8053
2021-05-14T01:15:59.812Z No ssl key found. Expected path: /mnt/data/valetudo/key.pem
2021-05-14T01:15:59.810Z No ssl cert found. Expected path: /mnt/data/valetudo/cert.pem
2021-05-14T01:15:59.685Z timesync: 14 May 03:15:59 ntpdate[1804]: step time server 188.40.142.18 offset 0.881569 sec
2021-05-14T01:15:56.819Z Loading configuration file: /mnt/data/valetudo/config.json
Waiting for 30 sec after boot... done.
2021-05-13T16:31:45.507Z Connected successfully to mqtt server
2021-05-13T16:25:32.607Z Connected successfully to mqtt server
2021-05-13T16:25:31.957Z Probed last id = 1001 using get_status (3 retries)
2021-05-13T16:25:30.925Z Webserver is running on port 80 (http)
2021-05-13T16:25:30.920Z Dummycloud is spoofing 203.0.113.1:8053 on 127.0.0.1:8053
2021-05-13T16:25:30.833Z No ssl key found. Expected path: /mnt/data/valetudo/key.pem
2021-05-13T16:25:30.831Z No ssl cert found. Expected path: /mnt/data/valetudo/cert.pem
2021-05-13T16:25:30.704Z timesync: 13 May 18:25:30 ntpdate[17962]: step time server 213.239.239.165 offset 1.647292 sec
2021-05-13T16:25:27.864Z Loading configuration file: /mnt/data/valetudo/config.json
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
    at Socket.Readable.push (_stream_readable.js:213:10)
    at readableAddChunk (_stream_readable.js:272:9)
    at addChunk (_stream_readable.js:297:12)
    at Socket.emit (events.js:314:20)
    at Socket.ondata (_stream_readable.js:718:22)
    at Writable.write (/snapshot/valetudo/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:307:11)
    at writeOrBuffer (/snapshot/valetudo/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:398:5)
    at doWrite (/snapshot/valetudo/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:409:139)
    at Writable.writable._write (/snapshot/valetudo/node_modules/mqtt/lib/client.js:335:5)
    at work (/snapshot/valetudo/node_modules/mqtt/lib/client.js:321:12)
    at MqttClient._handlePacket (/snapshot/valetudo/node_modules/mqtt/lib/client.js:417:12)
    at MqttClient._handleAck (/snapshot/valetudo/node_modules/mqtt/lib/client.js:1367:7)
    at cb (/snapshot/valetudo/node_modules/mqtt/lib/client.js:705:7)
    at /snapshot/valetudo/lib/MqttClient.js:219:107
TypeError: Cannot read property 'vacuum' of undefined

                                                                                                     ^
this.client.publish(this.topics.homeassistant_autoconf_vacuum, JSON.stringify(this.autoconf_payloads.vacuum), {
/snapshot/valetudo/lib/MqttClient.js:219
2021-05-13T16:25:21.986Z Connected successfully to mqtt server


MiIO: mio-client 3.5.8
Firmware-Version: 004028
Installierte Version: 0.10.6.2


Spricht was dagegen nano zu installieren um sich die config.json mal anzuschauen oder besser nicht und die Datei dazu auf ein anderes System kopieren ?

So sieht die config.json aus:
{
  "spots": [],
  "areas": [],
  "timers": [],
  "ztimers": [],
  "mqtt": {
    "enabled": true,
    "identifier": "rockrobo",
    "topicPrefix": "valetudo",
    "autoconfPrefix": "homeassistant",
    "broker_url": "mqtt://user:pass@192.168.188.26:1883",
    "provideMapData": true,
    "caPath": "",
    "qos": 0
  },
  "dummycloud": {
    "spoofedIP": "203.0.113.1",
    "bindIP": "127.0.0.1"
  },
  "system": {},
  "ntpd": {
    "disabled": false,
    "server": "pool.ntp.org"
  },
  "webInterface": {
    "localization": "de"
  },
  "httpAuth": {
    "enabled": false,
    "username": "valetudo",
    "password": "valetudo"
  },
  "telegramBot": {
    "enabled": false,
    "token": "",
    "password": "",
    "host": "",
    "proxy": "",
    "clients": [],
    "sendConsumables": true,
    "sendConsumablesEvery": false
  },
  "allowSSHKeyUpload": true,
  "map_upload_host": "http://127.0.0.1"


Otto123

#16
Witzig, diese Meldung hatte ich vorhin auch:
ZitatTypeError: Cannot read property 'vacuum' of undefined
und dann ging mqtt nicht. Deshalb mein reboot.
Mein MiIO: miio-client 3.3.9 - von was hängt das ab? Sonst scheint alles gleich mit Meinem zu sein.

Es ist ja nicht so, das er unter valetudo/rockrobo/attributes nichts published!? Da kommt ein json zurück wo dann das drin steht:   "valetudo_state": { "id": 2, "name": "Charger disconnected" } da steht bei Dir scheinbar -1 ?
Man kann sich mit mqtt-explorer ganz gut anschauen was am FHEM MQTT2 Server so ankommt.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#17
ZitatMan kann sich mit mqtt-explorer ganz gut anschauen was am FHEM MQTT2 Server so ankommt.

Ich mach das immer "auf die Schnelle/nebenbei" mit einer einfachen Android-App MyMQTT, da kann man die Topics aber blöderweise nicht rauskopieren.

Ich sehe bisher nur Verkehr unter valetudo/rockrobo/attributes und valetudo/rockrobo/command_status.

reboot hatte ich eben auch mal einfach so gemacht, keine Änderung.

Zitat"valetudo_state": { "id": 2, "name": "Charger disconnected" } da steht bei Dir scheinbar -1 ?

ja da steht immer valetudo_state": { "id": -1, "name": "UNKNOWN STATE CODE" } drin.

TomLee

Nutzt du jetzt 0.10.6.2 oder noch 0.10.5, im Blog oder irgendwo anders stand 0.10.5?

Ich frag mich ob ich mal 0.10.5 ausprobieren soll ?

rudolfkoenig

ZitatIch mach das immer "auf die Schnelle/nebenbei" mit einer einfachen Android-App MyMQTT, da kann man die Topics aber blöderweise nicht rauskopieren.
Alternativ setzt man "attr MQTT2_SERVER rawEvents valetudo/.*" , und man kopiert topic+message aus dem FHEMWEB Event-Monitor raus.

Otto123

miio-client 3.3.9 vs 3.5.8 - da gab es doch bei der original Firmware Bezeichnung immer so eine zweiteilige Nummer in der Art "3.5.8_004018"
Das sieht doch so aus, als ob da jetzt ein Unterschied ist. Ich kann mich erinnern das diese Nummer sich auch mal änderte und dann irgendwas grundlegen anders war.
Hier tauchen nur 3.3.9 Nummern auf.
https://github.com/dgiese/dustcloud/wiki/Xiaomi-Official-Vacuum-Firmware 

Hattest Du mal ne andere Firmware und dabei ist etwas mit der "Unterlage" passiert?

Offenbar ist ja valetudo selbst auch ratlos UNKNOWN ...

Ich habe die aktuelle 10.6.2 als ich vor ein paar Tgaen anfing war es die 10.5
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#21
Zitat von: rudolfkoenig am 14 Mai 2021, 14:23:35
Alternativ setzt man "attr MQTT2_SERVER rawEvents valetudo/.*" , und man kopiert topic+message aus dem FHEMWEB Event-Monitor raus.

Ich weiß hab ich vor ein paar Minuten auch gemacht:

attr MQTT2_Server rawEvents valetudo/rockrobo/attributes:.*

und im Event-Monitor gefiltert mit valetudo in Match the whole line und frag mich warum ich nix sehe, der Monitor bleibt leer.

edit:

mit rawEvents valetudo/.* sehe ich alles  :P

Otto123

Wenn Du es so macht wie Rudi vorschlug, funktioniert das einwandfrei für beide Stellen:  ;)
valetudo/.*
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

ZitatHattest Du mal ne andere Firmware und dabei ist etwas mit der "Unterlage" passiert?

ja, Valetudo war schonmal drauf, irgendwann aber einfach weg.

Jetzt hab ich einfach

hip="<primäre host ip adresse>"
wget https://vacuumz.info/download/gen1/stock_root/root_4028.pkg
mirobo update-firmware --ip $hip root_4028.pkg


ausgeführt und Valetudo RE installiert.

TomLee

Zitat von: rudolfkoenig am 14 Mai 2021, 14:23:35
Alternativ setzt man "attr MQTT2_SERVER rawEvents valetudo/.*" , und man kopiert topic+message aus dem FHEMWEB Event-Monitor raus.

Da die Empfehlung jetzt vom Autor selbst kommt, ich frage mich schon länger warum dann in der Doku steht:

ZitatShould only be used, if there is no MQTT2_DEVICE to process the topic

Wir haben doch eine MQTT2_DEVICE-Definition, ist der Hinweis dann veraltet ?

TomLee

Was muss ich denn machen dass das Verzeichnis leer ist, ich mags einfach mal testen ob es sich mit der vorherigen Version anders verhält:

root@rockrobo:~# sudo apt-get purge valetudo-re
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  valetudo-re*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 14969 files and directories currently installed.)
Removing valetudo-re (0.10.6) ...
valetudo stop/waiting
dpkg: warning: while removing valetudo-re, directory '/usr/local' not empty so not removed
Processing triggers for ureadahead (0.100.0-16) ...


rudolfkoenig

ZitatWir haben doch eine MQTT2_DEVICE-Definition, ist der Hinweis dann veraltet ?
Nein, ich wollte mich aber kurz fassen, sonst wird das gerne ignoriert oder missverstanden.

Man kann MQTT2_SERVER auch ohne MQTT2_DEVICE betreiben, man reagiert dann auf diese "raw events" mit notify, und setzt Befehle per "set m2s publish topic message" ab.
Mit MQTT2_DEVICE sind rawEvents ueberfluessig (im Sinne von: "generiert sinnlosen Last"), da MQTT2_DEVICE selbst die besseren Events generiert. "should" ist als solches gemeint: mach es so, es sei denn, du weisst, was du tust.

Otto123

Das Verzeichnis /usr/local will er nicht entfernen obwohl es eigentlich in seinen Aufgaben steht? Ich würde das belassen und nicht löschen. Da stehen nur noch 3 Scripte drin, nichts weiter.

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Ich hab ein paar Minuten später nochmal mit
apt list --installed
geschaut und valetudu-re wurde nicht mehr aufgeführt ?
dann hab ich 0.10.5 installiert
valetudo-re/now 0.10.5 armhf [installed,local]
und am Verhalten hat sich nix geändert, keine Daten/Verkehr unter dem state-Topic.

Otto123

So ein Mist. Mein Bauch sagt mir: Da will der Unterbau mit valetudo nicht. Schau mal hier ist das auch mit den Nummern:
https://builder.dontvacuum.me/pkg/
Ich bin definitiv von einer relativ alten Version gekommen... Und zuletzt vom Werksreset ...
Ich suche mal ein bisschen nach valetudo logging, vielleicht gibt es ja einen Hinweis wenn man auf der Kiste eine Fehlermeldung findet.

@Joachim: Wie ist Deine miio-client Version auf deinem v1?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz