HM-Script für virtuelle Wetterstation

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

Tinko
Beiträge: 190
Registriert: 23.10.2016, 10:15
Hat sich bedankt: 53 Mal
Danksagung erhalten: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Tinko » 10.07.2020, 20:09

Baxxy hat geschrieben:
09.07.2020, 16:52
Ich habe heute nochmal das von mir gekürzte Script auf einer jungfräulichen RaspberryMatic getestet und konnte keine Probleme feststellen. Alle SystemVariablen wurden angelegt und befüllt.
Voraussetzung für plausible Werte ist der korrekt eingetragene eigene Standort unter Systemsteuerung --> Zeit-/Positionseinstellung.
Danke. Das finde ich aber komisch. Bei mir meckert er in Zeile 4 weil ein vor der URL aus dem Forum fehlt. Wenn ich das setze läuft es zumindest erst mal durch. Vielleicht kannst du das noch in dem Code ergänzen?

Ob es jetzt mit dem Niederschlag passt werde ich beobachten und mich dann noch mal melden.

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 » 12.07.2020, 18:30

Tinko hat geschrieben:
10.07.2020, 20:09
Vielleicht kannst du das noch in dem Code ergänzen?
Danke für den Hinweis. Die URL zum Forum hatte ich nach dem Test hinzugefügt damit man später den Ursprung schneller wiederfindet. Dabei ist mir das "!" wohl durch die Lappen gegangen. Habe es ergänzt.

Ondas[tm]
Beiträge: 712
Registriert: 09.04.2017, 10:16
System: CCU
Wohnort: Nierstein [D]
Hat sich bedankt: 90 Mal
Danksagung erhalten: 68 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Ondas[tm] » 14.07.2020, 09:50

Ondas[tm] hat geschrieben:
10.07.2020, 12:13
Es scheint zu funktionieren, aber da es nicht regnet, lässt sich das so schlecht kontrollieren. Jedenfalls hat Vortag heute einen Wert :-)
Nö, tut es nicht, hätte dem geneigten Leser aber auch auffallen können :D

Code: Alles auswählen

var e = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Regen_gestern").Value ();
dom.GetObject("Regen_vorgestern").State(e);
var d = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Regen_heute").Value ();
dom.GetObject("Regen_gestern").State(d);
dom.GetObject("Regen_heute").State (0);
Aber das sieht so aus, als müsste es laufen.
Aufgrund wiederholter nerviger Werbung und "product placement" würde ich mein Haus eher entsmarten als Mediola/NEO zu kaufen.

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 » 15.07.2020, 11:35

Ondas[tm] hat geschrieben:
14.07.2020, 09:50
tut es nicht, hätte dem geneigten Leser aber auch auffallen können :D
Naja, es gibt wohl nur wenige die sich alle Scripte anschauen und sofort die Fehler entdecken. Obwohl das bei deinem Ansatz sehr leicht war.

Code: Alles auswählen

dom.GetObject("Regen_heute").Value (0);
kann nicht funktionieren.
Ich habe mir gemerkt: .Value() = lesen; .State(x) = schreiben. Und ja, es gibt auch Ausnahmen.
Außerdem würde ich mir angewöhnen immer den "sauberen" Zugriff auf Systemvariablen mit...

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("hier_steht_mein_SysVar_Name")
zu verwenden. Du machst hüh und hott. :wink:
siehe:

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Regen_gestern").Value ();
dom.GetObject("Regen_gestern").State(d);
Aber genug kritisiert, schließlich fängt jeder mal an. :)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Meine Umsetzung der Tagesregenmengen läuft ähnlich ab. Ein Programm was bei Aktualisierung der SysVar "ow Niederschlag" (welche selbst stündlich über die OpenWeatherMap-Abfrage aktualisiert wird) sowie zusätzlich zu einem festen Zeitpunkt (23:57Uhr) getriggert wird und folgendes Script ausführt:

Code: Alles auswählen

!- Regenmenge von OpenWeather Tagesregenmenge, Regenmenge gestern, Regenmenge vorgestern
!- @Baxxy v1.1
object owRegen = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag"); !- Originale Regenmengen-SysVar vom OpenWeatherMap Abfragescript
object owRegenHeute = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag Tag gesamt"); !- Summierte Tagesregenmenge-SysVar Typ Zahl
object owRegenGestern = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag Tag gesamt gestern"); !- Tagesregenmenge gestern - SysVar Typ Zahl
object owRegenVorgestern = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag Tag gesamt vorgestern"); !- Tagesregenmenge vorgestern - SysVar Typ Zahl
owRegenHeute.State(owRegen.Value() + owRegenHeute.Value()); !- Regenmenge von OpenWeathermap zur Tagesregenmenge-SysVar addieren
if(system.Date("%H:%M") == "23:57")
{
   owRegenVorgestern.State(owRegenGestern.Value()); !- Regenmenge von Gestern in Vorgestern schreiben
   owRegenGestern.State(owRegenHeute.Value()); !- Regenmenge von Heute in Gestern schreiben
   owRegenHeute.State(0); !- Regenmenge Heute auf "0" setzen
}

Ondas[tm]
Beiträge: 712
Registriert: 09.04.2017, 10:16
System: CCU
Wohnort: Nierstein [D]
Hat sich bedankt: 90 Mal
Danksagung erhalten: 68 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Ondas[tm] » 15.07.2020, 12:04

