DOIF reading setzen, löschen und prüfen

Begonnen von Dersch, 31 März 2016, 12:16:53

Vorheriges Thema - Nächstes Thema

Dersch

Hallo,

ich brauche mal eine DOIF Schulung, bin noch recht unbedarft und lebe von Wiki's und anderen Beispielen. Bisher bin ich noch nicht gut genug von 0 eigene scripts zu schreiben.

Ich habe hier ein DOIF welches die Lichtsteuerung für mein Kodi ist.  Das sieht momentan so aus:
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "playing" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie"))
(set WzHeimkinoLicht scene SchauModus)
DOELSEIF
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "paused" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie"))
(set WzHeimkinoLicht scene PausenModus)
DOELSEIF
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "stopped" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie"))
(set WzHeimkinoLicht scene LichtHell)


Es schaltet mir das Licht zuverlässig wenn es Dunkel ist. Funktioniert also bis auf eine Sache prima:
- Wenn ich während Play den Wert eines, mit der LightScene definierten Dimmers ändere springt dieser gleich danach wieder auf den Wert der Scene.
Kann ich das mittels des DOIF beeinflussen oder ist das eine andere Baustelle?

Nun ist mein Ziel, dass ich diesen Dimmer WzSofaLicht während Play individuell ändere (z.B weil meine Frau lesen oder häkeln will während ein Film geschaut wird und mehr Licht braucht). Wenn nun auf Pause geschaltet wird soll dieser geänderte Wert in ein reading last_state geschrieben werden und bei darauf folgendem Play gelesen werden. Also nicht die Scene setzen. Die Scene wird nur gesetzt wenn das Reading nicht vorhanden ist. Es wird also bei Stop gelöscht.

Und so habe ich es nun geändert aber ich weiß jetzt schon das da was falsch ist:
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "playing" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie") and [WzSofaLicht:last_state] ne "8") [b]# Hier hatte ich die Idee das Reading last_state zu lesen und wenn nicht equal zu 8 (Wert des Dimmers bei Play) soll last_state gesetzt werden welches aus der Pause davor geschrieben wurde.[/b]
(set WzSofaLicht [WzSofaLicht:last_state])
DOELSEIF
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "playing" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie") and [WzSofaLicht:last_state] eq "8") [b]# Hier die Sache umgekehrt und dann soll die Scene gesetzt werden. Aber hier sollte doch eigentlich geprüft werden ob das Reading überhaupt existiert. Wie mache ich das?[/b]
(set WzHeimkinoLicht scene SchauModus)
DOELSEIF
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "paused" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie"))
(setreading WzSofaLicht last_state [WzSofaLicht], set WzHeimkinoLicht scene PausenModus) [b]# Hier soll bei Pause das reading last_state geschrieben werden und dann soll die Scene PausenModus gesetzt werden. Ist das so richtig? Dafür muss ich noch lösen wie der individuelle Dimmerwert bei Play auch erhalten bleibt.[/b]
DOELSEIF
([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "stopped" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie"))
(deletereading WzSofaLicht last_state [WzSofaLicht], set WzHeimkinoLicht scene LichtHell) [b]# Hier wird das Reading last_state gelöscht und die Scene LichtHell gesetzt.[/b]


Die Kommentare sind im Code. Wie kann ich mein Ziel zuverlässig erreichen?

Ich bin für jede Hilfe dankbar :)
Grüße
Dirk

Per

Für den vollständigen Code habe ich jetzt keine Konzentration, aber:

Zitat von: Dersch am 31 März 2016, 12:16:53Wenn nun auf Pause geschaltet wird soll dieser geänderte Wert in ein reading last_state geschrieben werden und bei darauf folgendem Play gelesen werden. Also nicht die Scene setzen. Die Scene wird nur gesetzt wenn das Reading nicht vorhanden ist. Es wird also bei Stop gelöscht.
Was, wenn du bei Stop nicht löschst, sondern den Szene-Standard-Wert setzt, dann brauchst du bei Play nicht erst prüfen, sondern kannst einfach immer den gespeicherten Wert setzen.

CoolTux

Wäre ein Weg für Dich das ganze durch abfragen eines Dummys zu lösen? If Dummy == Frau häckelt then änder das Licht nicht.

Ich mache sowas bei meiner Lichtautomatik. Ist der Dummy auf on schaltet das Licht automatisch, ist er auf off schaltet gar nichts.
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

Dersch

Das mit dem Dummy wäre natürlich auch ein Weg aber ist es nicht schöner das ins DOIF einzubauen? Interessiert mich schon ob das so geht.

CoolTux

Machst Du ja, Du fragst ja im DOIF den Dummy ab. Wenn ich Dich richtig verstanden habe würdest Du bei Deiner Idee halt ein Reading abfragen.
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

Dersch

Ach so meinst du das. Aber wie wird dann der individuelle wert gespeichert? Hast du ein Beispiel für mich?

CoolTux

Wieso den Wert speichern? Ich hatte Dich so verstanden das Du nicht willst das der Wert geändert wird. Also quasi keine Schaltung erfolgt. Hab Dich da wohl missverstanden.
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

Dersch

Naja also normalerweise soll ja die Lichtsteuerung greifen. Aber wenn während Play der Wert des Dimmers geändert wurde, dann soll nach Pause dieser Wert wieder hergestellt werden und nicht der Wert der Scene. Nach Stopp soll das aber wieder auf Ausgangszustand gestellt sein. Das ist es was ich möchte :)

