Hauptmenü

notify mit 2 bedingungen

Begonnen von 0815fhemler, 21 Mai 2017, 17:23:09

Vorheriges Thema - Nächstes Thema

0815fhemler

Hallo zusammen,
ich bin mal wieder dabei meine Automation zu verbessern nun wollte ich mein notify verändern das es nur auslöst wenn 2 bedinungen erfüllt sind
aktuell sieht es so aus

dummy_makros:abwesend
define timer1_Schafzimmer at +00:00:15 IF ([Schlafzimmer_Fenster:state] eq "closed") (set Schlafzimmer_Thermostat_Climate desired-temp 19.0);
define timer2_Wohnzimmer at +00:00:30 IF ([Wohnzimmer_Ballkontuer:state] eq "closed") (set Wohnzimmer_Thermostat_Climate desired-temp 19.0);
define timer3_Arbeitszimmer at +00:01:00 { fhem "set Arbeitszimmer_Thermostat_Climate desired-temp 19.0" if( ReadingsVal("Arbeitszimmer_Thermostat_Climate","desired-temp",0) > 19);; } ;
define timer4_Bad at +00:01:30 { if (Value("Bad_Fenster") eq "closed") {{ fhem "set Bad_Thermostat_Climate desired-temp 19.0" if( ReadingsVal("Bad_Thermostat_Climate","desired-temp",0) > 19);; }}} ;
define timer5_Wohnzimmer at +00:02:00 set Wohnzimmer_AllesAUS AllesAUS;
define timer6_Arbeitszimmer at +00:02:30 set Arbeitszimmer_AllesAUS AllesAUS;
define timer7_automatik at +00:03:00 set Automatik abwesend;


also wenn der "dummy_makros" den zustand "abwesend" hat soll er auslösen das tut er auch, nun soll noch ein dummy "Automatik" dazu kommen wenn der zustand "auto" ist soll er den notify ausführen.

Ich habe es sowohl mit IF usw. versucht bekomme aber nur seitenweisse fehler im log.

Hat jemand soetwas schon mal gemacht, oder bin ich mal wieder total auf dem falschen weg.

Kev

Otto123

Hallo Kev,

wenn Du auf zwei alternative Events reagieren möchtest, kannst Du diese mit | trennen. define nty_MyNotify notify event1|event2 set usw...
Du willst aber auf einen Event triggern und eine Status abfragen? Dann musst Du dies im Ausführungsteil tun. Entweder mit if (Perl) oder mit IF (FHEM)

Wenn das was Du zeigst deine derzeitige DEF ist, empfehle ich Dir den Code in eine Funktion in der 99_myUtils auszulagern.

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

amenomade

1. Ich sehe kein Notify??

2. Besser den "STATE" als den state Attribut fragen:
IF ([Schlafzimmer_Fenster] eq "closed")

3. Warum die Timer und nicht sofort?

4. Wenn Du willst, das beide Dummies triggern, egal der Zustand, kannst Du dein Notify so definieren:
define nt_test notify (dummy_makros:abwesend|Automatik:an) ... Befehle

5. Wenn Du eine komplizierte Kombination von Zustände brauchst, dann eher mit DOIF

Gruß

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

0815fhemler

hallo,

ja mit if habe ich es auch schon gemacht

dummy_makros:abwesend { if (Value("Automatik") eq "auto") {
fhem("define timer1_Schafzimmer at +00:00:15 IF ([Schlafzimmer_Fenster:state] eq "closed") (set Schlafzimmer_Thermostat_Climate desired-temp 19.0);
define timer2_Wohnzimmer at +00:00:30 IF ([Wohnzimmer_Ballkontuer:state] eq "closed") (set Wohnzimmer_Thermostat_Climate desired-temp 19.0);
define timer3_Arbeitszimmer at +00:01:00 { fhem "set Arbeitszimmer_Thermostat_Climate desired-temp 19.0" if( ReadingsVal("Arbeitszimmer_Thermostat_Climate","desired-temp",0) > 19);; } ;
define timer4_Bad at +00:01:30 { if (Value("Bad_Fenster") eq "closed") {{ fhem "set Bad_Thermostat_Climate desired-temp 19.0" if( ReadingsVal("Bad_Thermostat_Climate","desired-temp",0) > 19);; }}} ;
define timer5_Wohnzimmer at +00:02:00 set Wohnzimmer_AllesAUS AllesAUS;
define timer6_Arbeitszimmer at +00:02:30 set Arbeitszimmer_AllesAUS AllesAUS;
define timer7_automatik at +00:03:00 set Automatik abwesend;")}}


dann bekomme ich immer einen fehler angezeigt

syntax error at (eval 627) line 2, near ""define timer1_Schafzimmer at +00:00:15 IF ([Schlafzimmer_Fenster:state] eq "closed"


ich finde es einfach nicht was ich wo falsch mache.

Otto123

Naja, Du hast  das Problem mit den " Du kannst nicht einfach um alles zwei " ... alles ... " machen und es wird gut. Das erste " wird ja mitten im define beendet.

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

0815fhemler

ehh,
ok verstehen tue ich das wohl nicht
Ich dachte es ist wie immer was du vorne beginnst muss hinten auch beendet werden.

Wie soll es dann sein?

Otto123

#7
Mir ist ehrlich Dein Ausdruck zu komplex oder draußen ist zuviel Sonne :)

Aber etwas in Anführungszeichen gesetzt Bedeutet "Anfang ... Ende". Innerhalb von Anführungszeichen, wieder einfache Anführungszeichen setzen geht nicht (nirgendwo) -> "Anfang" ... "Ende" ist etwas anderes.
Du musst sie schützen, oder andere verwenden. Ich bin nicht sicher ob fhem(' "fhemAusdruck" ') geht. Wir hatten schon mal sowas -> https://forum.fhem.de/index.php?topic=48931.0

Du könntest IF statt if nehmen, Da musst Du nicht zwischen den Ebene wechseln.

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