FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Wettermodule => Thema gestartet von: Crush85 am 25 Oktober 2017, 16:45:46

Titel: Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 25 Oktober 2017, 16:45:46
Hallo zusammen,

da ich bisher keinen funktionierenden Ansatz für mich gefunden habe eröffne ich einen neuen Thread.
Ich möchte demnächst meine Weihnachtsbeleuchtung bei einem bestimmten Twilight "light"-Wert z.B. 4, das Licht anschalten und wenn es heller als z.B. 4 ist wieder aus. Diese Regelung soll dann nur Tagsüber greifen und über Nacht soll das Licht ausbleiben. Ich habe Twilight über ein Youtube Tutorial mit LichtWetter definiert und das weather modul Wetter genannt, und diesen Code Schnippsel erstmal getestet, aber irgendwas stört FHEM daran.
define xmasan notify LichtWetter:light.* {if($value{LichtWetter}<4 ){fhem("set xmas_wohnung on");;}} define xmas_aus notify LichtWetter:light.* {if($value{Lichtwetter}>=4){fhem("set xmas_wohnung off");;}}
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 25 Oktober 2017, 16:48:17
Bei Code bitte Codetags verwenden. So will ich das nicht lesen.

Und am besten ein list vom notify Device machen.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Beta-User am 25 Oktober 2017, 17:11:52
Das ist immer noch schlecht lesbar, weil zwei Zeilen in einer sind, das list fehlt auch noch...

Was aber m.E. nicht dolle ist, ist der Teil hier:
Zitatif($value{LichtWetter}<4 )
Hier sollte vermutlich ein $EVTPARTx stehen, oder eben eine saubere perl-Funktion, die hier aber nicht nötig sein sollte...

Ansonsten sieht mir das so aus, als wäre ein THRESHOLD hier ein Lösungsansatz, statt der beiden notify. Eine kleine Hysterese würde jedenfalls auf den ersten Blick auch Sinn machen.

Gruß, Beta-User
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 25 Oktober 2017, 17:42:54

define xmasan notify LichtWetter:light.* { fhem("set xmas_wohnung " . ($EVTPART1 < 4 ? "on" : "off") ); }


Sollte gehen
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 25 Oktober 2017, 20:42:43
Wie geht es das mit dem list vom notify Device?
Den Code hab ich im Forum gefunden und abgewandelt
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 25 Oktober 2017, 20:45:03
Zitat von: CoolTux am 25 Oktober 2017, 17:42:54

define xmasan notify LichtWetter:light.* { fhem("set xmas_wohnung " . ($EVTPART1 < 4 ? "on" : "off") ); }


Sollte gehen

Anscheinend fehlt eine Klammer? Kann ich irgendwie noch Uhrzeiten auschließen?

Missing right curly or square bracket at (eval 678) line 1, at end of line
syntax error at (eval 678) line 1, at EOF

Unknown command }, try help.

Unknown command }, try help.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: kumue am 25 Oktober 2017, 20:45:36
Zitat von: Crush85 am 25 Oktober 2017, 20:42:43
Wie geht es das mit dem list vom notify Device?
Den Code hab ich im Forum gefunden und abgewandelt

list xmasan
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 25 Oktober 2017, 20:48:56
Zitat von: kumue am 25 Oktober 2017, 20:45:36
list xmasan

Ich hab das mal xmas_wohnung genannt, macht vielleicht mehr Sinn
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 25 Oktober 2017, 21:09:56
list vom notify bitte
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 25 Oktober 2017, 21:15:49
Zitat von: CoolTux am 25 Oktober 2017, 21:09:56
list vom notify bitte
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 25 Oktober 2017, 21:33:27
Kann heute bitte mal jemand mit besseren Nerven. Danke
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: kumue am 25 Oktober 2017, 21:41:47
Bitte auf der console oder in der GUI
list <NAME_DEINES_NOTIFY> eingeben.
Dein notify heißt xmasan, also
list xmasan.
Den Output bitte in Codetags posten.
Bitte kein Screenshot.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 25 Oktober 2017, 21:49:56
Ich habe kein Notify erstellt, nur das mit dem code hier, was muss denn drin stehen für mein vorhaben?
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: kumue am 25 Oktober 2017, 21:59:30
in deinem ersten Post sehe ich doch zwei notify's: xmasan und xmas_aus.
Egal ob Du die erstellt hast oder wer auch immer...

define xmasan notify LichtWetter:light.* {if($value{LichtWetter}<4 ){fhem("set xmas_wohnung on");;}} define xmas_aus notify LichtWetter:light.* {if($value{Lichtwetter}>=4){fhem("set xmas_wohnung off");;}}
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 25 Oktober 2017, 22:00:04
Zitat von: Crush85 am 25 Oktober 2017, 20:45:03
Anscheinend fehlt eine Klammer? Kann ich irgendwie noch Uhrzeiten auschließen?

Missing right curly or square bracket at (eval 678) line 1, at end of line
syntax error at (eval 678) line 1, at EOF

