Xiaomi WiFi Devices Modul (Vacuum/Airpurifier/Fan) - 72_XiaomiDevice (Support)

Begonnen von Markus M., 11 Juni 2017, 12:48:58

Vorheriges Thema - Nächstes Thema

Skusi

Zitat von: scourge am 28 Juni 2018, 21:08:15

Aktuell habe ich folgendes als DOIF
([10:00-16:00] and [Bewohner:state] eq "absent") (set sauger start) DOELSE (set sauger charge)

Das würde aber bedeuten das immer wenn die Wohnung zwischen 10 und 16 Uhr verlassen wird, ein neuer Saugvorgang gestartet wird...
Habt Ihr einen Tip für mich? Danke.

Gruß Andreas

Um das mehrfache Starten pro Tag zu vermeiden würde ich beim start ein reading oder Dummy setzten das ich dann abfrage. Dann eine weiteres DOIF oder notify das bei Tageswechsel dieses Reading / Dummy wieder zurücksetzt.

Beispiel:

([10:00-16:00] and [Bewohner:state] eq "absent" and [?sauger:schongesaugt] eq "ja") (set sauger start, setreading sauger:schongesaugt ja) DOELSE (set sauger charge)

Dann noch ein lösch DOIF:

([00:00]) (setreading sauger:schongesaugt nein)

--- Schnellschuß aus dem Kopf ---
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

scourge

Danke Skusi,

der Denkanstoss hat mich ans Ziel gebracht... geht bestimmt noch schöner, mit nem Watchdog oder so, aber es macht was es soll :)

Wenn die Bewohner weg sind, das Saugen auf automatik steht, wird zwischen 10 und 16  Uhr gesaugt und das dummy bereits gesaugt auf on gesetzt.
Wenn Bewohner wieder da sind, wird der Saugvorgang beendet, das dummy bereits gesaugt bleibt aber bis 0 Uhr gesetzt.
Wenn die Wohnung wieder zwischendurch verlassen wird, wird nicht wieder erneut gesaugt..

Für alle Interessiertem hier der Code mit ein paar Dummys

Saugen:
defmod di_sauger DOIF ([10:00-16:00] and [Bewohner:state] eq "absent" and [bereits_gesaugt:state] eq "off" and [saugen_auto:state] eq "on" ) (set sauger start;; wait 10;; set bereits_gesaugt on) DOELSE (set sauger charge)
attr di_sauger room Sauger


Saugabfrage:
defmod bereits_gesaugt dummy
attr bereits_gesaugt event-on-change-reading state
attr bereits_gesaugt genericDeviceType switch
attr bereits_gesaugt room Sauger
attr bereits_gesaugt setList on off
attr bereits_gesaugt webCmd on:off


Saugabfrage zurücksetzen:
defmod di_bereits_gesaugt DOIF ([00:00]) (set bereits_gesaugt off)
attr di_bereits_gesaugt room Sauger


Automatik Modus:
defmod saugen_auto dummy
attr saugen_auto event-on-change-reading state
attr saugen_auto genericDeviceType switch
attr saugen_auto room Sauger
attr saugen_auto setList on off
attr saugen_auto webCmd on:off


Danke Leute :)

Marlen

Jetzt bin ich wieder verwirrt, dachte man muss nach der Klammer ein Fragezeichen "[?" setzen, dann werden diese nur abgefragt, oder???
Ansonsten sind das doch alles Auslöser, oder hab ich da was falsch verstanden?
LG
Marlen

Gesendet von meinem Aquaris U Plus mit Tapatalk


Otto123

Hi scourge,

wait 10 Was ist das? ::)

Und DOIF will eigentlich , anstatt ;; zwischen den FHEM Befehlen.

Etwas zurück gab es auch schon mal ein Code Beispiel in einem DOIF.

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

scourge

Zitat von: Otto123 am 30 Juni 2018, 15:56:55
Hi scourge,

wait 10 Was ist das? ::)

Und DOIF will eigentlich , anstatt ;; zwischen den FHEM Befehlen.

Etwas zurück gab es auch schon mal ein Code Beispiel in einem DOIF.

Gruß Otto

oh hatte ich übersehen...
mit wait 10 wollte ich eigentlich das er das bereits gesaugt dummy etwas später setzt.
Das mit den "," anstatt ";" hab ich mal geändert.. hat vorher aber auch funktioniert :)

Otto123

aber wait ist ein attribute im DOIF, kein Befehl zwischen den anderen FHEM Befehlen :)

