NEWS
Brauche Hilfe für Tendenzanzeige einer Temperatur
-
Hallo Zusammen,
ich möchte gerne eine Temperatur abfragen, und alle 60 sec. die Tendenz für Auf/Ab/Gleich bekommen.
Ich weiss das es in VIS mit justgage-indicator auch geht, aber die Grafik sagt mir nicht so zu. Habt Ihr eine Lösung ? Kann auch Script sein....Vielen Dank,
Kaschi68 -
Flot Adapter und History Adapter....
-
@sigi234
Habe ich beide installiert. Wo bekomme ich die Tendenz her ? -
-
@sigi234
Ja, mit den Diagrammen ist Klasse. Verwende ich auch. Nur für die Smartphones möchte ich aus Platzgründen einen Pfeil haben. Den Pfeil möchte ich als Image verwenden und im VIS ansteuern, bzw. je nach dem sichtbar machen. Mir fehlt nur leider noch grundlegend das Verständnis für Scipte.Der Script sollte etwa so aussehen,
-lade Temperaturwert,
-warte 60 Sekunden,
-vergleiche den alten mit dem neuen Temperaturwert,
-ist der neue Wert gleich dem alten, dann Variable=0
-ist der neue Wert kleiner als der Alte, dann Variable=1
-ist der neue Wert grösser als der Alte, dann Variable=2
-gehe zum Anfang...Trotzdem vielen Dank für den Tipp
-
Vorschlag:
const idTemp = '...'; // ID für Temperatur-Datenpunkt eintragen const idPfeil = '...'; // ID für Multistate-Datenpunkt eintragen var lastTemp = getState(idTemp).val; schedule('* * * * *', function() { // jede Minute var t = getState(idTemp).val; var tendenz = 0; if(t < lastTemp) tendenz = 1; if(t > lastTemp) tendenz = 2; setState(idPfeil, tendenz, true); lastTemp = t; });
-
@paul53
Das sieht schon mal Klasse aus. Werde ich morgen vormittag mal testen.Vielen lieben Dank...
-
@paul53
Oh , das möchte ich auch mal so können......... -
@sigi234
Das lässt sich lernen. Habe erst im Alter von 62 mit Javascript angefangen. -
Läuft total Super Dein Script, vielen Dank nochmal. Hier ist er mit Datenpunkten und 5min. Abfrageintervall :
const idTemp = 'hm-rpc.0.OEQ0xxxxxx.1.TEMPERATURE'; // ID für Temperatur-Datenpunkt eintragen const idPfeil = 'javascript.0.Tendenz_Kammer'; // ID für Multistate-Datenpunkt eintragen var lastTemp = getState(idTemp).val; schedule('*/5 * * * *', function() { // jede 5 Minuten var t = getState(idTemp).val; var tendenz = 0; if(t < lastTemp) tendenz = 1; if(t > lastTemp) tendenz = 2; setState(idPfeil, tendenz, true); lastTemp = t; });
Beste Grüße,
Kaschi68 -
@paul53 Danke für das Script es klappt super! Ich beiße mir gerade die Zähne aus das Script auf 4 Werte zu ändern...
Also er soll 3 Werte miteinander vergleichen.Ist der neue Wert < als der 1. Alte und 2. Alte und 3. Alte dann => Variable 1
Kannst du mir dort bitte weiterhelfen?
Danke dir!
-
@stadtschloss sagte: Ist der neue Wert < als der 1. Alte und 2. Alte und 3. Alte dann => Variable 1
const idTemp = 'hm-rpc.0.OEQ0xxxxxx.1.TEMPERATURE'; // ID für Temperatur-Datenpunkt eintragen const idPfeil = 'javascript.0.Tendenz_Kammer'; // ID für Multistate-Datenpunkt eintragen var last1 = getState(idTemp).val; var last2 = last1; var last3 = last1; schedule('*/5 * * * *', function() { // jede 5 Minuten var t = getState(idTemp).val; var tendenz = 0; if(t < last1 && t < last2 && t < last3) tendenz = 1; if(t > last1) tendenz = 2; setState(idPfeil, tendenz, true); last3 = last2; last2 = last1; last1 = t; });
-
@paul53 Vielen Dank für deine Hilfe! Hat mir sehr Weitergracht bin noch mit Java am Anfang. Hat mir einiges geholfen