Seite 30 von 38

Re: HM-Script für virtuelle Wetterstation

Verfasst: 10.07.2020, 20:09
von Tinko
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.

Re: HM-Script für virtuelle Wetterstation

Verfasst: 12.07.2020, 18:30
von Baxxy
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.

Re: HM-Script für virtuelle Wetterstation

Verfasst: 14.07.2020, 09:50
von Ondas[tm]
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.

Re: HM-Script für virtuelle Wetterstation

Verfasst: 15.07.2020, 11:35
von Baxxy
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
}

Re: HM-Script für virtuelle Wetterstation

Verfasst: 15.07.2020, 12:04
von Ondas[tm]
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. ;-)

Re: HM-Script für virtuelle Wetterstation

Verfasst: 16.07.2020, 16:41
von Tinko
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?

Re: HM-Script für virtuelle Wetterstation

Verfasst: 16.07.2020, 21:03
von Baxxy
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.

Re: HM-Script für virtuelle Wetterstation

Verfasst: 19.07.2020, 11:21
von Tinko
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.

Re: HM-Script für virtuelle Wetterstation

Verfasst: 25.08.2020, 08:18
von FreshHomeUser
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.

Re: HM-Script für virtuelle Wetterstation

Verfasst: 25.08.2020, 09:21
von Baxxy
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.