Hallo
Ich habe einen dummy dessen wert sich aus minNum zusammensetzt, funktioniert gut, aber die werte aktualisieren sich nicht...
{minNum(ReadingsVal("MYSENSOR_130","temperature",0),ReadingsVal("MYSENSOR_190","temperature",0),ReadingsVal("MYSENSOR_150","temperature",0),ReadingsVal("MYSENSOR_160","temperature",0),ReadingsVal("MYSENSOR_120","temperature",0),ReadingsVal("MYSENSOR_170","temperature",0))}
Brauche ich da ein notify oder ein doif zu antualisieren? Wie schaffe ich das dass sich die werte refreshen wenn neue messwerte von einzelnen sensoren vorhanden sind?
Danke
Ja, klar brauchst Du etwas, das auf die Ereignisse von den Sensoren reagiert (z.B. notify oder DOIF), oder auf Zeit (at) regelmässig die Kalkulation anstosst. Wie und wo hast Du dein Formel angetragen?
Min einem DOIF, kannst Du folgendes benutzen: https://fhem.de/commandref_DE.html#DOIF_aggregation
Nur mal zu Verständnis.
Mit einem userReadings in einem der MYSENSOR_xxx Geräte, die sich vermutlich alle im gleichen Intervall aktualisieren, wäre es doch auch getan und man spart sich den Dummy ?
Gruß
Thomas
Angenommen, dass das userReading auf dem Device ist, das immer als letzes aktualisiert wird, ja.
Danke für eure tips!
Das minNum ist natürlich in einem dummy verbaut, zur info, ich habe einen. Dummy mit den innentemp meineshauses und eine. Mit den aussentemp, übersteigen die aussentemp die innentemp bekommen meine frau und ich eine pushover mit der info die fenster zu schliessen.. so der plan, aber die beiden dummies aktualisieren nicht, hab auch schon die vermutung bei dem pushover nacharbeiten muss, denn ich will ja nich bei jeder antualisierung die nachricht bekommen sondern nur beim ersten übersteigen...
Das mit den Dummy-Devices ist vollkommener Unsinn, denn dieselben Daten existieren schon als Readings.
LG
pah
Wie würdest du so was bewerkstelligen? Ich bin jetzt nicht so der programmierer, das erschien mir als einfache gangbare lösung...
define msgFenster DOIF ([#min:"^MYSENSOR_(130|190|150|160|120|170)":temperature] < [#min:"^MYSENSOR_(111|222|333)":temperature]) (send message)
Ok sieht interessant aus, wie verhält sich das dann? Also wenn die daten aktualisieren ubd es zutrifft dass wert1 < werte2 dann wird nachricht geschickt, wenn sich die daten erneut refreshen und immer noch wert1<werte2 ist, schickt dann wieder nachricht? Kann ich das irgendwie bewerkstelligen dass nur beim ersten mal zutreffen wert1<werte2 die meldung kommt und dann erst wieder wenn werte1>werte2 waren? Geht so was?
Zitat von: Michl1003! am 04 August 2019, 10:58:27
Also wenn die daten aktualisieren ubd es zutrifft dass wert1 < werte2 dann wird nachricht geschickt,
Ja
Zitat von: Michl1003! am 04 August 2019, 10:58:27wenn sich die daten erneut refreshen und immer noch wert1<werte2 ist, schickt dann wieder nachricht?
Nein, so lange der Zustand sich nicht ändert (wert1 bleibt < wert2)
Ja dass is ja mal was cooles, werd ich sofort ausprobieren! Vielen Dank, da hab ich wieder was gelernt!
Hallo Leute
bis dato hat das mit den MIN ganz gut geklappt, jetzt hat sich aber diesbezüglich ein anderes Problem aufgetan...
ich nehm die MIN werte her um zu sehen ob sich die min Aussentemperatur meiner Sensoren unter 4° befindet und schicke mir dann eine Pushmessage...
irgendwo habe ich hier aber den Hund drinnen, denn er schickt mir FHEM jedesmal wenn die temperatur unter meinem angegebenen wert fällt eine nachricht, ich will aber nur 1x am tag eine nachricht haben..... bzw. nur dann, wenn die temp. zb. wieder über den vergleichswert klettert und dann wieder fällt.. ich dachte ich mach eine at-funktion rein, aber ich will ja nicht wissen zu einer bestimmten urzeit sondern bei einem bestimmten effekt....
derzeit sieht mein code so aus:
define msgFrost DOIF ([#min"W132_6|WW3":temperature] < 4) ({fhem("set Pushnachricht msg title='ACHTUNG Frostgefahr' message='Die Aussentemperatur beträgt nur: ".sprintf("%.2f",[#min"W132_6|WW3":temperature])." °C"." \n ACHTUNG Frostgefahr!' ")})
Ohne do always sollte es wie gewünscht funktionieren. Dann kommt die Meldung nur, wenn der Zustand zwischendurch auf cmd_2 gewechselt hatte.