Hauptmenü

(gelöst) DOIF und 2 Events

Begonnen von fireball, 03 Februar 2025, 16:26:52

Vorheriges Thema - Nächstes Thema

fireball

Ja genau...
Da fällt mir ein, ich könnte zwei readingsProxys auf den HTTPMOD setzen, dann hätte ich zwei Devices mit dem aktuellen Status..  8)  na mal schauen

Otto123

#16
Zitat von: fireball am 11 Juni 2025, 19:00:34[Katzenklappe:"data_pets_01_position_where:.1"] && [Katzenklappe:"data_pets_02_position_where:.1"]
Das wird nie wahr!
;)
Den Zweig kannst Du mMn einfach weglassen, bzw. daraus ein zweites Gerät machen mit der alten Zustandsabfrage, die funktioniert.
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

Per

Du kannst auch zwei DOIF nehmen. Dann entfällt auch die Gleichzeitigkeit der Events.
Oder ein Perl DOIF mit zwei Userreadings.

tobi01001

Oder halt nur eine Katze **wegduck**

Mit dem was du da machst (per Telegram benachrichtigen ob Mietze oder Katze raus oder rein gehen), würde ich ein Notify auf Katzenklappe:data_pets_0?_position_where.* triggern und im notify über $NAME und $EVENT auswerten welche Mieze es war und wohin die gegangen ist.
Wenn du dennoch pro im Zweifel 5 Minuten verzögerten Event den diskreten Ortszustand beider Fellnasen melden möchtest, kannst du das auch im notify abfragen und so den Ortszustandswechsel melden.
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

fireball

Hi, also der Trigger auf die Events hat schonmal gut funktioniert.
Ich hatte jetzt leider erst einmal den Fall, dass beide gleichzeitig raus sind, aber mit der Umstellung auf die Events funktionierte auch dieser Fall mit der "and" Abfrage im DOIF.

@Tobi, dein Ansatz klingt auch sehr nice... viell. stelle ich da nochmal um.

Ich beobachte mal weiter.
VG
René

Damian

Warum stellst du deine Event-Abfragen nicht auf Zustandsabfragen um. Diese triggern ebenso, haben aber noch einen definierten Zustand.

z. B. ([Katzenklappe:data_pets_01_position_where] == 1 && [Katzenklappe:data_pets_02_position_where] == 1)
so kann eine UND-Abfrage durchaus Sinn machen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

fireball

Hallo Damian,

so hatte ich es ja am Anfang auch, aber das funktionier nicht. Ich hatte mein DOIF ja (sieh POST #2) so aufgebaut.
Dann hab ich aber das Problem, Katze 1 rennt raus und data_pets_01_position_where wird 1. Wenn Katze zwei vorher raus rennt, dann ist da auch ne 1 und schwups greift DOIF mit UND.

Ich dachte, wenn ich das "event-on-change-reading" auf .* setzte, dann wird immer nur die DOIF Schleife durchlaufen, je nachdem ob sich innerhalb des 5min Abfrageintervall Katze1 oder 2 oder beide ändern. Aber das hat nicht funktioniert, wenn ich auf die Readings gehe.
Jetzt mit den Events scheints zu klappen...

VG
René

Per

Am Anfang hattest du noch die Reihenfolge falsch.
Ganz kompliziert könntest du
(A and ?B) or (?A and B)
A
B
und das Ganze nochmal negiert für drin.