HM-Script für virtuelle Wetterstation

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

MichaelN
Beiträge: 9655
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 » 13.09.2020, 11:31

Baxxy hat geschrieben:
13.09.2020, 09:42
Hab mein angepasstes Script jetzt nochmal kurz getestet. Tatsächlich scheint die Rückgabe der Daten von OpenWeatherMap manchmal nicht zu funktionieren obwohl im Browser die Werte korrekt ausgegeben werden.
Das habe ich bei meinen eigenen Skripten noch nie beobachtet. In der Zeit, als ich OWM als Quelle genutzt habe, war auch jeder Abruf erfolgreich. Mag sein, das CUxD da stabiler läuft. Oder OWM hat aktuelle Serverprobleme, kann ja auch reiner Zufall sein.

Ich habe bei mir - da ich die Wetterdaten zu Steuerung nutze, ein Backup-Lösung programmiert. Über eine Werteliste gesteuert wird zunächst das Wetterskript nach einigen Minuten nochmal aufgerufen und wenn es dann immer noch keine Daten liefert, wird eine alternative Quelle abgefragt.
Aber das würde hier wohl zuweit führen.... Da müssen erstmal die Basics beherrscht werden.
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 » 17.09.2020, 20:50

Hallo,

ich bin jetzt wieder ein Stück weiter. Kann es sein, dass im Skript nicht "recXML = dom.GetObject(CUXD_Device#".CMD_RETS").State();" sondern "recXML = dom.GetObject(CUXD_Device#".CMD_SETS").State();" gemeint ist. Jedenfalls funktioniert dann das Skript ohne Abbruch. Jedoch wird nun die Systemvariable mit =°C befüllt, da in meinen Augen die XML nicht richtig ausgelesen wird.
Könnte mir bitte jemand erklären, was folgende Zeilen aussagen sollen, damit ich den Fehler finden kann:

Code: Alles auswählen

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());
Findet alternativ jemand anders einen Fehler, welcher verhindert, dass der Wert, der unter "temperature" im Browser richtig angezeigt wird hier zu 0 wird? Wie soll denn mit xml TemperatureStart/Offset oder -End der richtige Wert ausgelesen werden?

Beste Grüße

MichaelN
Beiträge: 9655
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 » 17.09.2020, 21:27

Vielleicht ist es doch einfacher, du nimmst ein funktionierendes Skript? Siehe Signatur
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: 10782
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 » 17.09.2020, 22:59

ache hat geschrieben:
17.09.2020, 20:50
Findet alternativ jemand anders einen Fehler
Ich muss mich hier mal entschuldigen. :oops: Meim erweitertes Script enthielt tatsächlich einen minimalen Fehler der ein erfolgreiches Abrufen der Daten verhinderte. Da ich immer eine lokale Kopie und nicht den eingefügten Code zum testen genutzt hatte fiel mir das bisher nicht auf.
Es fehlte ein klitzekleines am Ende der APPID.
Das ist nun korrigiert. Also bitte nochmal testen.

mkl1000
Beiträge: 19
Registriert: 04.11.2018, 07:39

Re: HM-Script für virtuelle Wetterstation

Beitrag von mkl1000 » 16.10.2020, 21:31

Hier eine Anfrage von einem Script-Anfänger:
Ich habe mir dieses Script auch mit dem besagten Programm wie auf den ersten Seiten hier beschrieben in der CCU3 angelegt. Das Script zeigt keine Fehler bei der Prüfung.
Dennoch werden bei mir keinerlei Variablen angelegt - kann mir jemand einen Tipp geben woran as liegt?

MichaelN
Beiträge: 9655
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 » 16.10.2020, 21:35

Falsche Erwartungshaltung. Das Skript legt keine Variablen an.
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 +++

mkl1000
Beiträge: 19
Registriert: 04.11.2018, 07:39

Re: HM-Script für virtuelle Wetterstation

Beitrag von mkl1000 » 16.10.2020, 22:40

Danke, habe den Fehler gefunden, Variablen werden angelegt, aber ich hatte an der falsche Stelle geschaut

Gezeichneter
Beiträge: 16
Registriert: 26.10.2020, 22:21
System: CCU
Hat sich bedankt: 13 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Gezeichneter » 27.10.2020, 20:04

Hallo DimMyPrp,

wollte hier auch mal Danke sagen, vor allem weil das Skript so verdammt gut aufgeräumt ist!
Hat alles auf Anhieb geklappt.

LG

MathiasZ

Re: HM-Script für virtuelle Wetterstation

Beitrag von MathiasZ » 28.10.2020, 04:50

Ich kann mich meinem Vorredner nur anschließen.
Den Skript einfach kopiert und eingefügt. Nur die city ID und die Api geändert, läuft!
Danke für's Teilen!

the_Stig
Beiträge: 116
Registriert: 26.04.2016, 11:10
Hat sich bedankt: 25 Mal
Danksagung erhalten: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von the_Stig » 29.12.2020, 11:05

Hallo Baxxy,

habe dein Script vom 09.05.2020, 10:59 genutzt. Mein Anfang des Skripts sieht wie folgt aus:

Code: Alles auswählen

!OpenWeather-CCU-Script, edited by regedit V1.2, 2019-08-31
!Verwendetes Original: DimMyPrp V1, 2017-02-15, edited by Schalterrei, 2018-07-25
!Edited by Alchy 05-05-2020

!Hier EIGENE OpenWeatherAppID eintragen

string owAppid='axxxxxxxxxxxxxxxxxxxxxxxxxxxxc';

!Optionale Experteneinstellungen: Angabe der Stadt (über https://openweathermap.org/city/) anstatt Geocoords (=false)
string owCityid='2xxxxxx';

!Optionale Experteneinstellungen: wget-Command per CUxD oder system.Exec (cuxCMDName='CUxD.<Seriennummer>:1'/false) sowie CUxD logging (true/false)
string cuxCMDName=false;
boolean useLOGIT=false;

!Optionale Experteneinstellungen: OpenWeather-Daten in CUxD Thermostat-Device schreiben (cuxWDSName='CUxD.<Seriennummer>:1'/false)

!Achtung: Gerät=("Universal Wrapper Device" (90) als "Thermostat" / Option "WEATHER|USE_HMDATAPT" muss auf false)
string cuxWDSName='CUX9002001:1';
Das Script läuft ohne Fehler, aber ich bekomme in den Geräten nur die Temperatur mit 0 Grad angezeigt. Vorher hatte ich im CUxD ein Wandthermostat erzeugt, das in HM als HM-CC-TC erkannt wurde. Siehst du (oder jemand anders) ad hoc, wo mein Fehler liegt?

EDIT: Lese grad hier im Thread: Falscher Gerätetyp...ich ändere das mal auf die 28...

Antworten

Zurück zu „Projektvorstellungen“