CoolTux

Ah ok. Sorry aber so spät kann ich nicht mehr so komplex denken. Aber mal ein kleiner Tip wie ich sowas mache. Mal ab davon das es sicherlich eine DOIF Lösung gibt.

Bei solch komplexen Szenarien und Schaltungen erstelle ich mir eine 99_myUtils welche ich über ein Notify aufrufe. Ins Notify kommen nur die Device rein die getriggert werden sollen und in die Sub werden dann die Abfragen und Bedingungen gemacht.
Finde ich persönlich Übersichtlicher muß ich gestehen.


Kleines Beispiel.

Notify:

Internals:
   DEF        BadezimmerVorheizenDummy:(on|off)|TempFeuchtSensorBadezimmer:temperature:.* {

          if( ($NAME eq "BadezimmerVorheizenDummy" || $NAME eq "TempFeuchtSensorBadezimmer") && Value( "BadezimmerVorheizenDummy" ) eq "on" ) {
              BadezimmerVorheizen($NAME,$EVENT);
          }

          elsif( $NAME eq "BadezimmerVorheizenDummy" && Value( "BadezimmerVorheizenDummy" ) eq "off" ) {
              BadezimmerVorheizenEnde();
          }
}
   NAME       notifyHeatingControl
   NR         371
   NTFY_ORDER 50-notifyHeatingControl
   REGEXP     BadezimmerVorheizenDummy:(on|off)|TempFeuchtSensorBadezimmer:temperature:.*
   STATE      2016-03-31 23:03:57
   TYPE       notify
   Readings:
     2016-03-29 15:01:02   state           active
Attributes:



Und hier die 99_myUtils dazu

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;



sub myUtils_HeatingControl_Initialize($$) {

  my ($hash) = @_;

}


###########################################
### Badezimmer Vorheizen

sub BadezimmerVorheizenEnde() {

        oldVolume("Nexus7Wohnzimmer","safe");
        oldVolume("Nexus7Isabel","safe");
        oldVolume("DesireHD_Flur","safe");

        my $solltemp = ReadingsVal( "BadezimmerVorheizenDummy", "desired-temp", "21.0" );
        my $isttemp = ReadingsVal( "TempFeuchtSensorBadezimmer", "temperature", "Fegefeuer" );


        if( ReadingsVal( "setTemperaturTemplateDummy", "state", "HeatingOFF" ) eq "HeatingOFF" ) {

                fhem "set HeizungsThermostatBadezimmer_Clima controlManu off";

        } else {

                fhem "set HeizungsThermostatBadezimmer_Clima controlMode auto";

        }


        fhem "set Nexus7Wohnzimmer volume 6; sleep 1; set Nexus7Wohnzimmer ttsMsg Das Badezimmer wurde auf $isttemp Grad vorgeheizt und kann nun mollig warm verwendet werden.";
        fhem "set DesireHD_Flur volume 6; sleep 1; set DesireHD_Flur ttsMsg Das Badezimmer wurde auf $isttemp Grad vorgeheizt und kann nun mollig warm verwendet werden." if( ReadingsVal( "AnniKraussStr", "residentsAsleep", 1 ) == 0 );

        fhem "set Nexus7Isabel volume 6; sleep 1; set Nexus7Isabel ttsMsg Das Badezimmer wurde auf $isttemp Grad vorgeheizt und kann nun mollig warm verwendet werden." if( Value( "rr_Isabel" ) eq "home" || Value( "rr_Isabel" ) eq "awoken" );


        fhem "set HeizungsThermostatBadezimmer_Clima burstXmit";

        oldVolume( "Nexus7Wohnzimmer", "restore"); oldVolume( "DesireHD_Flur", "restore"); oldVolume( "Nexus7Isabel", "restore");
}


