Notify mit zwei Bedingungen

Begonnen von Gabel88, 11 Mai 2016, 21:49:52

Vorheriges Thema - Nächstes Thema

Gabel88

Moin Moin alle zusammen,
meine Hausautomation wird langsam.
Nun muss auch auch Perl mit benutzten aber bekomme es einfach nicht richtig hin.

Ich will wenn mein TV an ist und nun die Sonne untergegangen ist mein Hintergrundlicht angeht.

Das Notify wird auch ausgeführt, (Zeitstempel im State ändert sich )
Nun wird leider nicht der eigentliche Fhem Befiel ausgeführt.

Hab es schon mit diversen Schreibweisen ( die ich hier im Forum und Google gefunden haben)

Nun hoffe ich das mir einer von euch helfen kann.
:) :)
Zitat
(LichtWetter|WZ.Net_Switch_TV) {
my $r1 = STATE("LichtWetter");;
my $r2 = STATE("WZ.Net_Switch_TV");;
if ($r1 eq "11" && $r2 eq "on") {
  fhem("set WZ.1 scene TV_on_sunset")
}
}
Pi3  FHEM
Pi3  KODI
Pi1  OpenWrt (im test)

Muschelpuster

Würde ich mit DOIF machen - geht IMHO einfacher.

kurze Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

rudolfkoenig

Falls man bei notify unsicher ist:
- im Event-Monitor die genauen Texte der Events beobachten
- notify mit "Log 1, XXXX" Ausgaben versehen (die Logausgaben kann man neuerdings im Event-Monitor direkt sehen)
- notify mit "trigger device event" ausloesen.

Weiterhin nicht jedem intuitiv (aber in commandref beschrieben): Das notify Regexp prueft auf Device und Device:Event, und dabei wird das Regexp mit ^und $ ergaenzt, d.h. das Regexp muss das ganze Device oder Device:Event-Tupel matchen.

Ellert

ZitatSTATE("LichtWetter")
Ist das neu? Ich benutze Value("LichtWetter").

Wernieman

Ich persönlich würde es nicht mit DOIF machen (ist das eigentlich eventbasiert oder pollt?) sondern mit einem struct.

z.B. bei mir:
Ein struct über den PC und den Serverseitigen mpd
wenn mpd an oder PC läuft -> Lautsprecher an.

Mal als Beispiel. Ist (für mich persönlich) intuitiver als DOIF


Das Struct
   DEF        room Rechner myMPD
   NAME       Ton
   TYPE       structure
Attributes:
   async_delay 0.5
   clientstate_behavior relative
   clientstate_priority on|On|An|play off|Off|stop

Das Passende Notify:
Internals:
   DEF        Ton sleep 1; set Lautsprecher $EVENT
   NAME       Ton_Notify
   TYPE       notify
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Muschelpuster

Zitat von: Wernieman am 12 Mai 2016, 13:34:11Mal als Beispiel. Ist (für mich persönlich) intuitiver als DOIF
Wohl wahr - das Thema hatten wir doch gerade  ;)
Think simple - FHEM hat keine Lizenzgebühren in Abhängigkeit der verwendeten Elemente. Also warum das Ganze nicht in mehrere Objekte zerlegen - es ist einfach und auch noch besser im Debugging.

vergessliche Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Gabel88

Super danke,m für die schnellen Antworten.
Ich hatte leider erst heute Zeit es aus zu Probieren.

Danke @ Eilert
ZitatIst das neu? Ich benutze
Code: [Auswählen]
Value("LichtWetter")
.

Genau das hat geholfen.

Nur für mich zum Verständnis,
DOIF und structure.
Ich habe das bis her so verstanden, das ich etwas mit zwei Bedingungen schalte.
Also ob die eine oder die andere zutrifft.

Ich will ja das geschaltet wird wenn beides gleichzeitig wahr ist.

Oder stehe ich grade komplett auf dem Schlauch
Pi3  FHEM
Pi3  KODI
Pi1  OpenWrt (im test)

Puschel74

#7
ZitatIch will ja das geschaltet wird wenn beides gleichzeitig wahr ist.
Jetzt wird es interessant.

Sollen beide Bedingungen gleichzeitig wahr sein
oder sollen beide Bedingungen wahr sein
oder soll eine oder die andere wahr sein?

Gleichzeitig geht mWn so einfach nicht.
Beide wahr geht und
die eine oder die andere wahr geht.

Nun musst du dich entscheiden.

Edith:
Wobei sich das ja mit
ZitatAlso ob die eine oder die andere zutrifft.
beisst oder auch widerspricht.

Sollen nun beide wahr sein oder
die eine oder die andere.
Fragen über Fragen  ???
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Gabel88

 Danke Puschel74,
ich habe es inzwischen am laufen.

Aber noch mal zur Erklärung.

Es ist eine einfache If mit zwei Bedingungen. Also müssen beide Bedingungen wahr sein.

Mein TV ist an und LichtWetter ist größer 8. (Habe nun da es läuft auch noch etwas dran gebastelt).

Ich Programmiere schon seit Jahren, aber bis nur Maschinenbasiert "C++/Assembler/..")

Nun noch mal für alle das funktioniere Notify

Zitat(LichtWetter|WZ.Net_Switch_TV) {
my $r1 = Value("LichtWetter");;
my $r2 = Value("WZ.Net_Switch_TV");;
if ($r2 eq "On" && $r1 > "8") {
  fhem("set WZ.1 scene TV_on_sunset")
}
}

Danke an Alle ;D ;D ;D
Pi3  FHEM
Pi3  KODI
Pi1  OpenWrt (im test)