MQTT2 für Xiaomi Vacuum Sauger

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

Vorheriges Thema - Nächstes Thema

drhirn

Das heißt? Funktioniert bei dir jetzt alles?

drhirn

@Otto123: Ich hab da mal einen Patch für die 99_valetudoUtils.pm angehängt. Eh die bekannte Änderung.
Testen ist irgendwie mühsam, wenn man das dauernd händisch ändern muss ;)

drhirn

Die IP wird nicht oft genug via MQTT aktualisiert, als dass valetudo_f die Möglichkeiten des Roboters erfragen könnte. Deswegen auch keinen set-Befehl clean_segment. IP müsste man im Template als Parameter abfragen. Aber ich komme gerade nicht drauf, wie man das macht.

TomLee

ZitatIP müsste man im Template als Parameter abfragen. Aber ich komme gerade nicht drauf, wie man das macht.

Wenn das wirklich so sein sollte und umgesetzt wird:

dann wie gerade die Tage erst umgesetzt hier.

Parameter kann man dann über die Kommandozeile (mehrere Parameter Leerzeichengetrennt) direkt übergeben
<templatename> <varname=x.x.x.x>

oder über den setter attTremplate, dann wird der Parameter über das Dialogfeld abgefragt.

Otto123

Zitat von: drhirn am 18 Oktober 2022, 12:30:52
@Otto123: Ich hab da mal einen Patch für die 99_valetudoUtils.pm angehängt. Eh die bekannte Änderung.
Testen ist irgendwie mühsam, wenn man das dauernd händisch ändern muss ;)
Habe es eingecheckt - war schon vorbereitet, ich dachte es springt noch einer auf, der mir sagt warum das Internal DEVICETOPIC weggefallen ist.
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

drhirn

Da wäre ein Patch für mqtt2.template. Die IP wird jetzt als Parameter abgefragt und ein Reading "ip4" gesetzt (das ja ein readingsList dann auch verwendet wird). Damit kann sich die 99_valetudoUtils.pm die Fähigkeiten des Roboters richtig holen.

Die Segmente werde nur an MQTT gesendet, wenn der Roboter der Meinung ist, er will jetzt ein Update der Map schicken. Hier hab ich nachgefragt. Man könnte die ja aber auch über das API holen. Bzw. ist das in der 99_valetudoUtils.pm eh schon so halb vorbereitet wenn ich das richtig sehe. Das fertig zu machen, übersteigt aber leider meine Kompetenz.

**edit**
Ich darf darauf hinweisen, dass auch dieser Patch nur ein Vorschlag ist. Keine Ahnung, ob das alles so passt oder ob man's anders/besser lösen kann.

Otto123

Zitat von: drhirn am 18 Oktober 2022, 13:01:57
Die IP wird nicht oft genug via MQTT aktualisiert, als dass valetudo_f die Möglichkeiten des Roboters erfragen könnte. Deswegen auch keinen set-Befehl clean_segment. IP müsste man im Template als Parameter abfragen. Aber ich komme gerade nicht drauf, wie man das macht.
Naja, das zweite Problem sind ja die segments - die kommen nun auch uU nicht mehr mit. Ich überlege so eine Art setup setter, der einfach die Abfrage der Werte und Features triggert. Hypfer sagt ja selbst: Es kommt nicht alles per mqtt - man wird einige Dinge über Rest machen müssen.

Und man könnte natürlich aus dem Wert was machen (Beispiel)
Zitatmqtt2s_CONN mqtt2s_192.168.55.100_53438
Den sollte es ja immer geben - falls man Internals überhaupt "strategisch" verwenden sollte  ::)
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: drhirn am 18 Oktober 2022, 11:39:23
Das heißt? Funktioniert bei dir jetzt alles?

Bis auf die Segmente - Ja (war ja auch schon vor meiner Anfrage so). Bisher im Verhalten keine Änderung.

SalvadoreXXL

Zitat von: drhirn am 18 Oktober 2022, 15:06:52
Die IP wird jetzt als Parameter abgefragt und ein Reading "ip4" gesetzt (das ja ein readingsList dann auch verwendet wird).

Nach einiger Zeit (wenn auch die Segmente übertragen wurden) habe ich auch ein Reading ip4 - das passt auch zur tatsächlich verwendetetn IPV4.

drhirn

Zitat von: Otto123 am 18 Oktober 2022, 15:15:51
Hypfer sagt ja selbst: Es kommt nicht alles per mqtt - man wird einige Dinge über Rest machen müssen.

Hypfer hat aber auch gerade gesagt, die segments sind retained. Kann ich zwar gerade nicht nachvollziehen. Aber wenn das so ist, sollten die ja auf jeden Fall irgendwo sein.

Otto123

#220
@SalvadoreXXl
Wirf das mal angepasst mit Deinen Namen in die FHEM Kommanozeile
{my $name='MQTT2_ClumsyQuirkyCattle';;my $EVENT='clean_segment BadDusche';;valetudo_c($name,$EVENT)}

@drhirn
Aber wenn man das MQTT2 Device löscht und neu aufsetzen will? Wer sagt dem Roboter schicke jetzt die segments?
Danke für den Vorschlag ;)
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 18 Oktober 2022, 15:22:11
@SalvadoreXXl
Wirf das mal angepasst mit Deinen Namen in die FHEM Kommanozeile
{my $name='MQTT2_ClumsyQuirkyCattle';;my $EVENT='clean_segment BadDusche';;valetudo_c($name,$EVENT)}

@drhirn
Aber wenn man das MQTT2 Device löscht und neu aufsetzen will? Wer sagt dem Roboter schicke jetzt die segments?


valetudo/MQTT2_valetudo_ImpressionableDecimalWasp/MapSegmentationCapability/clean/set {"customOrder":"true","iterations":1,"segment_ids":[null]}

Otto123

#222
Zitatvaletudo/MQTT2_valetudo_ImpressionableDecimalWasp/MapSegmentationCapability/clean/set {"customOrder":"true","iterations":1,"segment_ids":[null]}
Da fehlt die ID :(
Edit: Moment! Da fehlt die Anpassung in der 99_valetudoUtils!!! Hier steht der Devicename und nicht der Topic!
Siehe Antwort #211

Hast Du auch den Segment Namen von Dir genommen? Oder BadDusche?

Da bräuchte ich mal die Ausgabe von
{my $NAME='MQTT2_valetudo_ImpressionableDecimalWasp';;ReadingsVal($NAME,'.segments',q{})}

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

drhirn

Zitat von: Otto123 am 18 Oktober 2022, 15:22:11
Aber wenn man das MQTT2 Device löscht und neu aufsetzen will? Wer sagt dem Roboter schicke jetzt die segments?
Ja, eh. Der Broker kennt sie aber. Kann man sie dem nicht irgendwie entlocken?

Otto123

#224
vielleicht  ??? aber man kann sie auch per RestAPI holen ;) und vielleicht andere Dinge die im Template auch bloß wieder "aufwendig" gehen. Zumal jeder Dialog an der Stelle für den User immer irgendwie verwirrend ist. das hat an der Stelle immer was von der Frage " Willst Du Cookies"?  ;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