sub BadezimmerVorheizen($$) {

        my ($name,$event) = @_;

        oldVolume("Nexus7Wohnzimmer","safe");
        oldVolume("Nexus7Isabel","safe");
        oldVolume("DesireHD_Flur","safe");

        my $solltemp = ReadingsVal( "BadezimmerVorheizenDummy", "desired-temp", "21.0" );
        my $isttemp = ReadingsVal( "TempFeuchtSensorBadezimmer", "temperature", "Fegefeuer" );

        if( $name eq "BadezimmerVorheizenDummy" ) {
                if( ReadingsVal( "setTemperaturTemplateDummy", "state", "HeatingOFF" ) ne "Summer" ) {
                        if( ReadingsVal( "TempFeuchtSensorBadezimmer", "temperature", "19.0" ) < "$solltemp" && Value( "structureFensterTuerBadezimmer" ) eq "geschlossen" && ReadingsVal( "setTemperaturTemplateDummy", "state", "HeatingOFF" ) ne "Summer" ) {
                                fhem "set HeizungsThermostatBadezimmer_Clima controlManu $solltemp; set HeizungsThermostatBadezimmer_Clima burstXmit";

                                fhem "set Nexus7Wohnzimmer volume 6; sleep 1; set Nexus7Wohnzimmer ttsMsg Das Badezimmer wird jetzt auf $solltemp Grad vorgeheizt.";
                                fhem "set DesireHD_Flur volume 6; sleep 1; set DesireHD_Flur ttsMsg Das Badezimmer wird jetzt auf $solltemp Grad vorgeheizt." if( ReadingsVal( "AnniKraussStr", "residentsAsleep", 1 ) == 0 );


                                fhem "set Nexus7Isabel volume 8; sleep 1; set Nexus7Isabel ttsMsg Das Badezimmer wird nun auf $solltemp Grad vorgeheizt." if( Value( "rr_Isabel" ) eq "home" || Value( "rr_Isabel" ) eq "awoken" );
                        }
                        elsif( Value( "structureFensterTuerBadezimmer" ) eq "offen" ) {

                                my @monitored=devspec2array("(.*KontaktBadZ.*):FILTER=STATE!=closed");
                                my $cnt_devs=@monitored;
                                my $i = 0;
                                my $msgtext = "";

                                foreach(@monitored) {
                                        $msgtext .= AttrVal($_,"alias",$_);
                                        if ($i < $cnt_devs - 2) {
                                          $msgtext .= ", ";
                                        }
                                        if ($i == $cnt_devs - 2) {
                                                $msgtext .= " und ";
                                        }

                                        $i++;
                                }

                                fhem "set Nexus7Wohnzimmer volume 6; sleep 1; set Nexus7Wohnzimmer ttsMsg ".$msgtext." ist noch offen. Bitte zu erst schließen und dann das vorheizen erneut probieren." if( $cnt_devs > 0 );
                                fhem "set DesireHD_Flur volume 6; sleep 1; set DesireHD_Flur ttsMsg ".$msgtext." ist noch offen. Bitte zu erst schließen und dann das vorheizen erneut probieren." if( $cnt_devs > 0 && ReadingsVal( "AnniKraussStr", "residentsAsleep", 1 ) == 0 );

                                #fhem "setreading BadezimmerVorheizenDummy canceled  1";
                                fhem "set BadezimmerVorheizenDummy off";

                        } else {

                                fhem "set Nexus7Wohnzimmer volume 6; sleep 1; set Nexus7Wohnzimmer ttsMsg Die Temperatur im Badezimmer beträgt $isttemp Grad und es ist somit warm genug.";
                                fhem "set DesireHD_Flur volume 6; sleep 1; set DesireHD_Flur ttsMsg Die Temperatur im Badezimmer beträgt $isttemp Grad und es ist somit warm genug." if( ReadingsVal( "AnniKraussStr", "residentsAsleep", 1 ) == 0 );

                                #fhem "setreading BadezimmerVorheizenDummy canceled  1";
                                fhem "set BadezimmerVorheizenDummy off";
                        }

                } else {

                        fhem "set Nexus7Wohnzimmer volume 6; sleep 1; set Nexus7Wohnzimmer ttsMsg Es ist Sommer und die Heizung somit ausgeschalten.";
                        fhem "set DesireHD_Flur volume 6; sleep 1; set DesireHD_Flur ttsMsg Es ist Sommer und die Heizung somit ausgeschalten." if( ReadingsVal( "AnniKraussStr", "residentsAsleep", 1 ) == 0 );

                        #fhem "setreading BadezimmerVorheizenDummy canceled  1";
                        fhem "set BadezimmerVorheizenDummy off";
                }
        }

        if( $name eq "TempFeuchtSensorBadezimmer" && ReadingsVal( "TempFeuchtSensorBadezimmer", "temperature", "25.0" ) >= "$solltemp" ) {

                fhem "set BadezimmerVorheizenDummy off";
        }

        oldVolume( "Nexus7Wohnzimmer", "restore"); oldVolume( "DesireHD_Flur", "restore"); oldVolume( "Nexus7Isabel", "restore");
}

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

