Hauptmenü

Dummy Frage zu Dummy Device

Begonnen von fireball, 02 Dezember 2018, 18:18:40

Vorheriges Thema - Nächstes Thema

fireball

Hi,

ich habe mir eine eigene kleine "Überwachung" meines Kamins schreiben wollen und nach vielen Hin und Her und Lesen folgendes Dummy-Device zusammen bekommen.
Es stellt mir alle wichtigen Temperaturen zum meinem wassergeführten Kamin aus anderen Quellen zusammen, die sich dort auch ständig ändern (Luxtronik der Heitungsanlage, die auch in FHEM ist)

Das Kamin Icon geht auf on, wenn die SolarPumpe, der Heizung auf on geht.

Frage: Die Werte im DummyDevice, also die Reading und der STATE für das ändern des Icon werden nicht automatisch aktualisiert.
Was ist da falsch?

Meine Alarmierung über Telegram hingegen funktioniert einwandfrei... aber da werden die Daten aus den sich ändernden Werten der Heizung direkt ausgelesen+der Vergleich der über set gesetzten AlarmTemperatur.

#######
# Kamin
#######

define Kamin dummy
attr Kamin devStateIcon on:icoZirkulationAn
attr Kamin icon icoHEIZUNG
attr Kamin readingList Temp_in_Wassertasche Temp_im_Puffer_oben Temp_im_Puffer_unten AlarmTemperatur
attr Kamin room WOHNZIMMER
attr Kamin setList Temp_in_Wassertasche Temp_im_Puffer_oben Temp_im_Puffer_unten AlarmTemperatur
attr Kamin stateFormat {ReadingsVal("LAD7","solarPump","off")}
attr Kamin userReadings Temp_in_Wassertasche { ReadingsVal("LAD7","solarCollectorTemperature",0) }, Temp_im_Puffer_oben { ReadingsVal("LAD7","hotWaterTemperature",0) }, Temp_im_Puffer_unten { ReadingsVal("LAD7","solarBufferTemperature",0) }

define Kamin_AlarmTemperatur DOIF ([LAD7:solarCollectorTemperature] >= [Kamin:AlarmTemperatur]) \
    (set Meine_TGBot message @Meine NR Achtung: Kamin wird zu heiß. Feuer löschen!!!)
attr Kamin_AlarmTemperatur repeatcmd 60


Könnnt ihr mir bitte den entscheidenen Hinweis geben?
VG+Danke!
René

fireball

Habe grad festgestellt, wenn ich mit "set AlarmTemperatur X" diesen Wert ändere, dann sind alle Readings und das ICON aktualsiert.  ???
Muss ich viell nur ein Attribut für die Aktualisierung oder ein Intervall angeben?

VG
René

amenomade

Ein userReading wird nur aktualisiert, wenn die andere Readings (desselben Geräts) aktualisiert werden.

War Du brauchst ist eher ein notify oder ein DOIF, um diese Readings zu aktualisieren, statt Perlcode in einem userReading
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

fireball

Hi,

danke für das Feebdack, meinst du das in etwas so:

define Kamin_TiW notify LAD:solarCollectorTemperature set Kamin:Temp_in_Wassertasche LAD:solarCollectorTemperature

Ich lesen als nicht mit RedingsVal die Werte aus, sodern setzte ein notify auf den Wert und schreibe danach den Wert in meinen neuen.

VG
René


amenomade

Etwas in der Art, allerdings mit setreading statt set
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

fireball

Hi,

nach einigem Try&Error habe ich es jetzt hinbekommen:


define Kamin dummy
attr Kamin devStateIcon on:icoZirkulationAn
attr Kamin event-on-change-reading .*
attr Kamin icon icoHEIZUNG
attr Kamin readingList Temp_in_Wassertasche Temp_im_Puffer_oben Temp_im_Puffer_unten AlarmTemperatur
attr Kamin room WOHNZIMMER
attr Kamin setList AlarmTemperatur
attr Kamin stateFormat {ReadingsVal("LAD7","solarPump","off")}

define Kamin_Daten at +*00:01:00 setreading Kamin Temp_in_Wassertasche [LAD7:solarCollectorTemperature];; setreading Kamin Temp_im_Puffer_oben [LAD7:hotWaterTemperature];; setreading Kamin Temp_im_Puffer_unten [LAD7:solarBufferTemperature]


Damit werden die Tempraturen nur geändert, wenn sich die Werte auch ändern.
Mit set kann ich die Alarmtemperatur AlarmTemperatur ändern und nun ist alles schick.
Auch das Icon ändert sich, wenn die Pumpe auf on geht.

VG+Danke!