Ja die ;; gehen auch. Damian hatte letztens mal eine Begründung warum "," besser ist. Der alte Mann hat es vergessen.   :-[
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

Marlen

Hallo,  versteh das mit DOIF nicht:

Warum springt das DOIF bei Alarmanlage "Unscharf" gleich auf cmd_2? Muss nicht die erste Bedingung erfüllt sein, dass die 2. abgefragt wird?

([?Putzplan:komplett] eq "1" and [Alarmanlage_Status:"Scharf"] and [?Xiaomi] eq "Docked" and [?Autonome_Reinigung] eq "AN")
### Herausfahren START
(set Xiaomi remotecontrol start, sleep 10, set Xiaomi move 0 4 5000, sleep 3, set Xiaomi move 0 0 5000, sleep 4.5, set Xiaomi move 0 30 5000, sleep 4, set Xiaomi move 30 80 1500, sleep 1.5, set Xiaomi move 0 90 4500, sleep 5.5, set Xiaomi remotecontrol stop)
## Herausfahren ENDE
(set Xiaomi volume 84)
(set Xiaomi cleaning_mode max)
(set Xiaomi zone komplett)
(set saugBot silentmsg @-17055839 Autonome Reinigung gestartet)
DOELSEIF
([Alarmanlage_Status:"Unscharf"] and $cmd ne "3" and $cmd eq "1")  ## Abbruch
(set saugBot silentmsg @-17055839 Reinigung wird abgebrochen)
(set Xiaomi charge)
DOELSEIF
([Xiaomi:history_0] =~ " finished cleaning") ## Reinigung erfolgreich beendet
(set saugBot silentmsg @-17055839 EG komplett mit [Xiaomi:last_clean_area] m² in [Xiaomi:last_clean_time] h gesaugt.)
(setreading Putzplan komplett 0)
DOELSEIF
(([Xiaomi:"Docked"] or [Xiaomi:"charge"]) and $cmd eq "2") ## zurücksetzen damit bei "Scharf" doif neu startet


LG & schönen Sonntag
  Marlan

Otto123

Marlen: Du bist uneinsichtig mit den Zeiten, ich sage Dir: Ein Krümel zuviel im Wlan oder sonstwo und Deine 4.5 sec (alles unter 10) kannst Du vergessen. Aber  egal.
Die $cmdx abfragen, das Problem hatten wir schon mal. Das war meines Wissen etwas kompliziert in der Abfolge. Diese Frage sollte Du dann im DOIF Board stellen.

Aber ich würde das einfach nicht so machen. Ich würde im DOIF einfach meinen eigenen Status (ein Reading) verwalten. Der wird am Ende eines Vorganges gesetzt und bei Bedarf abgefragt. Wer sagt Dir denn, dass er nur weil Du los gesagt hast wirklich gefahren ist?

Nur meine Meinung :)

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

Marlen

Ja Otto, ich weiß das dass mit den Zeiten so glückssache ist und ich so auch noch nicht ganz glücklich bin.
Vielleicht löse ich das auch besser mit goto.....mal schauen.
Hab das DOIF jetzt mal mit einen "eigenen" Status/Reading umgebaut, mal schauen ob es morgen läuft.

LG
  Marlen

Marlen

Hallo,

seid ihr sicher das dass stimmt?

Zitat25500,25500 ist die Koordinate der Ladestation.

Kommt mir so vor als wäre es eher 26000,26000.

LG
Marlen

Otto123

Hi,
Ist das relevant? Man kann ihn mit den Koordinaten eh nicht da rein fahren, er muss immer ca. 60 cm davor stehen und dann per "Suchkommando" einfahren.

Und wenn es unterwegs mal rutschig war stimmt eh nicht mehr alles.

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

Marlen

@Otto: irgendwie kommt es mir so vor als ob du mich nicht besonders gut leiden kannst.
Ich will ihn nicht rein fahren sondern 5cm gerade aus nach links.

LG
  Marlen

Gesendet von meinem Aquaris U Plus mit Tapatalk


Otto123

@marlen keine Sorge, ich kenn Dich ja gar nicht. :D
ich weiß in Deiner Garage :) aber das würde ich "relativ" also nur mit move machen.
Das geht doch in einem Schritt mit leichter Drehung.

Ich habe ehrlich gesagt die Sache mit den Koordinaten ausgiebig probiert und für mich als unbrauchbar gefunden. Wen er einmal die Karte gedreht hat ist eh alles vorbei. Das "lustige" daran: Ich hatte bis zur Einführung der Koordinaten den Eindruck die Karte ist in 95% immer gleich. Nachdem ich die Koordinaten probiert und Zonen eingerichtet habe bin ich der Meinung: Die Karte ist jedesmal anders.
Und dann macht er eben völlig unkontrollierte Dinge  :-[ 

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

RappaSan

Hallo Marlen,

ich stimme Otto 100%ig zu. Die Karte kann sich schnell verändern.
Ich habe meinem Sauger beigebracht, daß er zum Entladen nach meiner Ankunft an einen (ungefähren) zugänglichen Punkt fährt und dort dann wartet, bis ich den Behälter gesäubert und wieder zurück gebracht habe. Anschließend fährt er wieder zur Ladestation zurück.
Vielleicht reicht das ja auch für Deine Belange.  :)
Ich habe den ganzen Saugerkram in eine separate cfg gepackt.

Momentan überlege ich, ob ich das normale "Full clean" (immer Mo, Mi und Fr) durch ein vollflächiges "Zoned clean" ersetze, da die Karte sich gerne dabei verdreht und dann die Zones und Points sich komplett verschieben und wieder angepasst werden müssen.
Das nervt ein wenig...


Btw.: Da hast Du wirklich eine schicke Garage gebaut.

m0nKeY

Hallo,

lese zwar schon länger hier im Forum mit, aber das ist meiner erster Beitrag.  ;D

Ist vielleicht eine dumme Frage, aber ich habe erfolgreich meine Xiaomi Eyecare Gen2 zu meiner FHEM Konfiguration hinzugefügt, aber irgendwie sehe ich nicht, wie ich sie steuern kann.

Es wäre nett, wenn mir da jemand auf die Sprünge helfen kann.

Gruß
m0nKeY