[Gelöst] Rolladensteuerung Lux abhängig ohne die Beschattung zu stören

Begonnen von Syon, 25 August 2017, 06:57:42

Vorheriges Thema - Nächstes Thema

Syon

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?

CoolTux

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

Syon

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 :

CoolTux

Gib mal bitte ein list von dem Device.
Also

list Wohnen_vorne_rollo_helligkeitswert
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

Syon

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     :

Syon

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.

CoolTux


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

Syon

Wow, Danke.
Ich brauche das nur bei Änderung. Werde ich später versuchen.

Syon

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. 

CoolTux


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.
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

Syon

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 :

CoolTux


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.
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

Syon

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