Hallo Forum,
Ich habe eine Frage an die FHEM Gurus. Ich möchte Simple "und", "oder", "Xor" Verknüpfungen verwenden.
Im jetzigen Fall zwei Dummy Statusse mit einem anderen Dummy Status zu verknüpfen.
z.B.
"Bewohner_1.imHaus" (1) oder "Bewohner_2.imHaus" (1) := "Bewohner.imHaus" (set 1)
"Bewohner_1.nichtimHaus" (0) und "Bewohner_2.nichtimHaus" (0) := "Bewohner.imHaus" (set 0)
Momentan verwende ich 2 notify einen zum setzen und einen zum rücksetzen. Leider klappt das rücksetzen nicht.
Set on
notify_Bewohner_on notify (Bewohner_1:on.*|Bewohner_2:on.*) set Hausbewohner on
Set off
notify_Bewohner_off notify (Bewohner_1:off.*|Bewohner_2:off.*) set Hausbewohner off
Was muss ich anstelle des " | " eintragen?
Leider habe ich noch keinen entsprechenden Forum Beitrag gefunden. Falz es doch einen gibt Bitte Posten.
Danke
Es geht sicher auch anders - aber ich habe es mit einer structure gelöst, schau mal in die comandref.
Eleganter wäre es das Residents Modul einzusetzen und auf <1 zu triggern...
Vielleicht so etwas in der Art?:
notify_Bewohner_off notify (Bewohner_1:off.*|Bewohner_2:off.*) {if((ReadingsVal("Bewohner_1","state","off") eq "off") && (ReadingsVal("Bewohner_2","state","off") eq "off")) {fhem("set Hausbewohner off ")}}
(ungetestet)
Gruß,
Gero
Hallo gero,
Ich komme aus der SPS-Schiene da muss ich mir immer aus setzen und rücksetzen meine wege finden. Leider schweint wohl dein weg der einzigste mit notify zu sein. .. sehr komplex für so eine simple sache.
Ich versuche es mal mit RESIDENTS.
Danke
Mit DOIF solltest du das hinbekommen.
Hallo,
To KernSani: Danke KernSani. werde ich gleich auch Probieren
To der-Lolo: Ich habe mir eben Residents bzw. auch ROOMMATE angeschaut und eingefügt. Ich kann nur sagen!! da hat sich ja einer sehr gute gedanken gemacht. Genau das benötige ich :)
Personen anlegen, Wecker anlegen, Status abfragen .... cool
Ja, Residents und die zugehörigen untermodule sind gut gelungen - structure hätte dir auch geholfen - bei FHEM führen oft verscheidene wege zum ziel, die kunst ist es erstmal die einfachen zu finden ;-)
Zitat von: der-Lolo am 20 März 2015, 23:05:40
die kunst ist es erstmal die einfachen zu finden ;-)
Wie war wie war. Leider ist es bei allen Programmiersprachen so ;)
Hallo,
ändere doch bitte die Überschrift - das gibt es so nicht!
1&1=1, 1&0=0, 0&1=0, 1&1=0 - geht nicht, weil 1&1 zweimal definiert ist und mit unterschiedlichem Ergebnis.
1&1=1, 1&0=0, 0&1=0, 0&0=1 - das geht, ist exclusiv und
1&1=0, 1&0=1, 0&1=1, 0&0=0 - das geht, ist exclusiv oder
Gruß Christoph
Zitat von: Bennemannc am 20 März 2015, 23:50:55
Hallo,
ändere doch bitte die Überschrift - das gibt es so nicht!
1&1=1, 1&0=0, 0&1=0, 1&1=0 - geht nicht, weil 1&1 zweimal definiert ist und mit unterschiedlichem Ergebnis.
1&1=1, 1&0=0, 0&1=0, 0&0=1 - das geht, ist exclusiv und
1&1=0, 1&0=1, 0&1=1, 0&0=0 - das geht, ist exclusiv oder
Gruß Christoph
stimmt sorry. habs geändert
Lösung
Bewohner_0 Dummy // Gemeinsamer Dummy
Bewohner_1 Dummy //
Bewohner_2 Dummy //
Bewohner_3 Dummy //
([Bewohner_1] eq "off" and [Bewohner_2] eq "off" and [Bewohner_3] eq "off") (
set Arbeitstag_Hausbewohner off)
DOELSEIF ([Bewohner_1] eq "on")(set Bewohner_0 on)
DOELSEIF ([Bewohner_2] eq "on")(set Bewohner_0 on)
DOELSEIF ([Bewohner_3] eq "on")(set Bewohner_0 on)
...
([Bewohner_1] eq "on") Permanente Abfrage
([Bewohner_2:?on]) Event Abfrage auch möglich
Wenn Du Residents einsetzt brauchst du doch keinen gemeinsamen Dummy, im Residents gibt es doch ein entsprechendes reading...