HM-Script für virtuelle Wetterstation

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

MichaelN
Beiträge: 9653
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von MichaelN » 25.08.2020, 09:46

FreshHomeUser hat geschrieben:
25.08.2020, 08:18


Frage aber dazu, was ich noch brauche sind die aktuellen Tages Höchstwerte. Mit dem Skript vom OP bekomme ich nur die Stündlichen Höchstwerte.
Weiß da jemand wie ich das anpassen muss ? Finde die werte irgendwie nicht.
Kannst dir ja meine beiden skripte - siehe Signatur - mal ansehen. Die sind darauf ausgelegt min / max auszugeben
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

FreshHomeUser
Beiträge: 69
Registriert: 29.09.2018, 21:27
Hat sich bedankt: 8 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von FreshHomeUser » 25.08.2020, 16:20

Baxxy hat geschrieben:
25.08.2020, 09:21
FreshHomeUser hat geschrieben:
25.08.2020, 08:18
was ich noch brauche sind die aktuellen Tages Höchstwerte. Mit dem Skript vom OP bekomme ich nur die Stündlichen Höchstwerte.
Die Abfrage der OpenWeather-Daten ist in allen 3 Scripen gleich. Es werden die Tageswerte abgefragt. Demzufolge sind die Min/Max Temperaturen die ausgegeben werden auch als aktuell anzusehen. Das sie sich bei jeder Abfrage ändern ist normal, es ist ja keine Vorhersage.
Danke für die schnelle Antwort, leider sind die angegebenen Min/Max werte nicht die Tages Min/Max werte sondern (vermutlich) die aktuelle Temperatur als Min/Max.

MichaelN hat geschrieben:
25.08.2020, 09:46
FreshHomeUser hat geschrieben:
25.08.2020, 08:18


Frage aber dazu, was ich noch brauche sind die aktuellen Tages Höchstwerte. Mit dem Skript vom OP bekomme ich nur die Stündlichen Höchstwerte.
Weiß da jemand wie ich das anpassen muss ? Finde die werte irgendwie nicht.
Kannst dir ja meine beiden skripte - siehe Signatur - mal ansehen. Die sind darauf ausgelegt min / max auszugeben
Werde ich machen, danke.

ache
Beiträge: 9
Registriert: 07.09.2020, 07:17
System: CCU

Re: HM-Script für virtuelle Wetterstation

Beitrag von ache » 07.09.2020, 07:26

Hallo,
ich verwende das Skript von Mike42 auf Seite 4 dieses Forumsbeitrags. Leider wird bei mir keine Systemvariable angelegt. Wäre super, wenn jemand der sich mit der Skriptprogrammierung besser auskennt mal über mein Skript lesen könnte. Wäre das so in Ordnung bzw. wo könnte denn sonst noch der Fehler liegen?

Beste Grüße und Danke im Voraus!

Code: Alles auswählen

! Temperaturvorhersage 3 Stunden über OpenWeatherMap, Mika, 30.05.2017
! Abfrage der Daten über CUXD
! Das Skript sollte höchstens alle 3 Stunden laufen, da OpenWeathermaps den Forecast in 3 Stunden Intervalle aufteilt
! verwendet Skript-Fragmente von OpenWeather-CCU-Script, Version 1, 15.02.2017, von dimmyprp

! ******************************************************************************************
! Deklarationen und Initialisierungen
! in "func" bitte unter "&id=" die Ortskennung und unter "&APPID=" den API-Schlüssel eintragen
! CUxD "System-Devices" (28) muss installiert sein
! in "CUXD_Device bitte die Kennung des Gerätes eintragen

! hier Systemvariable deklarieren (Typ Zahl)
var SysVar_Temp = dom.GetObject("AussenTemp_Forecast");


string func = "wget -q -O - 'http://api.openweathermap.org/data/2.5/forecast?mode=xml&units=metric&id=3220832&APPID=53fbcbf8a5e23459be86907ab308849a'";
string CUXD_Device = "CUxD.CUX2800001:1";

! Suchstrings und Offset-Werte zum extrahieren der Temperaturwerte
string xmlTimeStart               = "time from=";
string xmlTimeEnd                 = " to=";
integer xmlTimeStartOffset        = 11;
integer xmlTimeEndOffset          = 11;
string xmlTemperatureStart        = "temperature unit=";
string xmlTemperatureEnd          = "min=";
integer xmlTemperatureStartOffset = 34;
integer xmlTemperatureEndOffset   = 36;
integer xmlSkip                   = 100;

! TimeAdder:
!   0... angebrochenes 3h-Segment wird nicht berücksichtigt
!   5400... 3h-Segment wird berücksichtigt, wenn es zu weniger als der Hälfte abgelaufen ist
!   10800... angebrochenes 3h-Segment wird berücksichtigt
integer TimeAdder = 0; 

