event-on-change-reading: Trigger nur bei Schwelle KLEINER als

Begonnen von chappo59, 02 November 2017, 09:38:29

Vorheriges Thema - Nächstes Thema

chappo59

Liebe Spezialisten,
folgendes steht bei event-on-change-reading:
ZitatWenn hinter dem Namen eines "readings" eine :Schwelle angegeben ist, wird das Event nur getriggert wenn die Änderung größer als diese Schwelle ist.
Gibt es auch die umgekehrte Funktion, dass nur getriggert wird wenn die Schwelle kleiner als ein bestimmter Wert ist.
LG Karl


Ma_Bo

Die Frage interessiert mich auch.
Könnte ich auch teilweise brauchen.

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

marvin78

Eingebaut gibt es das nicht. Wofür braucht man das?


Zur Not muss man das in der zu triggernden Funktion selbst ermitteln.

herrmannj

Zitat von: marvin78 am 03 November 2017, 11:37:04
Eingebaut gibt es das nicht. Wofür braucht man das?

Finde ich auch. Völliger Unsinn das in ein "event-on..." zu packen !

_wenn_ man das benötigt (da mag es viele legitime Zwecke geben) dann gehört diese Auswertung in den _Empfänger_ !

Notify -> if (abs(Old - New)) < 5 { ... }

Genau dafür hat doch fhem nun wirklich alles an Bord ...

Ma_Bo

Zitat von: herrmannj am 03 November 2017, 12:05:15
Finde ich auch. Völliger Unsinn das in ein "event-on..." zu packen !

_wenn_ man das benötigt (da mag es viele legitime Zwecke geben) dann gehört diese Auswertung in den _Empfänger_ !

Notify -> if (abs(Old - New)) < 5 { ... }

Genau dafür hat doch fhem nun wirklich alles an Bord ...
Wenn man weiß, wie, dann kann man das mit bordmitteln machen...

Ich bräuchte es für ein KFZ Tracking gerät, dieser schickt mir z.B. breiten und Längengrade, ab und an kommt es dann aber vor, dass das Gerät falsche Daten schickt und ich plötzlich in Afrika bin...

Deshalb wäre es für meine DOIF's usw. praktisch wenn es erst ein Event im Tracking Device gäbe, so dass ich angeben kann, dass der Eintrag im Reading Max 1 Grad abweichen darf um solche ,,Ausreißer" zu kompensieren...

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

herrmannj


frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Ma_Bo

Nochmal...

Zitat von: Ma_Bo am 03 November 2017, 12:34:24
Wenn man weiß, wie, dann kann man das mit bordmitteln machen...



Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

herrmannj

ja mein Gott, ich geh doch auch nicht zum Angeln und stell den Eimer neben den See und warte bis die Fisch da rein springen. Früh aufstehen und die Angel selber in den Teich werfen ist das mindeste ...

Du kannst richtig was lernen wenn Du es versuchst. Wenn Du das, im ersten Anlauf, nicht schaffst gibt es hier genug Hilfe und Unterstützung.

Ma_Bo

SO war es ja auch garnicht gemeint...

Aber, da wir jetzt wissen, dass sowas mit Bordmitteln möglich ist, kann man sich darüber informieren...

Nicht böse gemeinte Grüße
Marcel 


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

chappo59

@ marvin78
Ich habe ein ähnliches Problem und zwar dass ich beim loggen von Temperaturen manchmal große unrealistische Ausreißer habe, die ich damit unterbinden möchte. Mag schon sein, dass es dafür auch andere Lösungen gibt, aber meine Idee war halt, das Problem so zu lösen. Auch für alle anderen Lösungsansätze bin ich natürlich dankbar.

Glaubt mir, bevor ich mich hier im Board mit einem Problem an euch wende, probiere ich vorher Tage und manchmal Wochen es selbst zu lösen. Aber, nicht alle sind Profis in diesem Bereich der Technik und manche alte Herren (59) kommen halt aus der Analogzeit und tun sich schwer mit dem Selbststudium.
Ich will ja nicht unhöflich sein, aber Antworten, wie "Wenn man weiß wie", "ja mein Gott" und "Genau dafür hat doch fhem nun wirklich alles an Bord" sind da nicht wirklich hilfreich. Ich dachte Boards (speziell die Sektion Anfängerfragen, ich dachte deshalb heißt sie so, sonst sollte man sie umbenennen) sind dazu da um auch wenig erfahrenen Usern weiter zu helfen. Freundlich anzufragen wird wohl erlaubt sein.
Hochachtung vor den Profis, aber nicht alle sind auf euren Level sondern fangen mit Null an und beschäftigen sich doch mit viel Ehrgeiz und Freude damit. Manchmal kommt man halt alleine halt nicht weiter. Ich bitte um Verständnis dafür und plädiere für etwas weniger emotionale Ausbrüche und mehr objektive Unterstützung.

Karl

herrmannj

#11
Ja dann zeig doch mal was Du probiert hast, das ist tausendmal besser als "ins blaue" zu fragen.

Für den Fall das Du komplett daneben lagst: (c) frank : userreadings (https://fhem.de/commandref_DE.html) und im userreading alt und neu vergleichen.

chappo59

Leichter gesagt, als getan. Den aktuellen Wert erhalte ich mit ReadingsVal, aber wie komme ich zum alten Wert?

kadettilac89

Zitat von: chappo59 am 04 November 2017, 13:34:46
Leichter gesagt, als getan. Den aktuellen Wert erhalte ich mit ReadingsVal, aber wie komme ich zum alten Wert?

Den alten Wert hast du ja noch im userreading.

Deine Logik ... Vergleiche ReadingsVal des userreadings selbst mit Wert ReadingsVal von state oder wo der gelieferte Wert steht. Wenn deine Prüfung positiv ist, setzt du das userreading auf den neuen Wert.

Inital  musst du mal dein userreading mit setreading oder setzen damit ein plausibler Wert vorhanden ist.