Dersch

oh das sieht mir sehr kompliziert aus. mit 99myutils hatte ich nun noch nie Berührung.

Da brauche ich nun wohl Zeit zum reinlesen. Danke für dein Beispiel, damit kann ich nun mal etwas lernen wenn ich es denn verstehe :)

CoolTux

Das sieht eigentlich nur so aus. Im Grunde ist es ähnlich wie Dein DOIF Konstrukt.
Es werden Devices getriggert und danach Abfragen gestartet. Sind bestimmte Bedingungen erfüllt wird geschälten.

Hier wird einfach das Badezimmer auf eine vorher ausgewählte Wunschtemperatur vorgeheizt, damit wir unseren Junior Abends waschen können.
In meinem Beispiel wird ein Dummy auf on und off getriggert und das Reading temperature vom Heizungsthermostaten im Bad.

Wird der Dummy auf on gesetzt wird überprüft ob überhaupt Heizzeit ist, also Sommer oder Winter, ist Winter wird geschaut ob die die eingestellte Wunschtemperatur höher ist wie die momentan gemessene. Dann wird geschaut ob die Struktur für Badezimmer Fenster und Tür den Status geschlossen hat. Ist das alles erfüllt wird die Heizung höher gedreht und eine Durchsage in der Wohnung erfolgt.



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

Dersch

Ok damit setze ich mich mal auseinander.

Kannst du mir evtl noch dabei helfen wie ich die Abfrage des bestehenden DOIF so verändere, dass der Lichtwert nicht immer wieder auf die Scene gesetzt wird? Also das Problem ist, dass ich bei Play den Dimmer verändere, dieser dann aber gleich wieder auf den Wert der Scene gesetzt wird. Kann das DOIF so verändert werden, dass die Scenen nur einmal beim eintreten der Definition gesetzt werden und nicht dauernd abgefragt wird?

CoolTux

Also ausgehend von Deinem Urspruns DOIF setzt Du bei play doch eine gesamte Scene und änderst nicht nur den Wert eines Devices.
Aber wenn ich das richtig verstehe, möchtest Du wenn Play aktiv ist und deine Playscene somit gesetzt ist den Wert eines Devices ändern.
Machst du nun Pause setzt also deine Pausen Scene wird ja der Wert des einen Devices wieder über schrieben, das soll aber nicht geschehen, korrekt? Bzw wenn das geschieht soll sofort der Wert wieder zurück gesetzt werden. Habe ich das verstanden?
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

Dersch

#13
Also ich habe 2 Anliegen. 1x Wunsch und 1x Problem :)

Das Problem:
Wenn der Wert eines Devices (hier Dimmer) geändert wird, welches über eine Scene auf einen bestimmten Wert gesetzt ist. Dann springt der Wert automatisch wieder auf den Wert der Scene. Das Log zeigt, dass eine andauerende Abfrage der Scenenwerte erfolgt. Wie kann ich das unterbinden? Es reicht doch die Werte der Scene einmalig nach dem Trigger (hier Play, Pause, Stop) einzustellen.

