MQTT2 für Xiaomi Vacuum Sauger

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

Vorheriges Thema - Nächstes Thema

Otto123

Dann kopiere Dir die Datei auf ein anderes Linux System und führe den Befehl entsprechend abgewandelt dort aus ;)
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

michisa86888

Zitat von: Otto123 am 17 Januar 2023, 22:01:17
Dann kopiere Dir die Datei auf ein anderes Linux System und führe den Befehl entsprechend abgewandelt dort aus ;)
Hat geklappt, wunderbar dankeschön nun spricht mein Robo auch wieder deutsch.

Noch eine andere Frage, ich habe ja das aktuelle Valetudo 2023.01.0 mit Firmware ver 2034 drauf. Hier müsste doch die Raumerkennung (Segmente) für meinen S5 auch funktionieren.
Unter Map / Segmente kann ich in der valetudo Oberfläche aber nichts bearbeiten, die Karte ist auch komplett "blau" hinterliegt, keine angelegte Segmente zu erkennen?

Funktioniert die Raumerkennung beim S5 doch nicht - ich meine gelesen zu haben das mit dem update auf 2008 dies ergänzt wurde.

Otto123

Unter Map müsstest Du die Robot Managed Features sehen, wenn da nix ist? siehe Anhang bei mir (L10 Pro)
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

michisa86888

Ja die Robot Managed Features sehe ich auch, kann dort auch Segement Managment auswählen aber darin kann ich nichts bearbeiten bzw. ändern. Scheint eben auch nur die Karte zu sein und keine Segmente.

Otto123

Naja er kann offenbar keine Segmente selbst ermitteln, aber wenn Du mal store machts, dann kannst Du nicht mit Modify was bewegen? 
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

Darkmann

Hi,

bin gerade dabei das ganze hier mal zu verstehen.

Ich hab zumindest mal den Roboter in FHEM installiert bekommen und eine Goto Location.
Kann man den Staubbehälter irgendwie triggern? Plan ist, ich fahre ihm zum entleeren auf die Goto Entleeren, dann wenn der Staubbehälter entnommen wird und wieder eingesetzt das er automatisch zum Dock fährt oder wenn 5 Minuten nichts passiert das er dann auch einfach zurück fährt.

Kann ich eigentlich einfach einen AlexaNamen vergeben und die Funktionen dann per sprache steuern?

Gruß

Otto123

Hallo Darkmann,

welchen Sauger hast Du?
Mein V1 hatte im alten Xiaomi Modul einen Event für dustbin. Mein L10 pro hat das nicht. Die Valetudo Software überträgt aber auch nicht alles per MQTT, ich meine mit MQTT hatte ich auch kein dustbin mehr.
Ich habe jetzt bei mir folgende Logik mit der ich eigentlich gut zurecht kommen:
"Goto Eimer"
Die Leerung quittiere ich einfach mit der "Goto Home" Taste am Sauger :) 

Alexa bin ich nicht fit, aber die kann doch nur bestimmte "Kommando Typen" - da müsste man eventuell einen Übersetzer bauen?

Gruß Otto
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

ZitatKann ich eigentlich einfach einen AlexaNamen vergeben und die Funktionen dann per sprache steuern?

Für ValetudoRE hätt ich eine Lösung über einen zusätzlichen pct-setter anzubieten.

Zur Umsetzung wird benötigt:

ein zusätzlicher Eintrag im Attribut userreadings, !ergänzt mit Komma!
.available_cmnds:valetudo_state_name:.Idle {return join(',',sort map {(split ':',$_)[0]} split '\s',getAllSets($name))}
damit wird ein verstecktes Reading erstellt das alle setter-Namen des Device kommgetrennt beinhaltet.

In setList müssen zwei weitere setter (speech_cmnd und pct) ergänzt werden:
speech_cmnd:{'multiple-strict,'.ReadingsVal($name,'.available_cmnds','none');} {sleep 0.5;;fhem("setreading $NAME $EVTPART0 $EVTPART1")}
pct:{'slider,1,1,'.(scalar(split(/,/,ReadingsVal($name,'speech_cmnd','none')))+scalar(split(/,/,ReadingsVal($name,'zones','none')))).',1'} {my @d = split(/,/,ReadingsVal($NAME,'speech_cmnd','none'));my @e = split(/,/,ReadingsVal($NAME,'zones','none'));;my ($i,%pct2cmd);map {$i++;$pct2cmd{$i} = $_;} (@d);$i= keys %pct2cmd;map {$i++;$pct2cmd{$i} = 'zone '.$_;} (@e);my $cmd = $pct2cmd{$EVTPART1};return if !$cmd;return fhem("set $NAME $cmd;setreading $NAME pct $EVTPART1");}


