ich nutze ein Display HmIP-WRCD, um Informationen zu Temperatur und Luftfeuchtigkeit mehrerer Räume darzustellen. Dazu lasse ich alle 15 Minuten ein Script laufen, welches die Werte der verschiedenen Datenpunkte liest und auf dem Display ausgibt. Zusätzlich werden Datum und Uhrzeit dargestellt:
Code: Alles auswählen
!Read values from sensors and write to display
var a1HumValue = dom.GetObject("HmIP-RF.0010DBE*******:1.HUMIDITY").Value();
var a1TempValue = dom.GetObject("HmIP-RF.0010DBE*******:1.ACTUAL_TEMPERATURE").Value();
var a2HumValue = dom.GetObject("HmIP-RF.0010DD8*******:1.HUMIDITY").Value();
var a2TempValue = dom.GetObject("HmIP-RF.0010DD8*******:1.ACTUAL_TEMPERATURE").Value();
var bTempValue = dom.GetObject("BidCos-RF.LEQ*******:4.ACTUAL_TEMPERATURE").Value();
var kHumValue = dom.GetObject("BidCos-RF.KEQ*******:1.HUMIDITY").Value();
var kTempValue = dom.GetObject("BidCos-RF.KEQ*******:1.TEMPERATURE").Value();
var sTempValue = dom.GetObject("HmIP-RF.00201BE*******:1.ACTUAL_TEMPERATURE").Value();
string a1Hum = a1HumValue.ToString(1);
string a1Temp = a1TempValue.ToString(1);
string a2Hum = a2HumValue.ToString(1);
string a2Temp = a2TempValue.ToString(1);
string bTemp = bTempValue.ToString(1);
string kHum = kHumValue.ToString(1);
string kTemp = kTempValue.ToString(1);
string sTemp = sTempValue.ToString(1);
string zeile1 = "A.Wz: " # a1Temp # "/" # a1Hum # "%";
string zeile2 = "A.Sz: " # a2Temp # "/" # a2Hum # "%";
string zeile3 = "K: " # kTemp # "/" # kHum # "%";
string zeile4 = "Sz:" # sTemp # " B:" # bTemp;
string zeile5 = system.Date("%d.%m.%y %H:%M");
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_STRING").State(zeile1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ALIGNMENT").State(1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ID").State(1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_STRING").State(zeile2);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ALIGNMENT").State(1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ID").State(2);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_STRING").State(zeile3);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ALIGNMENT").State(1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ID").State(3);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_STRING").State(zeile4);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ALIGNMENT").State(1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ID").State(4);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_STRING").State(zeile5);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ALIGNMENT").State(1);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_ID").State(5);
dom.GetObject("HmIP-RF.002A5D8*******:3.DISPLAY_DATA_COMMIT").State(true);
Vordergründig funktioniert das Script und tut was es soll. Allerdings stimmt die angezeigte Uhrzeit nicht, sondern hängt um 15 Minuten nach, so als ob die Uhrzeit des vorherigen Scriptdurchlaufs angezeigt wird anstatt die des aktuellen Durchlaufs. Die Uhrzeit auf der Zentrale wird natürlich per NTP abgeglichen und ist soweit auch korrekt. Was übersehe ich?
Danke und Gruß,
Elix