MQTT2 für Xiaomi Vacuum Sauger

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

Vorheriges Thema - Nächstes Thema

drhirn

#195
Zitat von: Otto123 am 17 Oktober 2022, 14:09:49
Ich habe irgendwie den zweiten Beitrag schon damals nicht komplett verstanden.
Was Du als Workaround gepostet hattest, wird eigentlich im Template gesetzt. Hat das bei Dir nicht funktioniert? oder wurde da gar nichts gesetzt?
Es wird falsch gesetzt. Hab's gerade nochmal in einem Test-FHEM ausprobiert.

Gesetzt wird:
clean_zone:{valetudo_w($name,'zones')} { valetudo_c($NAME,$EVENT) }

Brauchen tu ich für den L10Pro aber
clean_segment:{valetudo_w($name,'segments')} { valetudo_c($NAME,$EVENT) }

Mir ist aber gerade aufgefallen, dass Valetudo für den/meinen L10Pro "ZoneCleaningCapability" beim Aufruf von /api/v2/robot/capabilities zurück liefert. Stimmt ja eigentlich nicht.
^egal. Template entscheidet ja nach MapSegmentation

drhirn

Zitat von: SalvadoreXXL am 17 Oktober 2022, 14:43:40
Kann ihr mir mal zeigen, was ihr im Valetudo für die MQTT-Connection eingetragen habt bzw. was da rein sollte
Im Anhang

drhirn

Übrigens @Otto123:

Sobald ich das Template aktiviere, bekomme ich eine nette Liste an Fehlern:

2022.10.17 16:22:29.766 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.766 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/SetExtensions.pm line 98.
2022.10.17 16:22:29.766 3: eval: valetudo_w($name,'zones')
2022.10.17 16:22:29.767 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.767 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.768 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.769 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.770 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.771 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.807 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.857 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:29.857 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.

2022.10.17 16:22:30.042 1: JSON decoding error, >< seems not to be valid JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_valetudoUtils.pm line 26.


Hat aber keine Priorität. Zuerst mal schauen, dass SalvadoreXXL glücklich ist.

drhirn

Zitat von: drhirn am 17 Oktober 2022, 15:43:59
Es wird falsch gesetzt. Hab's gerade nochmal in einem Test-FHEM ausprobiert.

Gesetzt wird:
clean_zone:{valetudo_w($name,'zones')} { valetudo_c($NAME,$EVENT) }

Brauchen tu ich für den L10Pro aber
clean_segment:{valetudo_w($name,'segments')} { valetudo_c($NAME,$EVENT) }

Moment mal. Kann das sein, dass es einen Unterschied macht, ob man "autocreate" am IODev verwendet oder das Gerät händisch anlegt (defmod Staubi MQTT2_CLIENT)?
Ich hab's mir gerade automatisch anlegen lassen und da hat's dann gepasst mit dem Template.

Otto123

#199
Zitatautocreate complex
Böse Einstellung!
Was steht hier auf Seite 1 ? :) https://forum.fhem.de/index.php/topic,121017.0.html
ZitatDie Anbindung per MQTT ist einfach:
Voraussetzung: MQTT2_SERVER in FHEM vorhanden, autocreate steht auf simpel

Zitat von: drhirn am 17 Oktober 2022, 16:24:29
Übrigens @Otto123:
Sobald ich das Template aktiviere, bekomme ich eine nette Liste an Fehlern:
Da ist der json Eintrag leer, so wie bei SalvadoreXXL auch.
{ReadingsVal('MQTT2_valetudo_ImpressionableDecimalWasp','.segments','{}') }liefert leer, d.h vom Staubsauger sind keine Segmente gesendet.
Warum? Erstmal keine Ahnung.

Eventuell weil MapData im MQTT Setup von valetudo aus ist? So kommen die Daten normal ins Reading. Kann auch sein die werden jetzt nur noch bei bestimmten Aktionen übertragen! Das neue Verhalten muss ich auch berücksichtigen.
$DEVICETOPIC/MapData/segments:.* .segments

Zu Beitrag #198
Ich frage die Eigenschaften bei der Anwendung des Templates ab. Das ist eventuell zu fragil :( deswegen würde ich ja gerne wissen was genau passiert ist.
sub valetudo_f {
    my $NAME = shift;   # Devicename of the robot
    my $substr = shift; # requested Feature like GoToLocation or MapSegmentation
    my $ip = ReadingsVal($NAME,'ip4',(split ',',ReadingsVal($NAME,'ips','error'))[0]);
    my $string = GetHttpFile($ip, '/api/v2/robot/capabilities');
    index($string, $substr) == -1 ? '0':'1';
}
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

SalvadoreXXL

Provide Map Data ist bei mir  immer an gewesen.

Allerdings wurden bei manchen Versuchen die einzelnen Segmente erst deutlich später angezeigt. Dauerte manchmal auch 1-2 Stunden. Keine Ahnung, was das triggert.

Otto123

es gibt übrigens valetudo 2022.10  :D
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

SalvadoreXXL

Zitat von: Otto123 am 17 Oktober 2022, 21:11:54
es gibt übrigens valetudo 2022.10  :D

Habs schon gesehen. Updaten? Scheint sich was zu tun bei MQTT ...

SalvadoreXXL

Hab jetzt die neue Verion drauf. Mittlerweile werden auch die Segmente angezeigt. Kommando bewirkt aber wiederum nix ...

Werde jetzt nochmal löschen und neu anlegen. Mal sehen, was passiert.

Otto123

es sieht immer noch so aus, als ob Dein mqtt2 Server auf autocreate complex steht. Ich weiß nicht was mit dieser Einstellung funktioniert.
Außerdem ist bei Neuanlage noch die valetudeUtils fehlerhaft.
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

SalvadoreXXL

Zitat von: Otto123 am 17 Oktober 2022, 22:03:11
Außerdem ist bei Neuanlage noch die valetudeUtils fehlerhaft.

Was muss noch geändert werden? Die zwei Änderungen von drhirn sind drin ...

Otto123

was steht nach dem Befehl in lastPublish des MQTT Servers drin?
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

SalvadoreXXL

im m2s

lastPublish

cmnd/Waschmaschine/Backlog:StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1



drhirn

Hehe
Lass mal einen Befehl auf den Staubsauger los (via FHEM). Und poste das dann bitte nochmal. Die Waschmaschine ist jetzt nicht so interessant ;D

SalvadoreXXL

#209
lastPublish ändert sich nicht, egal was ich mache. Scheint ein Anzeigefehler zu sein. Auf Start/Stop usw. reagiert der D9 auch ganz normal. Nur Seqmente mag er wohl nicht.

Oder ist das falsch:

defmod m2s MQTT2_SERVER 1883 global
attr m2s autocreate simple


Über Nacht haben sich auch wieder die Segmente eingestellt. Sieht jetzt nur etwas anders aus.