Baxxy hat geschrieben:
15.07.2020, 11:35
Außerdem würde ich mir angewöhnen immer den "sauberen" Zugriff auf Systemvariablen mit...

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("hier_steht_mein_SysVar_Name")
zu verwenden. Du machst hüh und hott. :wink:
siehe:

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Regen_gestern").Value ();
dom.GetObject("Regen_gestern").State(d);
Mist, das ist mir durch die Lappen gegangen... muss ich gleich mal nachsehen. Danke für Dein Feedback. ;-)
Aufgrund wiederholter nerviger Werbung und "product placement" würde ich mein Haus eher entsmarten als Mediola/NEO zu kaufen.

Tinko
Beiträge: 190
Registriert: 23.10.2016, 10:15
Hat sich bedankt: 53 Mal
Danksagung erhalten: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Tinko » 16.07.2020, 16:41

Baxxy hat geschrieben:
10.07.2020, 09:23
Wie die SV OpenWeatherMap Niederschlagsart zu "reparieren" ist hatte ja Alchy schon geschrieben.
alchy hat geschrieben:
06.05.2020, 21:50
Umgehung:
  • nun hätte ich im sagen können:
  • geh zu Einstellungen Systemvariable - such die Variable - ruf sie auf und drück auf o.k.
    Openweather_test.jpg
  • Damit wird die falsch angelegte Variable korrekt überschrieben und der nächste Lauf des Scriptes trägt den Wert korrekt ein.
  • Problem gelöst, oder wie hier üblich - erfolgreich umgangen. :mrgreen:
Wenn keine Werte kommen obwohl sie vermutlich sollten muss man mal die "Abruf" URL in den Browser eingeben und schauen was ausgegeben wird.
Erscheinen hier keine Werte, wwerden logischerweise auch keine in die SysVars geschrieben.
abc150781 hat geschrieben:
10.07.2020, 08:05
Besteht die Möglichkeit auch eines Forcast?
Also entweder stehe ich auf dem Schlauch oder irgendwas stimmt an der Anleitung nicht. Ich habe jetzt zwei Skripte in Betrieb. Beide Laufen und alle Werte werden gefüllt bis auf Niederschlag und Niederschlagsart. Ich habe in der API von OWM via URL nachgesehen und dort stehen Werte weil es gerade bei uns regnet. Ich habe auch bereits beide Variablen unter Einstellung bearbeitet und mit OK bestätigt. Ändert aber leider nichts.

Skript 1: viewtopic.php?f=18&t=35702&start=280#p592326
Skript 2: viewtopic.php?f=18&t=35702&start=190#p580737


Was habe ich übersehen?

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 » 16.07.2020, 21:03

Damit auch andere was von haben...
Tinko hat geschrieben:
16.07.2020, 16:41
Was habe ich übersehen?
Tatsächlich nichts!

In deinem Fall ist die Rückkgabe des Scriptes geringfügig anders wenn es die Koordinaten von der Zentrale nimmt.

Code: Alles auswählen

!Optionale Experteneinstellungen: Angabe der Stadt (über https://openweathermap.org/city/) anstatt Geocoords (=false)
string owCityid=false;
Trägst du deine City-ID im Script ein (aus Datenschutzgründen beispielhaft für Berlin)

Code: Alles auswählen

!Optionale Experteneinstellungen: Angabe der Stadt (über https://openweathermap.org/city/) anstatt Geocoords (=false)
string owCityid='2950159';
kommen andere (vollständige) Werte zurück.

Daher lautet meine Empfehlung:
Die "eigene" City-ID über OpenWeatherMap heraussuchen und in das Script eintragen.

Tinko
Beiträge: 190
Registriert: 23.10.2016, 10:15
Hat sich bedankt: 53 Mal
Danksagung erhalten: 1 Mal

Re: HM-Script für virtuelle Wetterstation

Beitrag von Tinko » 19.07.2020, 11:21

Baxxy hat geschrieben:
16.07.2020, 21:03
Damit auch andere was von haben...
Tinko hat geschrieben:
16.07.2020, 16:41
Was habe ich übersehen?
Tatsächlich nichts!

In deinem Fall ist die Rückkgabe des Scriptes geringfügig anders wenn es die Koordinaten von der Zentrale nimmt.
Trägst du deine City-ID im Script ein (aus Datenschutzgründen beispielhaft für Berlin)
kommen andere (vollständige) Werte zurück.

Daher lautet meine Empfehlung:
Die "eigene" City-ID über OpenWeatherMap heraussuchen und in das Script eintragen.
Vielen Dank und kann von mir bestätigt werden. Gerade getestet mit zwei Skripten:
viewtopic.php?f=18&t=35702&start=190#p580737
viewtopic.php?f=18&t=35702&start=180#p580177

Beide funktionieren bei mir jetzt. Wichtig ist, dass ich die City-ID direkt im Code eintragen muss ansonsten bleiben Niederschlagsmenge und Niederschlagsart leer. Alle anderen Variablen werden immer gefüllt.

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, 08:18

Hallo zusammen,

ich hab die letzten Seiten so überflogen und bin mir nicht sicher welches das aktuelle Skript ist ? Das vom OP funktioniert bei mir.

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.

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 » 25.08.2020, 09:21

FreshHomeUser hat geschrieben:
25.08.2020, 08:18
nicht sicher welches das aktuelle Skript ist ?
Beide von @Tinko (Post über Dir) verlinkten Scripte sind die aktuellsten Ausgaben. Das eine ist die komplette Version, das andere eine von mir gekürzte Version. (steht im Script-Header drin)
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.

Antworten

Zurück zu „Projektvorstellungen“