Structure schalten bei Twilight Licht Wert

Begonnen von Crush85, 25 Oktober 2017, 16:45:46

Vorheriges Thema - Nächstes Thema

Crush85

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");;}}

CoolTux

Bei Code bitte Codetags verwenden. So will ich das nicht lesen.

Und am besten ein list vom notify Device machen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

CoolTux


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


Sollte gehen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

Wie geht es das mit dem list vom notify Device?
Den Code hab ich im Forum gefunden und abgewandelt

Crush85

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.

kumue

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

Crush85


CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


CoolTux

Kann heute bitte mal jemand mit besseren Nerven. Danke
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kumue

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.

Crush85

Ich habe kein Notify erstellt, nur das mit dem code hier, was muss denn drin stehen für mein vorhaben?

kumue

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");;}}

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

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

CoolTux

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") );
}

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

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?

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

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

CoolTux

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;
}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

Es wird nicht angeschaltet, off ist es ja standardmäßig
Wann erscheint es im Log? immerhin scheint es ja irgendwo zu haken.

CoolTux

so bald sich das Reading light von LichtWetter ändert
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

Ok dann kann ich das erst morgen wieder testen

CoolTux

Lese mal nach was der Befehl trigger macht
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

Trigger ist praktisch will aber nich funktionieren

trigger twilight:light 4

Please define light:.4 first

CoolTux

Sollte aber gehen wenn man es richtig macht


trigger LichtWetter light 4
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

mit leerzeichen gehts anscheinend aber es wird nichts in irgendeinem Log  :o

CoolTux

Ob dein notify triggert siehst du ja am STATE. Wenn sich das ändert das muss auch was im fhem Log drin stehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

Es steht immernoch nichts im Log, woran kann es noch liegen?

CoolTux

gib mal bitte ein list von Deinem notify device
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

#31
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

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

Ok danke erstmal, das triggern klappt jetzt wohl auch, jetzt versuche ich mal "Ausschlusszeiten" einzubauen

CoolTux

Heißt also er schaltet jetzt wenn du ein

trigger bla bla 4

sendest?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85


CoolTux

Supi. Na dann viel Erfolg. Wenn noch was ist dann melde Dich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

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") );
}

CoolTux


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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ok konnte es eben testen. Damit geht es


LichtWetter:light.* {
            fhem("set Vitrine:FILTER=STATE!=" . ($EVTPART1 < 5 ? "on" : "off") . " " . ($EVTPART1 < 5 ? "on" : "off") );
}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

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

CoolTux

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?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Crush85

#44
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?

CoolTux

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') );
}

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net