Homematic Script Min und Max Temperatur in Variable schreiben
Haben Sie sich schon einmal gefragt, um welche Uhrzeit Nachts die kälteste Temperatur war?
Kein Problem. Dazu erstellen wir ein kleines Script und lassen die Werte beim jeweiligen Zustand in eine Variable setzen.
Diese Werte lassen sich nun super in Programmen benutzen und über die Favoriten kann man diese auch direkt auf der Startseite der CCU anzeigen lassen.
Los geht’s!
- Typ Zahl (Minimalwert: -59, Maximalwert: 59) und Maßeinheit °C:
- Außentemperatur Max Gestern
- Außentemperatur Max Heute
- Außentemperatur Min Gestern
- Außentemperatur Min Heute
- Typ Zeichenkette und Maßeinheit h:
- Außentemperatur Max Zeit
- Außentemperatur Min Zeit
- Bedingung: Wenn… bei Aktualisierung auslösen vom Temperatursensor im Wertebereich größer oder gleich -59.00 °C
- Aktivität: Dann… Script einfügen
!Temperaturvariablen setzen !Script by www.homematic-guru.de var curTemp = dom.GetObject("W_Temperatur").Value(); var maxTemp = dom.GetObject("Außentemperatur Max Heute").Value(); var minTemp = dom.GetObject("Außentemperatur Min Heute").Value(); if (curTemp > maxTemp) { dom.GetObject("Außentemperatur Max Heute").State(curTemp); dom.GetObject("Außentemperatur Max Zeit").State(system.Date("%H:%M ")); } if (curTemp < minTemp) { dom.GetObject("Außentemperatur Min Heute").State(curTemp); dom.GetObject("Außentemperatur Min Zeit").State(system.Date("%H:%M ")); }
- Bedingung: Wenn… Zeitsteuerung Serienmuster täglich jeden Tag, Zeitpunkt 00:00 Uhr
- Aktivität: Dann… Script einfügen
! Temperatur Werte Min-Max übertragen ! Script by www.homematic-guru.de var curTemp = dom.GetObject("W_Temperatur").Value(); var maxTemp = dom.GetObject("Außentemperatur Max Heute").Value(); var minTemp = dom.GetObject("Außentemperatur Min Heute").Value(); dom.GetObject("Außentemperatur Max Gestern").State(maxTemp); dom.GetObject("Außentemperatur Min Gestern").State(minTemp); dom.GetObject("Außentemperatur Max Heute").State(curTemp); dom.GetObject("Außentemperatur Min Heute").State(curTemp); dom.GetObject("Außentemperatur Max Zeit").State("00:00 h"); dom.GetObject("Außentemperatur Min Zeit").State("00:00 h");
Fertig!
Achtung: Die Variable W_Temperatur in beiden Scripten muss durch eure Variable bzw. Temperatursensor-ID ersetzt werden. Habt ihr keine Variable mit der Außentemperatur bzw. nur einen lokalen Temperatursensor, so muss
dom.GetObject("W_Temperatur").Value();durch
dom.GetObject("BidCos-RF.IEQ1234567:1.TEMPERATURE");(mit eurer Geräte-ID) ersetzt werden.
In diesem Beispiel wurde die Variable „W_Temperatur“ durch ein Script gefüllt, das die aktuellen Wetterdaten aus meinem Ort über eine API-Schnittstelle von wunderground.com abholt. Wie das funktioniert, könnt ihr auf dieser Seite nachlesen 🙂
Verwendete Hardware
Funktionsweise
Das Script wird bei jeder Aktualisierung des Temperatursensors ausgelöst und prüft ob die aktuelle Temperatur den heute niedrigsten oder höchsten Wert unterschreitet bzw. überschreitet und schreibt im positiven Fall dann den Wert inkl. Uhrzeit in die entsprechenden Variablen. Am nächsten Tag werden die heutigen min-max Werte dann in die Variablen min-max gestern übertragen und die heutigen min-max Werte mit der aktuellen Temperatur gesetzt.