Hallo FHEM Freunde und Spezialisten
ich bräuchte etwas Hilfe beim gestalten einer Funktion die man mit "Oldvalue" bezeichnen könnte. War das mal eine Funktion die es nicht mehr gibt?
Ziel meines vorhabens ist, auszuwerten ob sich die Temperatur von der letzten Messung (z.B. vor 5 Minuten intervall) zu der aktuellen um mehr
als 5 °C geändert hat um dann eine Warnmeldung auszugeben. Die Meldefunktion selbst geht vermuttlich am besten mit einem DOIF. Hier in diesem Forumsbereich bin ich, weil ich hoffe das mir jemand beim erzeugen des Readings "vorletzte Temperatur" oder gleich "Differenzwert" zur vorherigen Messung. Als Sensoren habe ich die 1wire DS18B20. Bei Wiki und den einschlägigen Seiten im Netz habe ich leider nichts passendes gefunden.
Vielen Dank für jeden passenden Hinweis.
Schöne Grüße
NewRasPi
Meinst so was? Das ist ein DOIF das ich nutze um zu vergleichen ob eine Temperatur sinkt.
(([dummyKaltwasserHeizung] <= OldValue("dummyKaltwasserHeizung")) and ([dummyKaltwasserHeizung]<[Grenzwert_KW_HZ]))
(set TempALKW_Heizung on)
DOELSEIF ([dummyKaltwasserHeizung] > OldValue("dummyKaltwasserHeizung"))
(set TempALKW_Heizung off)
Gruß,
Jogi
Lese Dich in OldReadingsVal ein. Das sollte das sein was Du suchst.
Hallo CoolTux
Danke für den Tip.
ist dieses Reading noch aktuell?
Ich habe danach gesucht und noch nichts gefunden. - Muss wohl noch mal genauer suchen. Danke
Zitat von: Jogi am 17 Februar 2019, 22:23:06
Meinst so was? Das ist ein DOIF das ich nutze um zu vergleichen ob eine Temperatur sinkt.
(([dummyKaltwasserHeizung] <= OldValue("dummyKaltwasserHeizung")) and ([dummyKaltwasserHeizung]<[Grenzwert_KW_HZ]))
(set TempALKW_Heizung on)
DOELSEIF ([dummyKaltwasserHeizung] > OldValue("dummyKaltwasserHeizung"))
(set TempALKW_Heizung off)
Gruß,
Jogi
Hallo Jogi
diesen Thread hatte ich gelesen. Ich dachte aber das da die Lösung noch offen war.
Ich würde gerne auf eine Änderung von 5 °C oder mehr prüfen. Du bist auf einen Dummy ausgewichen. Wenn es ein "OldValue" direkt im 1wire Sensor gibt - oder per userattr anzulegen geht, dann würde mir das besser gefallen.
Schöne Grüße
NewRasPi
OldReadingsVal ist eine FHEM Perlfunktion. Genau wie ReadingsVal nur eben den alten Wert.
Zitat von: CoolTux am 17 Februar 2019, 22:42:57
OldReadingsVal ist eine FHEM Perlfunktion. Genau wie ReadingsVal nur eben den alten Wert.
Hallo CoolTux
nach diesem Thread
https://forum.fhem.de/index.php?topic=85406.0
soll ja das schon eingecheckt sein. Aber die Commandref oder Anleitung dazu finde ich immer noch nicht.
Schöne Grüße
NewRasPi
https://forum.fhem.de/index.php?topic=87766.0
https://forum.fhem.de/index.php?topic=91003.0
Beim zweiten Link nur auf das Beispiel des Erstellers achten bitte.
Noch mal hallo
muss ich dann doch über einen zusätzlichen Dummy gehen?
Hier mein List: Internals:
ALARM 0
ASYNC 0
CHANGED
DEF DS18B20 FFF898641403
ERRCOUNT 0
FUUID 5c430225-f33f-103c-ecee-6e7f0515f9d32105
INTERVAL 900
IODev OWio
NAME AussenTemp
NOTIFYDEV global
NR 31
NTFY_ORDER 50-AussenTemp
OW_FAMILY 28
OW_ID FFF898641403
PRESENT 1
ROM_ID 28.FFF898641403.23
STATE T: 1.00 °C
TYPE OWTHERM
owg_cf 10
owg_temp 1
owg_th 85
owg_tl 0
Helper:
DBLOG:
temperature:
logdb:
TIME 1550442008.43773
VALUE 1
READINGS:
2019-02-17 23:35:08 state T: 1.00 °C
2019-02-17 23:35:08 temperature 1
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
event-min-interval temperature:900
event-on-change-reading temperature
fp_Lageplan 271,720,3,state,Aussen
icon temp_temperature
interval 900
model DS18B20
oldreadings state
resolution 10
room 5.1_Umwelt_Aussen,OWX
tempHigh 85
tempLow 0
tempUnit Celsius
verbose 4
Darin hätte ich ein weiteres Reading erwartet. Da ist aber nicht mehr wie vorher/ ober bei den anderen Temperatursensoren ist.
Ausser das Attriput "oldreadings state" - nur leider kein Wert.
Ich steh da auf der Leitung - sorry.
Kennst Du die Funktion ReadingsVal? OldReadingsVal ist das selbe in grün nur für den alten Wert.
Willst du also den alten Wert von state haben musst Du
OldReadingsVal('DEVICENAME','state','none')
Machen. Am einfachsten im Notify für Deine Berechnung die Du machen willst oder wegen mein auch im userReadings.
Zitat von: CoolTux am 18 Februar 2019, 00:00:47
Kennst Du die Funktion ReadingsVal? OldReadingsVal ist das selbe in grün nur für den alten Wert.
Willst du also den alten Wert von state haben musst Du
OldReadingsVal('DEVICENAME','state','none')
Machen. Am einfachsten im Notify für Deine Berechnung die Du machen willst oder wegen mein auch im userReadings.
Hallo CoolTux
im Device selbst geht es anscheinend nicht.
Ich habe beide Versuche ins Device 1wire Sensor eingebaut, leider ohne ein Ergebnis.
Mit Notify habe ich noch nichts gemacht. Damit muss ich mich dann erst mal beschäftigen. Das kann dann mit einem Wert rechnen, der gar nicht im Device
angezeigt wird?
Internals:
ALARM 0
ASYNC 0
DEF DS18B20 FFFB96641403
ERRCOUNT 0
FUUID 5c430225-f33f-103c-58a0-d28ad6c55a24787a
INTERVAL 300
IODev OWio
NAME SchlafzimmerTemp
NOTIFYDEV global
NR 34
NTFY_ORDER 50-SchlafzimmerTemp
OW_FAMILY 28
OW_ID FFFB96641403
PRESENT 1
ROM_ID 28.FFFB96641403.78
STATE T: 19.75 °C
TYPE OWTHERM
owg_cf 10
owg_temp 19.75
owg_th 40
owg_tl 0
Helper:
DBLOG:
data:
logdb:
TIME 1550473751.38808
VALUE state: T: 19.75 °C
temperature:
logdb:
TIME 1550473751.38808
VALUE 19.75
OLDREADINGS:
2019-02-18 07:39:11 temperature 19.5
READINGS:
2019-02-18 08:09:11 state T: 19.75 °C
2019-02-18 08:09:11 temperature 19.75
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
OldReadingsVal ('SchlafzimmerTemp','state','none')
event-min-interval temperature,state:300
event-on-change-reading temperature,state,STATE
fp_Lageplan 172,299,5,SchlafzimmerTemp,
fp_statevalue STATE
icon temp_temperature
interval 300
model DS18B20
oldreadings temperature
resolution 10
room 1.2_Schlafzimmer,OWX
tempHigh 40
tempLow 0
tempUnit Celsius
userReadings OldReadingsVal('SchlafzimmerTemp','state','none')
userattr OldReadingsVal
verbose 1
Was mache ich da falsch?
Schöne Grüße
Hast Du eigentlich Dich ein bisschen belesen zum Thema userReadings?
userattr OldReadingsVal
Das ist Unsinn. Bitte löschen.
userReadings OldReadingsVal('SchlafzimmerTemp','state','none')
Der Aufbau ist völlig falsch
Internals:
NAME dummyWeather
NR 122
STATE T: 20.75 °C
TYPE dummy
OLDREADINGS:
2019-02-18 08:32:45 state T: 18.75 °C
READINGS:
2019-02-18 08:32:53 alterWert T: 18.75 °C
2019-01-12 10:50:35 statMeasured-tempDay Min: 0.0 Avg: 14.5 Max: 14.5 (since: )
2019-02-18 08:32:53 state T: 20.75 °C
2019-01-12 10:50:08 tempDayMax 0.0
2019-01-12 10:50:35 tempDayMin 0.0
Attributes:
oldreadings state
room Test
userReadings alterWert:T:.* { OldReadingsVal($name,'state','none')}
DOIF unterstützt neuerdings auch Differenz: https://fhem.de/commandref_DE.html#DOIF_Reading_Funktionen
z. B.
DOIF ([kaltwasser:state:diff] < 0) (....)
wenn die Temperatur fällt, ...
Hallo CoolTux
gelesen habe ich viel, verstanden davon leider nur sehr wenig. Euer Hintergrundwissen fehlt mir, wenn ich da "ähnliche Suchworte" nicht erkenne.
Jetzt ist aber dank Deinem Tipp schon mal ein "alter Wert" als Reading im Device (sogar im Temperatursensor Device ohne extra Dummy).
Nun hoffe ich das ich mit einem DOIF auch die Formel hinbekomme, wenn der neue Wert um mehr als 5 °C höher als der "alterWert" ist soll eine Warnmeldung per TTS/ Pushbullet (je nach dem ob zuhause jemand anwessend ist) etc.
versendet/ ausgegeben werden.
Internals:
ALARM 0
ASYNC 0
DEF DS18B20 FFFB96641403
ERRCOUNT 0
FUUID 5c430225-f33f-103c-58a0-d28ad6c55a24787a
INTERVAL 300
IODev OWio
NAME SchlafzimmerTemp
NOTIFYDEV global
NR 34
NTFY_ORDER 50-SchlafzimmerTemp
OW_FAMILY 28
OW_ID FFFB96641403
PRESENT 1
ROM_ID 28.FFFB96641403.78
STATE T: 19.25 °C
TYPE OWTHERM
owg_cf 10
owg_temp 19.25
owg_th 40
owg_tl 0
Helper:
DBLOG:
data:
logdb:
TIME 1550489951.6179
VALUE state: T: 19.25 °C
temperature:
logdb:
TIME 1550490251.38622
VALUE 19.25
OLDREADINGS:
2019-02-18 12:29:11 state T: 19.50 °C
2019-02-18 10:44:11 temperature 19.75
READINGS:
2019-02-18 12:39:11 alterWert T: 19.50 °C
2019-02-18 12:44:11 state T: 19.25 °C
2019-02-18 12:44:11 temperature 19.25
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
event-min-interval temperature,state:300
event-on-change-reading temperature,state
fp_Lageplan 172,299,5,SchlafzimmerTemp,
fp_statevalue STATE
icon temp_temperature
interval 300
model DS18B20
oldreadings state
resolution 10
room 1.2_Schlafzimmer,OWX
tempHigh 40
tempLow 0
tempUnit Celsius
userReadings alterWert:T:.* { OldReadingsVal($name,'state','none')}
verbose 1
Es soll damit z.B. auch die Garage auf unnormalen Temperaturanstieg überwacht werden. (in unserer Region haben die letzten Wochen mehrere Carports und Garagen mit Autos gebrannt)
Ist der "alterWert" jetzt automatisch der zum voreingestellten Intervall, hier 300 Sekunden, gemessene Wert?
Vielen vielen Dank für die Hilfe.
Schöne Grüße
NewRasPi
Bau es doch einfach in das userReading ein. Mach also kein userReading mit dem alten Wert sondern mach ein userReading was Dir auf Basis Deiner Wünsche ein high oder low aud gibt.
Fällt die Temperatir unnerhalb einer Readingaktuallisierung um 5 Grad gib wert high zurück.
nenne das userReading wegen meiner diffMin5 für minus 5 vom aktuellen Wert. Falls doch mal ein + 5 brauchst. ;D
Zitat von: NewRasPi am 18 Februar 2019, 12:58:56
Nun hoffe ich das ich mit einem DOIF auch die Formel hinbekomme, wenn der neue Wert um mehr als 5 °C höher als der "alterWert" ist soll eine Warnmeldung per TTS/ Pushbullet (je nach dem ob zuhause jemand anwessend ist) etc.
Wie schon geschrieben man braucht nichts weiter zu definieren (keine Dummys, keine weiteren Readings, kein OldReadings-Attribut etc.), es reicht einfach die Definition:
DOIF ([SchlafzimmerTemp:temperature:diff] > 5)(set ....)
Zitat von: Damian am 18 Februar 2019, 13:17:40
Wie schon geschrieben man braucht nichts weiter zu definieren (keine Dummys, keine weiteren Readings, kein OldReadings-Attribut etc.), es reicht einfach die Definition:
DOIF ([SchlafzimmerTemp:temperature:diff] > 5)(set ....)
Das ist schön und auch wirklich sehr Userfreundlich. Aber so lernen die User nichts. Was ist wenn sie mal an einen Punkt kommen wo DOIF nicht helfen kann. Dann fehlt ihnen das Rüstzeug um sich was eigenes zu bauen.
Ist nicht böse gemeint. Ich finde toll das es so geht und würde NewRasPi auch empfehlen es so zu machen, sobald er auch den anderen Weg über FHEM und Perl spezifische Funktionen verstanden hat.
Grüße
Hallo CoolTux und Damian
um das alles wirklich zu verstehen fehlt mir schon das Informatik Studium. Da bin ich froh das es auch kürzere einfachere Wege gibt, auch wenn ich ja nicht verstehe,
wie die DOIF Funktion etwas berechnet, was vorher nicht mal im Device berechnet wurde.
Ich muss bei meinem FHEM immer nur kleine Schritte machen, bin aber stolz was damit schon alles zu bewerkstelligen war.
Zitat von: Damian am 18 Februar 2019, 13:17:40
Wie schon geschrieben man braucht nichts weiter zu definieren (keine Dummys, keine weiteren Readings, kein OldReadings-Attribut etc.), es reicht einfach die Definition:
DOIF ([SchlafzimmerTemp:temperature:diff] > 5)(set ....)
Hallo CoolTux und Damian
ich bin begeistert.
Das ganze muss ich noch mit den richtigen Variablen füllen, wenn das mit dieser Funktion dann hoffentlich auch funktioniert.
GarageTemp
AussenTemp
DachbodenTemp
BadTemp
SchlafzimmerTemp
Internals:
CFGFN
DEF ([^Temp:temperature:diff] > 5)
(set TabletWohnzimmer ttsMsg Hallo die Temperatur im $DEVICE steigt zu schnell)
(set AcerHandy2 ttsMsg Hallo die Temperatur im $DEVICE steigt zu schnell)
DOELSE ()
FUUID 5c6aa366-f33f-103c-feee-e7659679a3472a58
MODEL FHEM
NAME TemperaturKontrollDOIF
NR 375286
NTFY_ORDER 50-TemperaturKontrollDOIF
STATE initialized
TYPE DOIF
Helper:
DBLOG:
state:
logdb:
TIME 1550494085.72993
VALUE initialized
READINGS:
2019-02-18 13:48:05 cmd 0
2019-02-18 13:48:05 mode enabled
2019-02-18 13:48:05 state initialized
2019-02-18 13:48:05 timer_01_c01 error: Wrong timespec ^Temp:temperature:diff: either HH:MM:SS or {perlcode}
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday) > 5
devices:
do:
0:
0 set TabletWohnzimmer ttsMsg Hallo die Temperatur im $DEVICE steigt zu schnell
1 set AcerHandy2 ttsMsg Hallo die Temperatur im $DEVICE steigt zu schnell
1:
0
helper:
globalinit 1
last_timer 1
sleeptimer -1
itimer:
localtime:
time:
0 ^Temp:temperature:diff
timeCond:
0 0
timer:
0 0
timers:
0 0
uiState:
uiTable:
Attributes:
do always
Oder eben erst mal 5 DOIF mit einzelnen Texten erstellen.
Schöne Grüße und noch mal DANKE
NewRasPi
Zitat von: NewRasPi am 18 Februar 2019, 13:57:48
Oder eben erst mal 5 DOIF mit einzelnen Texten erstellen.
Das funktioniert nur mit konkreten Devicenamen - keine RegeX-Angaben.
Kurz zur Funktionsweise: Initiiert durch die Angabe der Funktion
diff sammelt DOIF die gesendeten Wert des Readings intern und kann dadurch die Differenz berechnen. Man kann ebenfalls Durchschnitt, Median oder Anstieg berechnen. Die Anzahl der gesammelten Werte kann ebenfalls angegeben werden, für diese Aufgabe braucht man nur die letzten zwei (diff entspricht diff2).
Hallo Damian und alle Spezialisten
ist es den "Grundsätzlich schlechter" in diesem Fall z.B. fünf DOIF`s zu machen, die jedes davon nur eine Abfrage macht, anstatt, wenns möglich ist, ein DOIF mit variablen - also muss der Raspberry dadurch mehr oder weniger arbeiten?
Wenn es nur ein optisches Grauen ist, wenn da ewig viele einzelne DOIF Device sind versuch ich die einfach mal in einen versteckten Raum zu platzieren.
Dankeschön für Euer Wissen und die Arbeit für die Module
Schöne Grüße
NewRasPi
Zitat von: Damian am 18 Februar 2019, 14:58:07
Das funktioniert nur mit konkreten Devicenamen - keine RegeX-Angaben.
Kurz zur Funktionsweise: Initiiert durch die Angabe der Funktion diff sammelt DOIF die gesendeten Wert des Readings intern und kann dadurch die Differenz berechnen. Man kann ebenfalls Durchschnitt, Median oder Anstieg berechnen. Die Anzahl der gesammelten Werte kann ebenfalls angegeben werden, für diese Aufgabe braucht man nur die letzten zwei (diff entspricht diff2).
Zitat von: NewRasPi am 18 Februar 2019, 15:23:08
Hallo Damian und alle Spezialisten
ist es den "Grundsätzlich schlechter" in diesem Fall z.B. fünf DOIF`s zu machen, die jedes davon nur eine Abfrage macht, anstatt, wenns möglich ist, ein DOIF mit variablen - also muss der Raspberry dadurch mehr oder weniger arbeiten?
Wenn es nur ein optisches Grauen ist, wenn da ewig viele einzelne DOIF Device sind versuch ich die einfach mal in einen versteckten Raum zu platzieren.
Dankeschön für Euer Wissen und die Arbeit für die Module
Schöne Grüße
NewRasPi
Du kannst auch alles in ein DOIF packen, wo ist das Problem?
Jedes DOIF kostet etwas Performance und etwas Speicher, aber selbst bei einem Raspi müssten es schon sehr sehr viele sein, damit man etwas davon merkt.
Hallo Damian
"mein Raspberry" kann nicht rechnen.
Alle 5 Minuten sagt mein DOIF jetzt das die Temperatur zu schnell steigt. Die Temperatur hat sich aber nur um 0,25°C geändert!
Hier das List der Kontroll DOIF:
Internals:
CFGFN
DEF ([SchlafzimmerTemp:temperature:diff] > 5)
(set TabletWohnzimmer ttsMsg Hallo die Temperatur im Schlafzimmer steigt zu schnell)
(set AcerHandy2 ttsMsg Hallo die Temperatur im Schlafzimmer steigt zu schnell)
DOELSE ()
FUUID 5c6aa366-f33f-103c-feee-e7659679a3472a58
MODEL FHEM
NAME TemperaturKontrollSZDOIF
NR 375286
NTFY_ORDER 50-TemperaturKontrollDOIF
STATE cmd_1
TYPE DOIF
Helper:
DBLOG:
state:
logdb:
TIME 1550513051.53256
VALUE cmd_1
READINGS:
2019-02-18 19:04:11 Device SchlafzimmerTemp
2019-02-18 19:04:11 cmd 1.2
2019-02-18 19:04:11 cmd_event SchlafzimmerTemp
2019-02-18 19:04:11 cmd_nr 1
2019-02-18 19:04:11 cmd_seqnr 2
2019-02-18 19:04:11 e_SchlafzimmerTemp_temperature 19.5
2019-02-18 15:33:52 mode enabled
2019-02-18 19:04:11 state cmd_1
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'SchlafzimmerTemp','temperature','','diff') > 5
devices:
0 SchlafzimmerTemp
all SchlafzimmerTemp
do:
0:
0 set TabletWohnzimmer ttsMsg Hallo die Temperatur im Schlafzimmer steigt zu schnell
1 set AcerHandy2 ttsMsg Hallo die Temperatur im Schlafzimmer steigt zu schnell
1:
0
helper:
event temperature: 19.5,T: 19.50 °C
globalinit 1
last_timer 0
sleeptimer -1
timerdev SchlafzimmerTemp
timerevent temperature: 19.5,T: 19.50 °C
triggerDev SchlafzimmerTemp
DOIF_eventas:
cmd_nr: 1
cmd_seqnr: 2
cmd_event: SchlafzimmerTemp
state: cmd_1
timerevents:
temperature: 19.5
T: 19.50 °C
timereventsState:
temperature: 19.5
state: T: 19.50 °C
triggerEvents:
temperature: 19.5
T: 19.50 °C
triggerEventsState:
temperature: 19.5
state: T: 19.50 °C
internals:
itimer:
readings:
0 SchlafzimmerTemp:temperature
all SchlafzimmerTemp:temperature
trigger:
uiState:
uiTable:
Attributes:
do always
Das List des Temperaturfühler:
Internals:
ALARM 0
ASYNC 0
DEF DS18B20 FFFB96641403
ERRCOUNT 0
FUUID 5c430225-f33f-103c-58a0-d28ad6c55a24787a
INTERVAL 300
IODev OWio
NAME SchlafzimmerTemp
NOTIFYDEV global
NR 34
NTFY_ORDER 50-SchlafzimmerTemp
OW_FAMILY 28
OW_ID FFFB96641403
PRESENT 1
ROM_ID 28.FFFB96641403.78
STATE T: 19.50 °C
TYPE OWTHERM
owg_cf 10
owg_temp 19.5
owg_th 40
owg_tl 0
Helper:
DBLOG:
data:
logdb:
TIME 1550513051.57629
VALUE state: T: 19.50 °C
temperature:
logdb:
TIME 1550513051.57629
VALUE 19.5
OLDREADINGS:
2019-02-18 18:29:11 state T: 19.25 °C
2019-02-18 10:44:11 temperature 19.75
READINGS:
2019-02-18 19:04:11 alterWert T: 19.25 °C
2019-02-18 19:04:11 state T: 19.50 °C
2019-02-18 19:04:11 temperature 19.5
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
event-min-interval temperature,state:300
event-on-change-reading temperature,state
fp_Lageplan 172,299,5,SchlafzimmerTemp,
fp_statevalue STATE
icon temp_temperature
interval 300
model DS18B20
oldreadings state
resolution 10
room 1.2_Schlafzimmer,OWX
tempHigh 40
tempLow 0
tempUnit Celsius
userReadings alterWert:T:.* { OldReadingsVal($name,'state','none')}
verbose 1
Was habe ich den jetzt falsch gemacht. Alle 5 Minuten eine Ansage ohne das es eigentlich auslösen sollte strapaziert den WAF.
Schöne Grüße
NewRasPi
Zitat von: NewRasPi am 18 Februar 2019, 13:57:48
... was vorher nicht mal im Device berechnet wurde.
Falls das einer liest und glaubt, über userReadings kann schon seit Jahren die Differenz und der Differenzenquotient in einem Reading des selben Gerätes dargestellt werden, s. https://commandref.fhem.de/commandref_DE.html#userReadings
Beispiel
attr <device> userReadings difftemp:temperature.* difference
Zitat von: NewRasPi am 18 Februar 2019, 19:10:38
Hallo Damian
"mein Raspberry" kann nicht rechnen.
Alle 5 Minuten sagt mein DOIF jetzt das die Temperatur zu schnell steigt. Die Temperatur hat sich aber nur um 0,25°C geändert!
Ich würde behaupten, dass du nicht die aktuelle DOIF-Version hast.
Zitat von: Damian am 18 Februar 2019, 20:33:17
Ich würde behaupten, dass du nicht die aktuelle DOIF-Version hast.
Du musst doch Hellseher sein Damian.
Da letztens so viel von Problemen beim Update geschrieben wurde, habe ich wirklich seit einigen Tagen kein Update mehr gemacht.
Das werde ich jetzt sofort nachholen und berichten ob es dann "rechnen kann".
Dankeschön
Zitat von: Ellert am 18 Februar 2019, 20:02:47
Falls das einer liest und glaubt, über userReadings kann schon seit Jahren die Differenz und der Differenzenquotient in einem Reading des selben Gerätes dargestellt werden, s. https://commandref.fhem.de/commandref_DE.html#userReadings
Beispiel
attr <device> userReadings difftemp:temperature.* difference
Ich denke, das Problem ist, dass die meisten nicht (mehr) wissen, was ein Differenzenquotient ist ;)
Zitat von: Damian am 18 Februar 2019, 20:47:16
Ich denke, das Problem ist, dass die meisten nicht (mehr) wissen, was ein Differenzenquotient ist ;)
Na ja, in Wikipedia gibt's den Begriff schon noch https://de.wikipedia.org/wiki/Differenzenquotient
und Intuitiv liegt der TE damit
Zitat von: NewRasPi am 17 Februar 2019, 22:17:30
Ziel meines vorhabens ist, auszuwerten ob sich die Temperatur von der letzten Messung (z.B. vor 5 Minuten intervall) zu der aktuellen um mehr
als 5 °C geändert hat um dann eine Warnmeldung auszugeben.
ja auch nicht falsch.
Zitat von: Ellert am 19 Februar 2019, 09:51:12
Na ja, in Wikipedia gibt's den Begriff schon noch https://de.wikipedia.org/wiki/Differenzenquotient
und Intuitiv liegt der TE damit ja auch nicht falsch.
Viele werden es auch als Steigungsdreieck kennen, dazu muss man auch kein Abi haben.
Da oft von einem festen Zeitintervall (x1-x2) ausgegangen wird, reduziert sich die Aufgabe auf die Überprüfung der Differenz (y1-y2), wie in diesem Fall.
Der Begriff Steigungsdreieck ist bisher unbemerkt an mir vorübergezogen
Ja, wenn der Sensor sich an das feste Zeitintervall hält, reicht der modifier "difference", sonst benötigt man "differential" bei den userReadings, z. B. wenn man eventbeschränkende Attribute (event-on-.*) verwendet.
Zitat von: Ellert am 19 Februar 2019, 10:49:21
Der Begriff Steigungsdreieck ist bisher unbemerkt an mir vorübergezogen
Ja, wenn der Sensor sich an das feste Zeitintervall hält, reicht der modifier "difference", sonst benötigt man "differential" bei den userReadings, z. B. wenn man eventbeschränkende Attribute (event-on-.*) verwendet.
Hallo Ihr Spezialisten
kurze Rückmeldung. Die nervigen Meldungen im 300 Sekundentakt ohne Änderung der Temperatur sind nach dem Update weg. Es gab zwar nach dem ersten "shutdown restart" nach dem Update eine Fehler Benachrichtigung das im Device ein falsches Attribute "fp_statevalue" vorhanden ist. Wer auch immer das angelegt hatte, ich wars nicht. (sagen immer alle)
Nach einem weiteren "shutdown restart" hat sich das aber wieder "erledigt".
Kann es sein das die Funktion von CoolTux mit dem
userReadings alterWert:T:.* { OldReadingsVal($name,'state','none')}
pro FHEM/ Raspi nur einmal vergeben werden kann? Auf den weiteren 1-wire Temperatursensoren geht es jedenfalls nicht.
Ich habe auch noch versucht, den Namen des userReadings verändert, aber auch dann geht es in einem anderen Temperaturfüher Device bei mir nicht/ oder zeigt "none".
userReadings alterWertGarage:T:.* { OldReadingsVal($name,'state','none')}
Als nächstes werde ich mal mit dem Fön die Temperatursensoren um mehr als 5 °C anwärmen und prüfen ob dann das DOIF auslöst. (leider erst heut abend zuhause)
Eine Anmerkung zu Differenzenquotienen - im technischen kenne ich das unter dem Begriff "delta" mit Dreieck als Sympol, was für die Veränderung steht.
Vielen Dank für Eure Hilfe - ohne Euch würde ich vermuttlich nur den Startbildschirm von FHEM bewundern. (ganz ohne "Funktionen")
Schöne Grüße
NewRasPi
Zitat von: NewRasPi am 19 Februar 2019, 12:57:38
Hallo Ihr Spezialisten
kurze Rückmeldung. Die nervigen Meldungen im 300 Sekundentakt ohne Änderung der Temperatur sind nach dem Update weg. Es gab zwar nach dem ersten "shutdown restart" nach dem Update eine Fehler Benachrichtigung das im Device ein falsches Attribute "fp_statevalue" vorhanden ist. Wer auch immer das angelegt hatte, ich wars nicht. (sagen immer alle)
Nach einem weiteren "shutdown restart" hat sich das aber wieder "erledigt".
Kann es sein das die Funktion von CoolTux mit dem userReadings alterWert:T:.* { OldReadingsVal($name,'state','none')}
pro FHEM/ Raspi nur einmal vergeben werden kann? Auf den weiteren 1-wire Temperatursensoren geht es jedenfalls nicht.
Ich habe auch noch versucht, den Namen des userReadings verändert, aber auch dann geht es in einem anderen Temperaturfüher Device bei mir nicht/ oder zeigt "none".
userReadings alterWertGarage:T:.* { OldReadingsVal($name,'state','none')}
Als nächstes werde ich mal mit dem Fön die Temperatursensoren um mehr als 5 °C anwärmen und prüfen ob dann das DOIF auslöst. (leider erst heut abend zuhause)
Eine Anmerkung zu Differenzenquotienen - im technischen kenne ich das unter dem Begriff "delta" mit Dreieck als Sympol, was für die Veränderung steht.
Vielen Dank für Eure Hilfe - ohne Euch würde ich vermuttlich nur den Startbildschirm von FHEM bewundern. (ganz ohne "Funktionen")
Schöne Grüße
NewRasPi
Wie gesagt wenn Du eine Differenz willst geht das in jedem Gerät über userReadings, dazu benötigst Du OldReadingsVal nicht und überspringst diesen Schritt mit
attr <device> userReadings difftemp:temperature.* difference
Dann steht im Reading difftemp die Temperaturdifferenz. Die Angaben musst Du natürlich auf Dein Device anpassen.
Wenn das Aktualisierungsintervall nicht konstant ist, musst Du die Temperaturänderung auf die Zeit beziehen damit die Werte vergleichbar sind, dann hast Du die Steigung der Temperatur pro Zeiteinheit (Sekunden)
Das geht dann mit dem modifier "differential" so:
attr <device> userReadings difftemp:temperature.* differential
Aber, das ist jetzt eine Nacherzählung dessen was hier steht: https://commandref.fhem.de/commandref_DE.html#userReadings
Ich glaube er ist jetzt ganz verwirrt :)
Wenn du bereits das DOIF mit diff-Option definiert hast, dann brauchst du keine weiteren Definitionen, keine userReadings und keine OldReadings.
Also entweder diff im DOIF
oder
userReadings mit difference
oder
OldReadings ...
Es sind drei verschiedene Wege, die das Gleiche leisten können, aber nichts miteinander zu tun haben.
Zitat von: Ellert am 19 Februar 2019, 13:30:12
Wie gesagt wenn Du eine Differenz willst geht das in jedem Gerät über userReadings, dazu benötigst Du OldReadingsVal nicht und überspringst diesen Schritt mit
attr <device> userReadings difftemp:temperature.* difference
Dann steht im Reading difftemp die Temperaturdifferenz. Die Angaben musst Du natürlich auf Dein Device anpassen.
Wenn das Aktualisierungsintervall nicht konstant ist, musst Du die Temperaturänderung auf die Zeit beziehen damit die Werte vergleichbar sind, dann hast Du die Steigung der Temperatur pro Zeiteinheit (Sekunden)
Das geht dann mit dem modifier "differential" so:
attr <device> userReadings difftemp:temperature.* differential
Aber, das ist jetzt eine Nacherzählung dessen was hier steht: https://commandref.fhem.de/commandref_DE.html#userReadings
Hallo Damian
Danke für Deine Lösung die es ja anscheinend erst Brandaktuell (nach dem Update) gibt.
Sehr gerne würde ich auch den Ansatz den CoolTux meint, "man soll nicht nur eine Formel auswendig lernen, sondern auch den Weg dazu kennen" verfolgen.
Ich muss aber zugeben das es für einen Handwerker ein steiniger Weg ist.
Das Ihr im Forum nicht dazu da seid, allen die Lösung auf einem Tablett zu servieren ist mir auch vollkommen klar.
Ich danke Euch allen herzlichst für die Hilfe.
Hallo Ellert
vielen Dank für jedes Beispiel und die Nacherzählung des userReadings.
Wenn Du Dein Vorwissen wegwerfen könntest und dann diesen Link lesen würdest, würde die Sache vielleicht anders aussehen. Ich habe den Link jetzt schon mehrfach rauf und runter gelesen. Mir fehlen da immer wieder Teile, das ich es nicht wirklich daraus umsetzen kann. Und bitte glaube mir, das ist nicht Faulheit oder Dummheit.
Die Modulautoren hier haben natürlich ein ganz anderes Verständnis - die erkennen wie das gemeint ist und wie man das umsetzen kann.
Wer nicht so gut vorgebildet ist greift da nach jeden Strohhalm der es einem ermöglicht, FHEM auch möglichst komfortabel einzusetzen.
Hier ein List vom Sensor der noch das alte mit "none" gefüllte Reading hat, aber den neuen difftemp nicht kennt.
Internals:
ALARM 0
ASYNC 0
DEF DS18B20 FF5E16651401
ERRCOUNT 0
FUUID 5c430225-f33f-103c-d571-0ab81990c84a5a5c
INTERVAL 300
IODev OWio
NAME GarageTemp
NOTIFYDEV global
NR 32
NTFY_ORDER 50-GarageTemp
OW_FAMILY 28
OW_ID FF5E16651401
PRESENT 1
ROM_ID 28.FF5E16651401.57
STATE T: 3.50 °C
TYPE OWTHERM
owg_cf 9
owg_temp 3.5
owg_th 40
owg_tl 0
Helper:
DBLOG:
data:
logdb:
TIME 1550583239.18336
VALUE state: T: 3.50 °C
state:
logdb:
TIME 1550580538.72071
VALUE initialized
temperature:
logdb:
TIME 1550583538.78762
VALUE 3.5
READINGS:
2019-02-19 13:44:36 alterWert none
2019-02-19 08:07:31 alterWertGarage none
2019-02-19 14:38:58 state T: 3.50 °C
2019-02-19 14:38:58 temperature 3.5
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
event-min-interval temperature,state:300
event-on-change-reading temperature,state
fp_Lageplan 470,729,1,GarageTemp,
icon temp_temperature
interval 300
model DS18B20
resolution 9
room 4.1_Garage,OWX
tempHigh 40
tempLow 0
tempUnit Celsius
userReadings difftemp:temperature.* difference
verbose 1
Bei anderen Device gab es ein "set <device> clear readings oder deletereadings ...
Hier kommt dann nur die Fehlermeldung.
"OWTHERM: Set with unknown argument deletereading, choose one of interval,tempHigh,tempLow"
Ich lese kräftig weiter mit, bestimmt wird auch mein Problem mal gelöst.
Schöne Grüße
NewRasPi
Nachtrag: Wenn meine von Damian erstellte DOIF die Prüfung bestehen, ist mein Anliegen ja auch schon erledigt. DANKE
Hallo Damian
jetzt habe ich die von Dir beschriebene Funktion getestet. Es funktioniert hervorragend. DANKESCHÖN
define GarageTempKontrollDOIF DOIF ([GarageTemp:temperature:diff] > 5) (set TabletWohnzimmer ttsMsg Hallo die Temperatur in der Garage steigt zu schnell)
Der Intervall ist auf 300 Sekunden eingestellt. So schnell dürfte die Temperatur normal nicht ansteigen.
Damit ist auch in Räumen wo man einen Rauchmelder schlecht einsetzen kann eine effektive Überwachung machbar.
Viele Grüße
NewRasPi
Zitat von: NewRasPi am 19 Februar 2019, 20:04:57
Hallo Damian
jetzt habe ich die von Dir beschriebene Funktion getestet. Es funktioniert hervorragend. DANKESCHÖN
define GarageTempKontrollDOIF DOIF ([GarageTemp:temperature:diff] > 5) (set TabletWohnzimmer ttsMsg Hallo die Temperatur in der Garage steigt zu schnell)
Der Intervall ist auf 300 Sekunden eingestellt. So schnell dürfte die Temperatur normal nicht ansteigen.
Damit ist auch in Räumen wo man einen Rauchmelder schlecht einsetzen kann eine effektive Überwachung machbar.
Viele Grüße
NewRasPi
Für einen Feueralarm sind wohl 5 Minuten schon verdammt viel, in dieser Zeit kann die Bude schon abgefackelt sein :)
Ich denke, dass es sinnvoller wäre das Intervall erheblich zu reduzieren, ggf. auch die Temperaturdifferenz und schauen ob es Fehlalarme gibt.
z. B. 30 Sekunden und 1 Grad
So hast du vielleicht noch eine geringe Chance überhaupt etwas zu tun.
hier ist nach 5 Minuten alles vorbei:
https://www.youtube.com/watch?v=lVfhzNZRXao
Zitat von: Damian am 19 Februar 2019, 20:49:43
Für einen Feueralarm sind wohl 5 Minuten schon verdammt viel, in dieser Zeit kann die Bude schon abgefackelt sein :)
Ich denke, dass es sinnvoller wäre das Intervall erheblich zu reduzieren, ggf. auch die Temperaturdifferenz und schauen ob es Fehlalarme gibt.
z. B. 30 Sekunden und 1 Grad
So hast du vielleicht noch eine geringe Chance überhaupt etwas zu tun.
hier ist nach 5 Minuten alles vorbei:
https://www.youtube.com/watch?v=lVfhzNZRXao
Hallo Damian
danke für den eindringlichen link.
Ich werde natürlich den Intervall auf 45 Sekunden und die Temperaturdifferenz auf 3 °C heruntersetzen.
In der Autogarage ist eine Temperaturerhöhung durch das abstellen des warm gefahrenen Autos von 2 °C auf dem Diagrammplot zu sehen.
Im Haus sind natürlich richtige Rauchmelder installiert. In der Garage vermute ich zu viel Staub, als das unter diesen Bedingungen ein Rauchmelder zuverlässig
arbeiten würde.
Gut das Du auch noch die realen Umgebungsdaten im Blick hast.
Schöne Grüße
NewRasPi
Dann hätte ich noch einen Tipp für dich, was man so alles mit den neuen Features des DOIF machen kann:
define messung DOIF ##
attr messung event_Readings diff2: [GarageTemp:temperature:diff2],
diff3: [GarageTemp:temperature:diff3],
diff4: [GarageTemp:temperature:diff4],
diff5: [GarageTemp:temperature:diff5]
Im obigen DOIF werden vier Readings definiert, die du loggen kannst.
Im Reading messung:diff2 wird die Differenz zwischen den letzten beiden Werten abgelegt, im Reading messung:diff3 wird die Differenz zwischen dem letzten und dem drittletzten abgelegt und so weiter.
Wenn du z. B. das Intervall auf 30 Sekunden einstellst, so kannst du die Differenzen zwischen 30 Sekunden, 60 Sekunden , 90 Sekunden und 120 Sekunden über die Readings protokollieren und dir damit nach ein paar Tagen ein Bild über die Temperaturschwankungen abhängig von den Zeitintervallen in deiner Garage machen und so einen sinnvollen Grenzwert und ein sinnvolles Zeitintervall für den Alarmauslöser definieren.
Zitat von: Damian am 19 Februar 2019, 23:34:46
Dann hätte ich noch einen Tipp für dich, was man so alles mit den neuen Features des DOIF machen kann:
define messung DOIF ##
attr messung event_Readings diff2: [GarageTemp:temperature:diff2],
diff3: [GarageTemp:temperature:diff3],
diff4: [GarageTemp:temperature:diff4],
diff5: [GarageTemp:temperature:diff5]
Im obigen DOIF werden vier Readings definiert, die du loggen kannst.
Im Reading messung:diff2 wird die Differenz zwischen den letzten beiden Werten abgelegt, im Reading messung:diff3 wird die Differenz zwischen dem letzten und dem drittletzten abgelegt und so weiter.
Wenn du z. B. das Intervall auf 30 Sekunden einstellst, so kannst du die Differenzen zwischen 30 Sekunden, 60 Sekunden , 90 Sekunden und 120 Sekunden über die Readings protokollieren und dir damit nach ein paar Tagen ein Bild über die Temperaturschwankungen abhängig von den Zeitintervallen in deiner Garage machen und so einen sinnvollen Grenzwert und ein sinnvolles Zeitintervall für den Alarmauslöser definieren.
Hallo Damian
vielen Dank für diese weitere Hilfe.
Das neue DOIF habe ich sofort angelegt. Eine Frage hätte ich noch. Differenz auswerten bedeutet in dieser Formel ja auch,
wenn die Temperatur um mehr als X °C fällt!
Wenn bei Frosttemperaturen das Tor eine weile geöffnet wird, könnte dann schon mal eine fehlerhafte Meldung entstehen.
Kann man die Differenz Berechnung auch auf eine Temperatur Zunahme eingrenzen?
Internals:
CFGFN
DEF ##
FUUID 5c6cfb60-f33f-103c-d0ac-5c20423aa7b30ddb
MODEL FHEM
NAME messungGarage
NR 18208
NTFY_ORDER 50-messungGarage
STATE initialized
TYPE DOIF
Helper:
DBLOG:
state:
logdb:
TIME 1550647229.11069
VALUE initialized
READINGS:
2019-02-20 08:20:29 cmd 0
2019-02-20 08:26:18 diff2 0
2019-02-20 08:26:18 diff3 0
2019-02-20 08:26:18 diff4 0
2019-02-20 08:26:18 diff5 0
2019-02-20 08:20:29 mode enabled
2019-02-20 08:20:29 state initialized
Regex:
accu:
GarageTemp:
accu:
temperature ^GarageTemp$:^temperature:
event_Readings:
GarageTemp:
diff2:
temperature ^GarageTemp$:^temperature:
diff3:
temperature ^GarageTemp$:^temperature:
diff4:
temperature ^GarageTemp$:^temperature:
diff5:
temperature ^GarageTemp$:^temperature:
accu:
GarageTemp temperature:
dim 5
value:
2.5
2.5
2.5
2.5
2.5
condition:
devices:
do:
0:
event_Readings:
diff2 ::ReadingValDoIf($hash,'GarageTemp','temperature','','diff2')
diff3 ::ReadingValDoIf($hash,'GarageTemp','temperature','','diff3')
diff4 ::ReadingValDoIf($hash,'GarageTemp','temperature','','diff4')
diff5 ::ReadingValDoIf($hash,'GarageTemp','temperature','','diff5')
helper:
globalinit 1
last_timer 0
sleeptimer -1
triggerDev
itimer:
uiState:
uiTable:
Attributes:
event_Readings diff2: [GarageTemp:temperature:diff2],
diff3: [GarageTemp:temperature:diff3],
diff4: [GarageTemp:temperature:diff4],
diff5: [GarageTemp:temperature:diff5]
Die Raw Definition:
defmod messungGarage DOIF ##
attr messungGarage event_Readings diff2: [GarageTemp:temperature:diff2],\
diff3: [GarageTemp:temperature:diff3],\
diff4: [GarageTemp:temperature:diff4],\
diff5: [GarageTemp:temperature:diff5]
setstate messungGarage initialized
setstate messungGarage 2019-02-20 08:20:29 cmd 0
setstate messungGarage 2019-02-20 08:27:48 diff2 0
setstate messungGarage 2019-02-20 08:27:48 diff3 0
setstate messungGarage 2019-02-20 08:27:48 diff4 0
setstate messungGarage 2019-02-20 08:27:48 diff5 0
setstate messungGarage 2019-02-20 08:20:29 mode enabled
setstate messungGarage 2019-02-20 08:20:29 state initialized
Die Temperatur hat sich jetzt leider nicht verändert.
Schöne Grüße
NewRasPi
Hier noch das Plot der Garagen Temperatur von Gestern.
Man muss nach der Definition schon paar gesendete Werte abwarten, damit die Differenz entsprechend berechnet werden kann, Differenz von einem einzigen Wert ist natürlich 0, siehe Commandref zu diff. Wenn die Temperatur fällt gibt´s logischerweise negative Werte.
Mit dem Plot kann man grob erkennen wie die Temperatur sich verhält, aber wie viel Grad in welcher Zeitspanne, wirst du besser mit den definierten Readings erkennen.
Ich habe eine Erweiterung zu logProxy im Test, die nicht nur den letzten Wert einer Zeitreihe gesondert aufhebt, sondern auch den vorletzten. Und damit dann eine Trendanzeige realisiert.
LG
pah
Hallo Ihr Spezialisten
ich möchte diesen Thread noch mal nach vorne holen.
Total unschön ist nachts um 4:00 Uhr von einer Nachricht aus dem Schlaf gerissen zu werden, weil die 1-wire DS18B20 Temperatursensoren mal wieder ihre "85 Grad Fehlanzeige" bringen.
Für die Datenbank gibts ja schon den
attr DbLogExclude failures,T,85
Kann diese Falschmessung vielleicht jemand auch für die normale Auswertung in FHEM "unterdrücken"?
Meine Überwachung des Temperaturanstieg in der Garage funktioniert also schon mal. Zeitabhängig (nachts von - bis) das abzuschalten wäre
nicht zielführend.
define TemperaturKontrollGarageDOIF DOIF ([GarageTemp:temperature:diff] > 3)
(set TabletWohnzimmer ttsMsg Hallo die Temperatur in der Garage steigt zu schnell)
Das List:
Internals:
ALARM 0
ASYNC 0
DEF DS18B20 FF5E16651401
ERRCOUNT 0
FUUID 5c430225-f33f-103c-d571-0ab81990c84a5a5c
INTERVAL 45
IODev OWio
NAME GarageTemp
NOTIFYDEV global
NR 31
NTFY_ORDER 50-GarageTemp
OW_FAMILY 28
OW_ID FF5E16651401
PRESENT 1
ROM_ID 28.FF5E16651401.57
STATE T: 10.06 °C
TYPE OWTHERM
owg_cf 9
owg_temp 10.0625
owg_th 85
owg_tl 0
Helper:
DBLOG:
data:
logdb:
TIME 1553784017.34988
VALUE state: T: 10.06 °C
state:
logdb:
TIME 1551694276.8677
VALUE initialized
temperature:
logdb:
TIME 1553784017.34988
VALUE 10.0625
READINGS:
2019-02-19 13:44:36 alterWert none
2019-02-19 08:07:31 alterWertGarage none
2019-03-28 15:40:17 state T: 10.06 °C
2019-03-28 15:40:17 temperature 10.0625
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
event-min-interval temperature,state:45
event-on-change-reading temperature,state
fp_Lageplan 470,729,1,GarageTemp,
icon temp_temperature
interval 45
model DS18B20
resolution 9
room 4.1_Garage,OWX
tempHigh 85
tempLow 0
tempUnit Celsius
verbose 1
Ich wäre für jede Lösung sehr dankbar.
Schöne Grüße
NewRasPi
Zitat von: NewRasPi am 28 März 2019, 15:32:21
Hallo Ihr Spezialisten
ich möchte diesen Thread noch mal nach vorne holen.
Total unschön ist nachts um 4:00 Uhr von einer Nachricht aus dem Schlaf gerissen zu werden, weil die 1-wire DS18B20 Temperatursensoren mal wieder ihre "85 Grad Fehlanzeige" bringen.
Für die Datenbank gibts ja schon den
attr DbLogExclude failures,T,85
Kann diese Falschmessung vielleicht jemand auch für die normale Auswertung in FHEM "unterdrücken"?
Meine Überwachung des Temperaturanstieg in der Garage funktioniert also schon mal. Zeitabhängig (nachts von - bis) das abzuschalten wäre
nicht zielführend.
define TemperaturKontrollGarageDOIF DOIF ([GarageTemp:temperature:diff] > 3)
(set TabletWohnzimmer ttsMsg Hallo die Temperatur in der Garage steigt zu schnell)
Das List:
Internals:
ALARM 0
ASYNC 0
DEF DS18B20 FF5E16651401
ERRCOUNT 0
FUUID 5c430225-f33f-103c-d571-0ab81990c84a5a5c
INTERVAL 45
IODev OWio
NAME GarageTemp
NOTIFYDEV global
NR 31
NTFY_ORDER 50-GarageTemp
OW_FAMILY 28
OW_ID FF5E16651401
PRESENT 1
ROM_ID 28.FF5E16651401.57
STATE T: 10.06 °C
TYPE OWTHERM
owg_cf 9
owg_temp 10.0625
owg_th 85
owg_tl 0
Helper:
DBLOG:
data:
logdb:
TIME 1553784017.34988
VALUE state: T: 10.06 °C
state:
logdb:
TIME 1551694276.8677
VALUE initialized
temperature:
logdb:
TIME 1553784017.34988
VALUE 10.0625
READINGS:
2019-02-19 13:44:36 alterWert none
2019-02-19 08:07:31 alterWertGarage none
2019-03-28 15:40:17 state T: 10.06 °C
2019-03-28 15:40:17 temperature 10.0625
tempf:
factor 1
offset 0
Attributes:
DbLogExclude failures,T,85
DbLogInclude temperature
IODev OWio
event-min-interval temperature,state:45
event-on-change-reading temperature,state
fp_Lageplan 470,729,1,GarageTemp,
icon temp_temperature
interval 45
model DS18B20
resolution 9
room 4.1_Garage,OWX
tempHigh 85
tempLow 0
tempUnit Celsius
verbose 1
Ich wäre für jede Lösung sehr dankbar.
Schöne Grüße
NewRasPi
[GarageTemp:temperature:diff] > 3 and [GarageTemp:temperature] != 85
Vielen Dank Ellert
das es so einen einfachen Weg gibt ist super.
Schöne Grüße
NewRasPi