FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Stril am 16 Mai 2015, 12:22:48

Titel: Dummy mit Durschnitt mehrerer Dimmwerte
Beitrag von: Stril am 16 Mai 2015, 12:22:48
Hallo!

Ich komme hier irgendwie nicht weiter...

Im Wohnzimmer habe ich drei Dimmer:

D1, D2, D3

Ziel wäre ein Dummy
dD, der:
- Den Durchschnittlichen "dim-Wert" von D1, D2 und D3 enthält und bei einem set dD x den Befehl set D.* dim x ausführt

Das Ganze wäre so eine Art "Sammelschalter".

Habt ihr dazu eine Idee?

Vielen Dank
Gruß
Phil
Titel: Antw:Dummy mit Durschnitt mehrerer Dimmwerte
Beitrag von: lukasbastelpeter am 16 Mai 2015, 12:24:11
structure?!


edit: jetzt verstehe ich... :D einfach ein notify was von der structure getriggert wird und dann den durchschnitt berechnet? Kannst den durchschnitt dann ja als reading der structure anlegen. Oder nen Dummy nehmen, ist ja egal
Titel: Antw:Dummy mit Durschnitt mehrerer Dimmwerte
Beitrag von: Stril am 16 Mai 2015, 12:49:20
Hallo!

Hat die structure denn eine "Durchschnittsfunktion", oder bastle ich das dann eher selbst?
Bisher bekomme ich nur ein gesammeltes "on/off" über structure hin, sowie ein set für alle. Einen sinnvollen Dim-Wert bekomme ich nicht angezeigt.

Danke und Grüße
Titel: Antw:Dummy mit Durschnitt mehrerer Dimmwerte
Beitrag von: Stril am 19 Mai 2015, 12:56:39
Hallo!

Habt ihr dazu noch irgendeine Idee? Ich komme einfach nicht weiter.

Ziel wäre wirklich:

Sammelsensor, der den Durchschnitt mehrerer Sensoren anzeigt und bei einem "set" diesen Befehl an mehrere Aktoren schickt.

Grüße und danke
Phil
Titel: Antw:Dummy mit Durschnitt mehrerer Dimmwerte
Beitrag von: Stril am 20 Mai 2015, 10:49:34
Hallo!

Also Teil 1 habe ich:

In den Dummy wird der Durchschnittswert der drei Dimmer geschrieben:


define nL_Wohnzimmer notify aLd_EG_Wohnzimmer.*:dim:.* {\
        my $r1 = (ReadingsVal('aLd_EG_Wohnzimmer_Sofa','dim','')) ;;\
        my $r2 = (ReadingsVal('aLd_EG_Wohnzimmer_Kamin','dim','')) ;;\
        my $r3 = (ReadingsVal('aLd_EG_Wohnzimmer_Garten','dim','')) ;;\
        my $rschnitt = ((($r1 + $r2 + $r3) / 3));;\
        system("/bin/echo $r1 $r2 $r3 $rschnitt  > /opt/fhem/ownscript/tmp/wz.tmp");;\
        fhem "set dL_EG_Wohnzimmer_Dimmersum $rschnitt" ;;\
}


Mein Problem ist nur Folgendes:

Wenn einer der Dimmer einzeln geändert wird, schreibt o.g. notify den Durschnitt in den Dummy.
Jetzt würde ich ja gerne per "webCmd" alle Dimmer gemeinsam regeln. Da aber das "gleiche set" ausgeführt wird, komme ich in einen Konflikt:

Lasse ich per Notify die drei Dimmer bei einem set auf den Dummy alle setzen, kann ich nicht per set den Durschnitt setzen.

Habt ihr dazu eine Idee?

Gruß
Phil