Mit dem setter speech_cmnd wählt man sich aus der Liste, die in dem Reading .available_cmnds steht, die Befehle aus die man zusätzlich zu den Zonen per Sprache absetzen möchte. An diese ausgewählte Liste wird automatisch im pct-setter die Liste aller verfügbaren Zonen angehangen. (Ich geb zu das das nicht optimal umgesetzt ist, ergänzt man im nachhinein einen setter in speech_cmds muss man die bereits erstellten Routinen anpassen).

In der App erscheint der pct-setter als slider, zu jedem Wert legt man sich dann den entsprechenden Sprachbefehl über eine Routine an.

Darkmann

Hi,

ich hab einen Roborock S50, hab gerade mal geschaut hab leider auch kein dustbin in der Auflistung.

Ich hab Valetudo auf dem Sauger. Wird wohl nichts mit Sprachsteuerung?

Danke

Otto123

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

schwatter

Moin,

mein Deebot 950 hat sich selbst zerstört. Jetzt ist einer unterwegs, auf dem ich Valetudo installieren kann.
Frage, ist Valetudo Re immer noch vorzuziehen oder hat
Valetudo aufgeholt?

Gruß schwatter

meier81

Hallo Otto,

hab mal eine Frage: Ich hatte eben einen Fehler im meinem Drucker da die Hauptwalze blockiert war.

In FHEM habe ich aber leider keinen Fehler stehen, nur state "idle".

Hast du da eine Idee warum da nichts kommt oder muss dann die Info über die API ausgelesen werden?

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Otto123

Also ich hoffe Du meintest nicht wirklich den Drucker? ;D

Fehlermeldungen kommen über MQTT, aber ob wirklich alle möglichen?
Ich hatte bisher sowas:
Zitat2022-12-19_09:30:05 MQTT2_ClumsyQuirkyCattle error_description: Cannot reach target
2023-01-08_14:40:15 MQTT2_ClumsyQuirkyCattle error_description: Wall sensor dirty
2023-01-24_09:10:11 MQTT2_ClumsyQuirkyCattle error_description: Filter jammed
gab es denn wenigsten eine Fehlermeldung in FHEM?

Gruß Otto
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

meier81

Hi Otto,

war natürlich der Sauger gemeint ;D

Also im Log habe ich zu der Uhrzeit heute morgen leider auch keine Einträge.

Sicherheitshalber hier mal meine Definition:

define EG_fl_HW_Saugroboter MQTT2_DEVICE valetudo_ExpensiveRegalMongoose
attr EG_fl_HW_Saugroboter userattr timeformat
attr EG_fl_HW_Saugroboter devStateIcon docked:rc_PLAY:start (moving|cleaning):rc_PLAY@blue:pause (idle|paused):rc_PAUSE@red:start returning:refresh:pause
attr EG_fl_HW_Saugroboter devicetopic valetudo/rockrobo
attr EG_fl_HW_Saugroboter event-on-change-reading .*
attr EG_fl_HW_Saugroboter icon vacuum_top
attr EG_fl_HW_Saugroboter model valetudoV2
attr EG_fl_HW_Saugroboter readingList $DEVICETOPIC/\x24state:.* _state\
  $DEVICETOPIC/.*/[a-zA-Z\-_]+:.* { $TOPIC =~ m,$DEVICETOPIC\/(.*)\/([a-zA-Z\-_]+),;; valetudo_r($NAME,$1,$2,$EVENT) }
attr EG_fl_HW_Saugroboter room Erdgeschoß->Flur
attr EG_fl_HW_Saugroboter setList pause:noArg $DEVICETOPIC/BasicControlCapability/operation/set PAUSE\
  start:noArg $DEVICETOPIC/BasicControlCapability/operation/set START\
  stop:noArg $DEVICETOPIC/BasicControlCapability/operation/set STOP\
  charge:noArg $DEVICETOPIC/BasicControlCapability/operation/set HOME\
  clean_zone:{valetudo_w($name,'zones')} { valetudo_c($NAME,$EVENT) }\
  fanSpeed:min,low,medium,high,max $DEVICETOPIC/FanSpeedControlCapability/preset/set $EVTPART1\
  locate:PERFORM   $DEVICETOPIC/LocateCapability/locate/set $EVTPART1\
  x_raw_payload:textField { valetudo_c($NAME,$EVENT) }\
  delete:zones,locations {fhem("deletereading $NAME .$EVTPART1");;;;return undef}\
  zoneNew:textField { valetudo_z($NAME,$EVENT) }\
  zoneRename:textField { valetudo_z($NAME,$EVENT) }\
  get:segments,release,ip { valetudo_g($NAME,$EVENT) }
attr EG_fl_HW_Saugroboter setStateList operation clean_segment clean_zone goto fanSpeed waterUsage locate x_raw_payload
attr EG_fl_HW_Saugroboter stateFormat cleanerState\
<a href="http://ip4" target="_blank">cleanerState</a>
attr EG_fl_HW_Saugroboter timeformat Minuten
attr EG_fl_HW_Saugroboter timestamp-on-change-reading .*
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Otto123

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