So sieht es im Log aus:
2016.03.31 21:57:58 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:57:58 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:57:58 3: CUL_HM set WzKoeter off
2016.03.31 21:57:58 1: PERL WARNING: Argument "set_8" isn't numeric in division (/) at (eval 16091) line 1.
2016.03.31 21:57:58 3: CUL_HM set WzSofaLicht 8
2016.03.31 21:57:59 3: WzKaminLED RGBW LD382A set off 3
2016.03.31 21:57:59 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:57:59 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:57:59 3: CUL_HM set WzKoeter off
2016.03.31 21:57:59 1: PERL WARNING: Argument "set_8" isn't numeric in division (/) at (eval 16095) line 1.
2016.03.31 21:57:59 3: CUL_HM set WzSofaLicht 8
2016.03.31 21:57:59 3: WzKaminLED RGBW LD382A set off 3
2016.03.31 21:57:59 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:57:59 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:57:59 3: CUL_HM set WzKoeter off
2016.03.31 21:57:59 1: PERL WARNING: Argument "set_8" isn't numeric in division (/) at (eval 16099) line 1.
2016.03.31 21:57:59 3: CUL_HM set WzSofaLicht 8
2016.03.31 21:57:59 3: WzKaminLED RGBW LD382A set off 3
2016.03.31 21:57:59 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:57:59 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:57:59 3: CUL_HM set WzKoeter off
2016.03.31 21:57:59 1: PERL WARNING: Argument "set_8" isn't numeric in division (/) at (eval 16103) line 1.
2016.03.31 21:57:59 3: CUL_HM set WzSofaLicht 8
2016.03.31 21:58:45 3: WzKaminLED RGBW LD382A set off 3
2016.03.31 21:58:45 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:58:45 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:58:45 3: CUL_HM set WzKoeter off
2016.03.31 21:58:45 1: PERL WARNING: Argument "set_8" isn't numeric in division (/) at (eval 16123) line 1.
2016.03.31 21:58:45 3: CUL_HM set WzSofaLicht 8
2016.03.31 21:58:45 3: WzKaminLED RGBW LD382A set off 3
2016.03.31 21:58:45 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:58:45 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:58:45 3: CUL_HM set WzKoeter off
2016.03.31 21:58:45 1: PERL WARNING: Argument "set_8" isn't numeric in division (/) at (eval 16127) line 1.
2016.03.31 21:58:45 3: CUL_HM set WzSofaLicht 8
2016.03.31 21:58:45 3: WzKaminLED RGBW LD382A set off 3
2016.03.31 21:58:45 3: WzKaminLED RGBW LD382A dim 0 3
2016.03.31 21:58:45 3: WzKaminLED set HSV 26, 71, 0 with ramp: 3, flags:
2016.03.31 21:58:45 3: CUL_HM set WzKoeter off


Das zeigt es ist mir grade unmöglich individuelle Werte abseits der Scenen Einstellung zu treffen. Das DOIF scheint permanent abgefragt zu werden und ich weiß nicht warum.

Der Wunsch:
Ist das was wir die letzten Beiträge besprochen haben. Ich möchte den Wert des Dimmers auch individuell Einstellen können während Play. Wenn dann auf Pause geschaltet wird kann die Pausen Scene ruhig gesetzt werden. Aber wenn dann wieder auf Play geschaltet wird, wird ja der PlayScenenWert eingestellt. Das soll nicht passieren wenn vorher der Wert bei Play geändert wurde. Dann soll der vorher individuell eingestellte Wert wieder eingestellt werden.
Wenn dann auf Stop geschaltet wird (Film zu Ende oder abgebrochen) soll dann die Ausgangssituation wieder aktiv sein. Also das Spiel fängt von vorne an.

Das soll verhindern, dass wir andauernd (wenn es die Situation halt verlangt) den Dimmer nachregeln müssen wenn Play=Pause=Play eintrifft.




CoolTux

Ok das habe ich nun verstanden.
Ich muss da heute Abend mal testen wieso der Wert eines Devices immer wieder überschrieben wird bei einer scene. Kenne das so nicht und eigentlich Trigger Dein DOIF wenn ich das richtig sehe das Device LightScene ja nicht mal. Oder?
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