Unknown command }, try help.

Unknown command }, try help.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 25 Oktober 2017, 22:02:08
Der Code wird aber von FHEM nicht angekommen und daher wohl auch kein notify erstellt.

syntax error at (eval 692) line 1, near "notify LichtWetter:"
syntax error at (eval 692) line 1, near ";}"


No device named xmasan found
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 25 Oktober 2017, 22:19:09
Dann mach erstmal nur

define xmasan notify LichtWetter:light.* b


Danach in die Detailansicht des Notify auf DEF klicken und das hier einfügen, das andere löschen/überschreiben

define xmasan notify LichtWetter:light.* {
            fhem("set xmas_wohnung " . ($EVTPART1 < 4 ? "on" : "off") );
}

Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 26 Oktober 2017, 06:16:32
Ah ok, hab ich gemacht

Internals:
   CFGFN
   DEF        define xmasan notify LichtWetter:light.* {
            fhem("set xmas_wohnung " . ($EVTPART1 < 4 ? "on" : "off") );
}
   NAME       xmasan
   NR         540
   NTFY_ORDER 50-xmasan
   REGEXP     define
   STATE      active
   TYPE       notify
   Readings:
     2017-10-26 06:15:16   state           active
Attributes:


Wofür steht denn das b in dem define?
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 26 Oktober 2017, 06:20:39
Für gar nichts, das ist nur ein Platzhalter weil beim anlegen er unser Perl nicht genommen hat. Im Nachhinein löschen wir das ja und ersetzen es durch unser Perl.
Und geht es denn nun?


Versuche bitte Dich in Zukunft ein bisschen einzuarbeiten und mit FHEM zu beschäftigen. So ein wenig Grundlagen forschen. Diese Methode steht im Anfängerdokument. Das darfst Du gerne einmal lesen, wurde mit viel Herzblut und Aufwand geschrieben und sollte immer als erstes gelesen werden.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 01 November 2017, 19:19:56
Hallo zusammen,

ich habe es nun ein paar Tage beobachtet, FHEM schaltet nicht um, woran kann es liegen?

Define xmasan
define xmas_notify notify LichtWetter:light.* {
            fhem("set Vitrine " . ($EVTPART1 < 5 ? "on" : "off") );
}


Diese einfache selbst getestete DEF funktioniert ohne Probleme macht nur leider keinen Sinn
LichtWetter:light:.* set Vitrine on
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 01 November 2017, 20:33:06
Was bedeutet schaltet nicht um. Notify wird getriggert? Schaltet immer off?
Lass Dir mal Ausgeben was in $EVTPART1 drin steht

Log 1,$EVTPART1


define xmas_notify notify LichtWetter:light.* {
            fhem("set Vitrine " . ($EVTPART1 < 5 ? "on" : "off") );
          Log 1,$EVTPART1;
}
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 01 November 2017, 20:36:52
Es wird nicht angeschaltet, off ist es ja standardmäßig
Wann erscheint es im Log? immerhin scheint es ja irgendwo zu haken.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 01 November 2017, 20:45:47
so bald sich das Reading light von LichtWetter ändert
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 01 November 2017, 20:53:46
Ok dann kann ich das erst morgen wieder testen
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 01 November 2017, 21:03:06
Lese mal nach was der Befehl trigger macht
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 01 November 2017, 21:23:35
Trigger ist praktisch will aber nich funktionieren

trigger twilight:light 4

Please define light:.4 first
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 01 November 2017, 21:29:16
Sollte aber gehen wenn man es richtig macht


trigger LichtWetter light 4
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 01 November 2017, 21:33:10
mit leerzeichen gehts anscheinend aber es wird nichts in irgendeinem Log  :o
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: CoolTux am 01 November 2017, 22:17:22
Ob dein notify triggert siehst du ja am STATE. Wenn sich das ändert das muss auch was im fhem Log drin stehen.
Titel: Antw:Structure schalten bei Twilight Licht wert
Beitrag von: Crush85 am 02 November 2017, 10:58:26
Es steht immernoch nichts im Log, woran kann es noch liegen?
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 11:05:48
gib mal bitte ein list von Deinem notify device
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 11:12:20
list xmasan

Internals:
   CFGFN
   DEF        define xmas_notify notify LichtWetter:light.* {
            fhem("set Vitrine " . ($EVTPART1 < 5 ? "on" : "off") );
          Log 1,$EVTPART1;
}
   NAME       xmasan
   NR         540
   NTFY_ORDER 50-xmasan
   REGEXP     define
   STATE      active
   TYPE       notify
   Readings:
     2017-11-01 21:44:36   state           active
Attributes:
   room       1.0 XMAS
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 11:25:59
Das ist absoluter Mist. Wie kommt man denn auf sowas.




DEF    LichtWetter:light.* {
            fhem("set Vitrine " . ($EVTPART1 < 5 ? "on" : "off") );
          Log 1,$EVTPART1;
}