! XML-Antwort von OpenWeatherMaps
string recXML;

! Arbeitsvariablen
string wert1;
string wert2;
time jetzt;
integer counter = 1;


! ENDE Deklarationen und Initialisierungen
! ******************************************************************************************

jetzt = system.Date("%F %X");

! Abruf der Daten
dom.GetObject(CUXD_Device#".CMD_SETS").State(func);
dom.GetObject(CUXD_Device#".CMD_QUERY_RET").State(1);
recXML = dom.GetObject(CUXD_Device#".CMD_RETS").State();
if(!recXML){quit;}

! Temperaturwerte ausfiltern
while (counter<2){
  wert1 =  recXML.Substr(recXML.Find(xmlTimeStart)+xmlTimeStartOffset, recXML.Find(xmlTimeEnd)-recXML.Find
(xmlTimeStart)+xmlTimeEndOffset);
  wert2 =  recXML.Substr(recXML.Find(xmlTemperatureStart)+xmlTemperatureStartOffset,recXML.Find(xmlTemperatureEnd)-recXML.Find
(xmlTemperatureStart)+xmlTemperatureEndOffset);
  wert1=wert1.Substr(0,10)#" "#wert1.Substr(11,8);
  if ((wert1.ToTime()+TimeAdder)>jetzt) {
    WriteLine(wert1#"   " # wert2);
    counter = counter + 1;
  }
  recXML=recXML.Substr(recXML.Find(xmlTemperatureStart)+xmlSkip,recXML.Length());
}

! wert2 enthält die Temperatur im nächsten 3h-Segment
! Systemvariable schreiben:
 SysVar_Temp.State(wert2);
Zuletzt geändert von Roland M. am 07.09.2020, 10:19, insgesamt 1-mal geändert.
Grund: Doppelpost gelöscht

MichaelN
Beiträge: 9653
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von MichaelN » 07.09.2020, 10:30

ache hat geschrieben:
07.09.2020, 07:26
Leider wird bei mir keine Systemvariable angelegt.
In dem Skript gibt es keinen Code, der das machen würde. Wirst die SV also schon selber anlegen müssen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

ache
Beiträge: 9
Registriert: 07.09.2020, 07:17
System: CCU

Re: HM-Script für virtuelle Wetterstation

Beitrag von ache » 07.09.2020, 22:19

Danke für die Antwort. ;)

Wie gesagt ich habe noch wenig Erfahrung, aber ich dachte, die SV wird mit den beiden Zeilen:

"var SysVar_Temp = dom.GetObject("AussenTemp_Forecast");"

und

"SysVar_Temp.State(wert2);"

definiert und dann befüllt. Das ist meines Erachtens auch das was ich im Internet zur Definition und Befüllung einer SV gefunden habe.
Falls ich mich irre, wie würden denn die Befehle zur Deklarierung und Befüllung heißen?

Danke im Voraus!

MichaelN
Beiträge: 9653
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von MichaelN » 07.09.2020, 22:24

Das ergoogel ich jetzt nicht für dich. Sorry
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10779
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2205 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Baxxy » 07.09.2020, 22:51

ache hat geschrieben:
07.09.2020, 22:19
Danke im Voraus!
Wenn du eine Systemvariable Typ Zahl namens "AussenTemp_Forecast" auf deiner Zentrale angelegt hast und die Seriennummer deines CUxD-Gerätes richtig im Script einträgst sollte es laufen.

PS: ist zwar nicht soo kritisch, aber wenigstens deinen API - Schlüssel solltest du im Script unkenntlich machen.

ache
Beiträge: 9
Registriert: 07.09.2020, 07:17
System: CCU

Re: HM-Script für virtuelle Wetterstation

Beitrag von ache » 08.09.2020, 22:08

Danke für die Antwort und den Hinweis.
Leider tut es das so noch nicht, habe jetzt die Variable angelegt aber sie bleibt unbefüllt. Ist evtl der Bezug mit SysVar_Temp noch unklar?

MichaelN
Beiträge: 9653
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von MichaelN » 08.09.2020, 22:19

Zeig mal die Einstellungen der Systemvariable
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

ache
Beiträge: 9
Registriert: 07.09.2020, 07:17
System: CCU

Re: HM-Script für virtuelle Wetterstation

Beitrag von ache » 08.09.2020, 22:23

Window.png
Window.png (12.5 KiB) 1310 mal betrachtet
Muss ich hier noch das "SysVar_Temp" ergänzen, wenn ja, wo?

Antworten

Zurück zu „Projektvorstellungen“