DOIF reading setzen, löschen und prüfen

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

Vorheriges Thema - Nächstes Thema

CoolTux

Ok was hältst Du davon. Wir machen einen Dummy. Ist dieser Dummy gesetzt soll nach dem die LightScene auf SchauModus steht der Dimmer wieder auf einen vorher festgelegten Wert gehen.
Es muss aber immer vorher festgelegt werden ob oder ob nicht hochgedimmt werden soll. Es muss also immer der Dummy aktiviert werden. Wäre das ok für 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

Sirel

Hallo Dersch,

Du nutzt das Attribut "Do-Always". D.h. jedes Mal wenn sich ein Reding beim Device [WzHTPC] aktualisiert (muss nicht geändert werden, nur aktualisiert), wird Dein Modul getriggert.
Darum spingt auch dein Dimmerwert, nachdem Du ihn manuell während der Filmwiedergabe verstellt hast, kurze darauf wieder auf den "Szenenwert" zurück.
Daher solltest Du das Do-Always mal löschen.

Alternativ könntest Du sonst im Device [WzHTPC] durch einEvent-on-change-reading das "Triggern" begrenzen.

Nimm doch im ersten Schritt mal das Do-Always raus.

Viele Grüße,

Max

CoolTux

Max hat Recht. Das habe ich total übersehen. Vielen Dank Max.
Es ist wirklich nötig das Du das raus nimmst. Und dann kannst auch das event-on-change-reading wieder auf .* setzen.
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 Super Tipp!! Danke! :)

Habe nun im DOIF das do always raus und beim WzHTPC das event-on-change wieder von playstatus auf .*

@cooltux: das mit dem Dummy können wir gerne machen. Ich erde schon sehen ob es das ist was ich möchte und lerne so oder so dabei :) Du meinst dann das Dummy muss manuell gesetzt werden wenn Werte abseits der Scenen aktiv sein sollen?

CoolTux

Ja genau. Es soll eigentlich nur immer als Abfragepunkt her halten.
Ist der Dummy aus on gesetzt soll Lampe X immer Wert y bekommen.

Eigentlich simpel. Ein Notify triggert WzHTPC:playStatus.play oder so.

Im Notify steht dann

if dummy on set lampe 18

Weisst wie ich das meine?
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

Grob ja :) ich verstehe nur noch nicht den zusammenhang zum doif ;) das wird dann bei gesetztem dummy disabled? Wäre blöd da das doif ja mit der scene andere devices ansteuert und es bei dem individuellen wert nur um ein device geht was aber halt auch in der scene definiert ist.

CoolTux

Nein Dein DOIF macht genau das was es machen soll. Und es wird auch wenn der Status play kommt erstmal die Lampe geschalten um dann gleich danach wieder zurück zu schalten.
Was mir aber gerade noch eingefallen ist und das ist viel besser. Mach eine zweite play Scene, der einzige Unterschied die Lampe welche heller gedimmt sein soll gibt Du den neuen Dimmwert.
Dann machen wir es nur mit deinem doif. Ist dummy on DOELSEIF  mit heller scene ist dummy off DOELSEIF mit dunkler scene. Du hast dann quasi zwei DOELSEIF  für play.
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

hmm das klingt auch gut. Kannst du mir kurz aufzeichnen wie du dir den Dummy vorstellst? Damit wir auf einer Ebene sind :)

CoolTux

Ich habe da keine Vorstellung. Ist ja Dein Dummy. Kannst ihn gelb oder grün machen  ;D  ;D

Einfach einen Dummy mit passendem Namen

und als attribut gibt Du ihm ein setList    on:noArg off:noArg
Fertig. Mehr brauchen wir nicht. Alles was wir brauchen ist ein on oder off im state des dummys

Und bei Deinem DOIF play wertest Du einfach den dummy mit aus


([Tageslicht] =~ "dunkel" and [WzHTPC:playStatus] eq "playing" and [DummyName] eq "off" 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 "playing" and [DummyName] eq "on" and [WzHTPC:currentMedia] ne "" and ([WzHTPC:type] eq "episode" or [WzHTPC:type] eq "movie"))
(set WzHeimkinoLicht scene SchauModusBISSCHENHÖHERLAMPESTRICKEN)
DOELESIF
([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)
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 jetzt habe ich es verstanden, vielen Dank!  :) ich brauche wohl noch ein wenig mehr Praxiserfahrung hier ;)

CoolTux

Berichte dann mal wenn Du soweit bist  :)


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

Sorry für die späte Antwort. Es funktioniert wie gewollt! :) vielen Dank für deine Hilfe.

Ich habe noch etwas gestöbert und diese Beiträge gefunden:

https://forum.fhem.de/index.php?topic=32387.0
https://forum.fhem.de/index.php?topic=32775.0

Der macht ja eigentlich fast genau das was ich ursprünglich wollte (vorherigen wert speichern)
Ich verstehe nur nicht mit welchem Modul? Sein script mit den my ... Das verstehe ich nicht so ganz.

Hast du da eine Erklärung für Dummies? :)

CoolTux

Freut mich das es funktioniert.

Das ist kein Modul. Der dort erwähnte Code wird direkt ins Notify eingetragen. Finde ich absolut nicht gut, so viel Code gehört in eine 99_myUtils Datei.
das my und dann die Variable dahinter bedeutet das eine nicht globale Variable deklariert wird. Ist Perl Programmierung.
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

Ah ok jetzt verstehe ich es etwas mehr. Von Pearl programmierung lasse ich aber lieber die Finger. Würde es zwar gerne aber bisher habe ich keinen Plan davon.