In FHEMWEB einfach in die Details gehen vom notify und da auf DEF klicken, dann änderst Du das ganze in

LichtWetter:light.* {
            fhem("set Vitrine " . ($EVTPART1 < 5 ? "on" : "off") );
}


und drückst dann auf modify

Bitte belese Dich etwas mehr
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 11:29:40
Ich habe das genauso gemacht wie hier beschrieben
https://forum.fhem.de/index.php/topic,78477.msg704551.html#msg704551
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 11:34:48
Ja ich weiß, und da nun nicht verstanden hat was Du da machst ist das in die Hose gegangen.

mit define legt man erstmalig ein Device an. Falls Du dich erinnerst, das anlegen hatte ja nicht geklappt hast du gesagt.
Hat man schon ein Device angelegt geht man in die Details des Devices und tätigt Änderung der DEF in dem man auf DEF klickt, oder Änderungen der Attribute in dem man auf den Text attr klickt und so weiter.

Daher bitte versuchen zu lesen und zu verstehen und über Codebeispiele nach zu denken und nicht bind ab zu schreiben.
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 11:36:07
Ok danke erstmal, das triggern klappt jetzt wohl auch, jetzt versuche ich mal "Ausschlusszeiten" einzubauen
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 11:43:43
Heißt also er schaltet jetzt wenn du ein

trigger bla bla 4

sendest?
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 11:44:15
Ja genau, es wird angeschaltet
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 11:45:09
Supi. Na dann viel Erfolg. Wenn noch was ist dann melde Dich.
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 12:27:46
So richtig schlau werde ich aus den Anleitungen nicht. Da sich der light Wert ja mehrmals am Tag ändern kann. Wird mit on-till und off-till bei der nächsten light Änderung trotzdem wieder geschaltet? Dann würde ich es so machen

LichtWetter:light.* {
            fhem("set Vitrine " . ($EVTPART1 < 5 ? "on-till 22:15:00" : "off-till 06:00:00") );
}
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 12:38:04

LichtWetter:light.* {
            fhem("set Vitrine:FILTER=STATE!= " . ($EVTPART1 < 5 ? "on" : "off") . " " . ($EVTPART1 < 5 ? "on" : "off") );
}

Dafür gibt es devspec2array in Form von FILTER. Ob das so wie ich es gerade oben geschrieben funktioniert mus ich selber erst noch testen.

Als FHEM Befel ginge er so

set Vitrine:FILTER=STATE!=on on
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 12:48:07
Ok konnte es eben testen. Damit geht es


LichtWetter:light.* {
            fhem("set Vitrine:FILTER=STATE!=" . ($EVTPART1 < 5 ? "on" : "off") . " " . ($EVTPART1 < 5 ? "on" : "off") );
}
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 13:19:50
Wo gebe ich denn da die Zeiten an, ich habe weder unter decspec2array noch unter Filter etwas in der Doku oder im Forum gefunden was mir weiterhilft
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 13:22:16
Keine Zeiten. Was genau meinst Du mit Zeiten? Meinst jetzt das ja < 5  auch zwischen 23:30 und 4:50 sein kann und er dann bitte nicht schalten soll?
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: Crush85 am 02 November 2017, 13:37:33
Ja genau das meine ich, über Nacht sollen die Lichter nicht angehen bzw. abends zum Zeitpunkt ausschalten, also z.b. abends bis 22:30 und morgens ab 6:00 soll der Notify aktiv sein oder so.

Was sollte denn dieser Filter von dir bewirken?
Titel: Antw:Structure schalten bei Twilight Licht Wert
Beitrag von: CoolTux am 02 November 2017, 13:45:26
Na ja, die richtigen Worte hast Du ja schon gefunden. Entweder das Notify deaktivieren oder halt eine Abfrage einbauen.
Hier wird es dann interessant. Zum Beispiel haben viele sich die Residents Modulfamilie installiert. Da wird die ganze Wohnung und einzelne Bewohner virtuell abgebildet. Man kann dann also eine Abfrage einbauen die prüft ob das Device ganzeWohnung den Status home hat oder nicht, wenn nicht soll nicht geschalten werden.

Du kannst auch da Du eh schon in Perl bist die Stunde abfragen. (ist das einfachste)


LichtWetter:light.* {
            fhem("set Vitrine:FILTER=STATE!=" . ($EVTPART1 < 5 ? "on" : "off") . " " . ($EVTPART1 < 5 ? "on" : "off") ) if( $hour < 22 and $hour > 4 );
}


Es gibt auch noch eine kleine Abfrage die ich mal gebaut habe, dazu muß aber eine 99_myUtils Datei eingerichtet werden. Dann kann man sowas machen

LichtWetter:light.* {
            fhem("set Vitrine:FILTER=STATE!=" . ($EVTPART1 < 5 ? "on" : "off") . " " . ($EVTPART1 < 5 ? "on" : "off") ) if( isInTime('22:00-04:00') );
}