FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ak323 am 22 Januar 2023, 19:14:17

Titel: Zustand Dimmwert vor Änderung speichern ?
Beitrag von: ak323 am 22 Januar 2023, 19:14:17
Hi, ich suche mir nen Wolf !

Ich habe einen Dimmer, der Abend auf z.B 10% gesetzt wird
Ein Bewegungsmelder soll ihn für 20s auf 100% setzen und danach wieder auf den Ausgangswert. Hier in diesem Beispiel 10%.
Wenn der Dimmer aus irgendeinem Grund (manuelle Bedienung) z.B. auf 0% oder 1% stand bevor der Bewegungsmelder ihn auf 100% gestellt hat, soll er nach 20s weder auf den Ursprungswert von 0% oder 1% gestellt werden.

Das kann doch nicht so schwer sein !?

So funktioniert es jedefall nicht den Dimmerwert von "EG.Flur.Garderobe.Ambiente:Dimmer" zwischenzuspeichern ... ?!

define di_EGFlur_Bewegung2 DOIF (([FlurSensor_data_PIR1:state] eq "ON") and [UmweltSensor_data_BH1750_Illuminance] < 3000) [u][i](setreading EG.Flur.Garderobe.Ambiente dimstore [EG.Flur.Garderobe.Ambiente:Dimmer])[/i][/u] (set EG.Flur.Garderobe.Ambiente Dimmer 100) (set EG.Flur.Garderobe.Ambiente [u][i]dimstore[/i][/u])
attr di_EGFlur_Bewegung2 do resetwait
attr di_EGFlur_Bewegung2 wait 0,15


Danke für Eure Hilfe !
Titel: Antw:Zustand Dimmwert vor Änderung speichern ?
Beitrag von: betateilchen am 22 Januar 2023, 19:18:53
Das Abspeichern des vorherigen Wertes sollte der Dimmer selbst können.

https://commandref.fhem.de/#oldreadings
Titel: Antw:Zustand Dimmwert vor Änderung speichern ?
Beitrag von: ak323 am 22 Januar 2023, 19:24:49
Woher weisst Du denn was ich für einen Dimmer habe ?

Das ist ein ESP8266 mit tasmota über MQTT ...
Titel: Antw:Zustand Dimmwert vor Änderung speichern ?
Beitrag von: DeeSPe am 22 Januar 2023, 19:27:01
Ich mache sowas immer mit dem Modul LightScene.
Erst Werte speichern:
set <LightScene> save last
Danach könntest Du eine andere LightScene (HELL) starten mit:
set <LightScene> scene HELL
Bei der Scene HELL kannst Du dann auf "setcmd" statt "set" umstellen und Deinen set Befehl für "HELL" eingeben, dann sleep 20 und dann wieder die Scene "last" aufrufen:
set <LAMPE> dim 100; sleep 20; set <LightScene> scene last

Gruß
Dan
Titel: Antw:Zustand Dimmwert vor Änderung speichern ?
Beitrag von: ak323 am 22 Januar 2023, 19:43:27
Das muss doch einfacher gehen ?

SPEICHERE Wert von [EG.Flur.Garderobe.Ambiente:Dimmer] in Variable DIMSTORE
set EG.Flur.Garderobe.Ambiente Dimmer 100
sleep 20
set EG.Flur.Garderobe.Ambiente Dimmer DIMSTORE

Oder ist sowas einfaches mit FHEM nicht möglich ?
Titel: Antw:Zustand Dimmwert vor Änderung speichern ?
Beitrag von: betateilchen am 22 Januar 2023, 20:16:27
Zitat von: ak323 am 22 Januar 2023, 19:24:49
Woher weisst Du denn was ich für einen Dimmer habe ?

Das muss ich gar nicht wissen, weil es ziemlich wurscht ist, um was für ein device es sich handelt.
Das Abspeichern des vorherigen Wertes eines readings ist eine Grundfunktion von FHEM. Wenn es im device ein reading mit dem Dimmwert gibt, kann man auch auf den vorherigen Wert zugreifen, wenn man das Attribut entsprechend gesetzt hat.

Noch einfacher geht es wirklich nicht.
Titel: Antw:Zustand Dimmwert vor Änderung speichern ?
Beitrag von: betateilchen am 22 Januar 2023, 20:50:19

define dimmerDummy dummy
attr dimmerDummy oldreadings dim
attr dimmerDummy readingList dim
attr dimmerDummy setList dim

define dimmerDummy_notify notify dimmerDummy:dim:.* {Debug OldReadingsVal('dimmerDummy','dim',-1)}


Wenn Du jetzt z.B. "set dimmerDummy dim 70" eingibst, wird der neue Wert gesetzt und der vorherige Wert als Debug Meldung ins Log geschrieben.
Das notify dient nur dazu, zu zeigen, dass der vorherige Wert von "dim" tatsächlich von FHEM automatisch im device gespeichert wird und für irgendwas verwendet werden kann. Man könnte den Wert auch dazu verwenden, um nach 20 Sekunden den alten Wert wieder herzustellen. Dabei muss man nur darauf achten, keine Dauerschleife zu erzeugen  8) Aber das herauszufinden, überlasse ich dem geneigten Leser.

Das Ganze funktioniert natürlich erst ab dem zweiten Setzen, weil es beim ersten Mal noch gar keinen "vorherigen" Wert gibt.