Hallo,
ich stehe vor einem Problem, das ich mir nicht lösen kann und für das ich nichts gefunden habe.
Wenn ich das Rollo via Helligkeit hoch- bzw. runter fahre habe ich den Effekt, dass bei jeder Änderung vom Luxwert der Schaltbefehl erneut gesendet wird. Das erzeugt erstens unnötige Last und zweitens korrumpiert das meine Dämmerungssteuerung sowie eine evtl. manuelle Steuerung.
Hier mal mein bisheriger Versuch, den ich abbrach als ich mir des theoretischen Problems gewahr wurde.
define Wohnen_vorne_rollo_hell_stellung notify Wohnen_vorne_rollo_helligkeitswert { if ( $EVTPART1 < 10 ) { fhem ("set Wohnen_vorne_Rollo value 100") } else { if ( $EVTPART1 > 11 ) fhem ("set Wohnen_vorne_Rollo value 0) } }
Die Beschattung übernimmt dabei die SCN-WS3HW.01 Wetterstation Home von MDT selber.
Dabei fällt mir gerade ein: Sendet der Dämmerungssensor von der Wetterstation überhaupt noch Änderungen jenseits von x Lux?
Wohnen_vorne_rollo_helligkeitswert
Wird wohl ein Dummy sein. Ich würde hier ein userReadings setzen als < 10 dunkel > 9 hell und dann auf das Reading triggern mit deinem Notify
Das ist ein guter Hinweis, Danke.
Werde ich heute Abend mal testen.
PS:
define Wohnen_vorne_rollo_helligkeitswert KNX 6/4/4:dpt9.004
attr Wohnen_vorne_rollo_helligkeitswert IODev KNX
attr Wohnen_vorne_rollo_helligkeitswert group Logik
attr Wohnen_vorne_rollo_helligkeitswert room Sonder/Logik
attr Wohnen_vorne_rollo_helligkeitswert webCmd :
Gib mal bitte ein list von dem Device.
Also
list Wohnen_vorne_rollo_helligkeitswert
Sehr gerne.
Internals:
DEF 6/4/4:dpt9.004
DEVNAME Wohnen_vorne_rollo_helligkeitswert
IODev KNX
NAME Wohnen_vorne_rollo_helligkeitswert
NR 287
NTFY_ORDER 50-Wohnen_vorne_rollo_helligkeitswert
STATE 952.96 lux
TYPE KNX
GADDR:
1 6/4/4
GCODE:
1 06404
MODEL:
1 dpt9.004
READINGS:
2017-08-25 06:42:23 getG1 952.96 lux
2017-08-25 06:42:23 last-sender 1/1/16
2017-08-25 06:42:23 state 952.96 lux
Attributes:
IODev KNX
group Logik
room Sonder/Logik
webCmd :
Ich konnte nicht warten und habe schon mal ein wenig versucht. Doch das mit dem userReadings scheint komplexer zu sein.
Ich muss also heute Abend weitermachen. Vielen Dank.
Internals:
CFGFN
NAME Wohnen_vorne_rollo_helligkeitswert
NR 83
STATE ???
TYPE dummy
READINGS:
2017-08-25 07:30:06 getG1 7 lux
2017-08-25 07:30:06 helligkeit dunkel
Attributes:
event-on-change-reading helligkeit,getG1
readingList getG1
room Test
setList getG1
userReadings helligkeit:getG1.* { return ( (ReadingsNum($NAME,'getG1',0) < 10 ) ? 'dunkel' : 'hell' ) }
Musst schauen ob Du ein Event von getG1 immer brauchst wenn es geschrieben wird oder auch nur wie bei mir wenn es sich verändert.
Wenn Du es immer brauchst dann bitte event-on-change-reading nur bei helligkeit und das getG1 zu event-on-update-reading hinzufügen.
Grüße
Wow, Danke.
Ich brauche das nur bei Änderung. Werde ich später versuchen.
So, ich hatte ein wenig Zeit. ;)
Das von Dir initiierte Funktioniert einwandfrei, doch bekomme ich das userReadings nicht in meinen Schaltbefehl
define Wetter_daemmerungswert KNX 6/4/4:dpt9.004
attr Wetter_daemmerungswert IODev KNX
attr Wetter_daemmerungswert event-on-change-reading helligkeit,getG1
attr Wetter_daemmerungswert group Logik
attr Wetter_daemmerungswert room Sonder/Logik
attr Wetter_daemmerungswert userReadings helligkeit:getG1.* { return ( (ReadingsNum($NAME,'getG1',0) < 10 ) ? 'dunkel' : 'hell' ) }
attr Wetter_daemmerungswert webCmd :
define Wohnen_vorne_rollo_daemmerung notify Wetter_daemmerungswert { if (userReadings("helligkeit", "state", "hell") eq "dunkel") { fhem("set Wohnen_vorne_Rollo value 0")}}
attr Wohnen_vorne_rollo_daemmerung group Logik
attr Wohnen_vorne_rollo_daemmerung room Sonder/Logik
attr Wohnen_vorne_rollo_daemmerung webCmd :
Ich muss da irgendwie einen Knoten im Hirn haben.
define notifyWohnenVorneRolloDaemmerung notify Wetter_daemmerungswert:helligkeit:.dunkel set Wohnen_vorne_Rollo value 0
Setz das value vom Rollo auf 0 nur wenn ein Event dunkel von dem Device Wetter_daemmerungswert mit dem Reading helligkeit kommt.
HA..... Perfekt, Vielen Dank.
Hier im Ganzen:
# Wohnen vorne Rollo nach Dämmerungswert herunter
define Wetter_daemmerungswert KNX 6/4/4:dpt9.004
attr Wetter_daemmerungswert IODev KNX
attr Wetter_daemmerungswert event-on-change-reading helligkeit,getG1
attr Wetter_daemmerungswert group Logik
attr Wetter_daemmerungswert room Sonder/Logik
attr Wetter_daemmerungswert userReadings helligkeit:getG1.* { return ( (ReadingsNum($NAME,'getG1',0) < 10 ) ? 'dunkel' : 'hell' ) }
attr Wetter_daemmerungswert webCmd :
define Wohnen_vorne_rollo_dunkel notify Wetter_daemmerungswert:helligkeit:.dunkel set Wohnen_vorne_Rollo value 100
attr Wohnen_vorne_rollo_dunkel group Logik
attr Wohnen_vorne_rollo_dunkel room Sonder/Logik
attr Wohnen_vorne_rollo_dunkel webCmd :
define Wohnen_vorne_rollo_hell notify Wetter_daemmerungswert:helligkeit:.hell set Wohnen_vorne_Rollo value 0
attr Wohnen_vorne_rollo_hell group Logik
attr Wohnen_vorne_rollo_hell room Sonder/Logik
attr Wohnen_vorne_rollo_hell webCmd :
define Wohnen_vorne_rollo_dunkel notify Wetter_daemmerungswert:helligkeit:.(dunkel|hell) { fhem("set Wohnen_vorne_Rollo value " ($EVTPART1 eq 'dunkel' ? '100' : '0')) }
Schau mal ob es auch so geht. Ist bisschen einheitlicher und zusammen.
Nee, das klappt nicht... doch mir ist aufgefallen, dass ich jetzt schon Tagelang so im fhem stecke, dass ich übersehen habe, dass die Wetterstation das auch so kann. :o
Ich nutze den Code jetzt, um bei Dämmerung die Rollos halb herunter zu fahren. Voll hoch und runter übernimmt die Wetterstation.
Sorry, aber ich habe viel gelernt und kann nun meine Timereinstellungen komplett damit ersetzen. Danke!
;D