Wunderground Wetter mit einfachem HM-Skript holen

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

postit
Beiträge: 20
Registriert: 23.02.2016, 09:02

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von postit » 12.03.2019, 02:54

debianatoe hat geschrieben:
09.03.2019, 13:29
postit hat geschrieben:
08.03.2019, 23:37
Hat schon jemand ein Script um nur die aktuellen Daten von Dark Sky abzufragen?
Ich nutze für DarkSky dieses TCL-Skript, um aktuelle Daten zu bekommen:

Code: Alles auswählen

#!/bin/tclsh
load tclrega.so

#
# Read weather data <Ort>
# Update der Daten auf DarkSky erfolgt minuetlich

# Variablen:
#   dsWetterBedingungen         Zeichenkette	summary	
#   dsTemperatur         Zahl (°C)	temperature
#   dsWindgeschwindigkeit   Zahl (km/h)	windSpeed
#   dsWindboeen         Zahl (km/h)	windGust
#   dsWindGrad         Zahl	(°)	windBearing	0°=Nord
#   dsWolkendecke      Zahl	(%)	cloudCover	100%=bedeckt / 0%=wolkenlos
#   dsLuftdruck         Zahl (mb)	pressure
#   dsUVIndex      Zahl	uvIndex
#   dsLuftfeuchte         Zahl	(%)	humidity
#	dsNsIntens	Zahl	(mm/h)	precipIntensity	Niederschlagsintensitaet
#	dsNsWahrsch	Zahl	(%)	precipProbability	Niederschlagswahrscheinlichkeit

#

# Achtung: 3 zusaetzliche Backslashes zum Entfluechten vor ? und 2x &
set url https://api.darksky.net/forecast/<APP-ID>/<GPS noerdliche Breite>,<GPS oestliche Laenge>\?exclude=hourly,daily\&units=ca\&lang=de
if { [catch {exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/wetter/darksky.json $url} error] } {
    puts stderr "Could not reach $url \n$error"
    exit 1
}

set f [open "/usr/local/addons/wetter/darksky.json"]
set input [read $f]
close $f

#
# goto section with current observation
#
regexp ",\"currently\":{(.*?)},\"flags\":{" $input dummy current  ; #get current observation
#
regexp "\"time\":(.*?)," $current dummy observation_time  ; # letzter update
regexp "\"summary\":\"(.*?)\"," $current dummy weather  ; # wetterbedingungen
regexp "\"precipIntensity\":(.*?)," $current dummy prec_int  ; # Niederschlagsintensitaet # ZAHL
regexp "\"precipProbability\":(.*?)," $current dummy prec_pro  ; # Niederschlagswahrscheinlichkeit # ZAHL
regexp "\"temperature\":(.*?)," $current dummy temp_c  ; # temperatur # ZAHL
regexp "\"humidity\":(.*?)," $current dummy relative_humidity  ; # Luftfeuchtigkeit
regexp "\"pressure\":(.*?)," $current dummy pressure_mb  ; # Luftdruck
regexp "\"windSpeed\":(.*?)," $current dummy wind_kph  ; # Windgeschwindigkeit # ZAHL
regexp "\"windGust\":(.*?)," $current dummy wind_gust_kph  ; # Windboeengeschwindigkeit # ZAHL
regexp "\"windBearing\":(.*?)," $current dummy wind_dir  ; # windrichtung
regexp "\"cloudCover\":(.*?)," $current dummy cloudCover  ; # windbedingungen
regexp "\"uvIndex\":(.*?)," $current dummy uv_index  ; # #ZAHL

# Wahrscheinlichkeit in % umrechnen:
set prec_pro [expr $prec_pro * 100.0]
# relative Luftfeuchtigkeit in % umrechnen:
set relative_humidity [expr $relative_humidity * 100.0]
# relative Himmelbedeckung durch Wolken in % umrechnen:
set cloudCover [expr $cloudCover * 100.0]
           # Umlaute korrigieren

          switch $weather {
 "Leicht bewölkt"          {set wind_dir "Leicht bewölkt"}
# "Südost"           {set wind_dir "Südost"}
# "Süd"           {set wind_dir "Süd"}
# "West-Südwest"     {set wind_dir "West-Südwest"}
# "Süd-Südwest"     {set wind_dir "Süd-Südwest"}
# "Ost-Südost"       {set wind_dir "Ost-Südost"}
# "Süd-Südost"      {set wind_dir "Süd-Südost"}
        }
#
# set ReGaHss variables
#
set rega_cmd ""
append rega_cmd "var c0 = dom.GetObject('WetterAktualisierung');"
append rega_cmd "var c1 = dom.GetObject('dsWetterBedingungen');"
append rega_cmd "var c2 = dom.GetObject('dsTemperatur');"
append rega_cmd "var c3 = dom.GetObject('dsWindgeschwindigkeit');"
append rega_cmd "var c4 = dom.GetObject('dsWindboeen');"
append rega_cmd "var c5 = dom.GetObject('dsWindGrad');"
append rega_cmd "var c6 = dom.GetObject('dsWolkendecke');"
append rega_cmd "var c7 = dom.GetObject('dsLuftdruck');"
append rega_cmd "var c8 = dom.GetObject('dsUVIndex');"
append rega_cmd "var c9 = dom.GetObject('dsLuftfeuchte');"
append rega_cmd "var c10 = dom.GetObject('dsNsIntens');"
append rega_cmd "var c11 = dom.GetObject('dsNsWahrsch');"
#append rega_cmd "c0.State('$observation_time');"
append rega_cmd "c1.State('$weather');"
append rega_cmd "c2.State('$temp_c');"
append rega_cmd "c3.State('$wind_kph');"
append rega_cmd "c4.State('$wind_gust_kph');"
append rega_cmd "c5.State('$wind_dir');"
append rega_cmd "c6.State('$cloudCover');"
append rega_cmd "c7.State('$pressure_mb');"
append rega_cmd "c8.State('$uv_index');"
append rega_cmd "c9.State('$relative_humidity');"
append rega_cmd "c10.State('$prec_int');"
append rega_cmd "c11.State('$prec_pro');"

append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsWindgeschwindigkeit;'#$wind_kph);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsWindboeen;'#$wind_gust_kph);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsLuftdruck;'#$pressure_mb);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsNsIntens;'#$prec_int);"
append rega_cmd "dom.GetObject('CUxD.CUX2801001:1.LOGIT').State('dsNsWahrsch;'#$prec_pro);"
rega_script $rega_cmd

Die entsprechenden Systemvariablen muß man angelegt haben. Die eigene APP-ID und die GPS-Daten des Wohnortes muß man an der markierten Stelle eintragen.
postit hat geschrieben:
08.03.2019, 23:37
Ich brauche halt nur die aktuellen Daten, aber gerne etwas detaillierter als bei Open Weather Map.
Es ist auch sehr individuell, wie weit die nächste Station des jeweiligen Anbieters vom eigenen Wohnort entfernt ist.
Fehlt da in der folgenden Zeile etwas?

Code: Alles auswählen

regexp ",\"currently\":{(.*?)},\"flags\":{" $input dummy current  ; #get current observation
Fehlt da vielleicht eine geschwungene Klammer?

Ich bekomme immer folgende Fehlermeldung:
can't read "current": no such variable
while executing
"regexp "\"time\":(.*?)," $current dummy observation_time "
(file "darksky.tcl" line 39)

cotonila
Beiträge: 67
Registriert: 17.11.2016, 20:51
Wohnort: bei Riesa
Hat sich bedankt: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von cotonila » 12.03.2019, 06:24

Die aktuelle Temperatur habe ich bewusst nicht in der DarkSky Abfrage drin. Genau wie die aktuelle Luftfeuchte, Regenmenge, Wind etc. und alles was in der Vergangenheit liegt.
Dafür nutze ich lokale Sensoren und schreibe die Tageswerte in Var für Gestern und Vorgestern.

Es wäre es aber ein leichtes die aktuellen Werte aus der DarkSky JSON raus zu filtern.

VG Cotonila
Raspberry Pi 4B mit RPI-RF-MOD; 2x RPi LAN GW;
990 Kanäle in 293 Geräten; 262 Programme; 339 Systemvariablen
AddOns: CUxD; HQ WebUI; JP HB Devices;CCU Historian; E-Mail; QuickAccess; Drucken; SonosPlayer; WatchDog; div. ESP8266, extra: Homeduino; ioBroker; Medial Neo

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Sweatchuck » 12.03.2019, 08:29

Hallo Fonzo,

ich finde den Button HTML Grundgerüst nicht.

Kannst du mir genauer erklären wo diese Einstellungen zu finden sind.
Ich habe die aktuelle Version jedoch ohne SUS.

Danke
Sweatchuck

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 486 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Fonzo » 12.03.2019, 10:51

Sweatchuck hat geschrieben:
12.03.2019, 08:29
ich finde den Button HTML Grundgerüst nicht.

Kannst du mir genauer erklären wo diese Einstellungen zu finden sind.
In der Mitte im Eigenschaftenfenster (rechts) sobald ein Webseitenelement aufgezogen wurde.
HTML Grundgerüst NEO.png
HTML Grundgerüst NEO.png (11.02 KiB) 1853 mal betrachtet
Sweatchuck hat geschrieben:
12.03.2019, 08:29
Ich habe die aktuelle Version jedoch ohne SUS.
Ich blicke da langsam auch nicht mehr durch mit den ganzen Versionen mit und ohne SUS. Welche Versionsnummer hat denn Dein NEO bzw. welche NEO Plugins nutzt Du denn? Wenn man eine CCU3 mit der beilegenden NEO Lizenz nutzt, sollte man an sich mit dem NEO Plugin Homematic die Version 2.5.3 nutzten können.

Laut Changelog sollte das ab der Version 2.5.1 funktionieren mit AIO REMOTE NEO 1.62.

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Sweatchuck » 12.03.2019, 11:57

Hallo,

ich nutze Version 2.1.15.
Das ist die neueste Version ohne SUS - siehe Link:

https://www.mediola.com/service#downloads

Hierin ist diese Funktion noch nicht vorhanden -> nicht ohne WebStation, iOBroker o.ä. möglich.

Da bei meiner CCU3 eine Linzens für HM dabei war und ich sonst nur das iOBroker sowie das AIO Gateway plugin nutze habe ich für die das HM Plugin sowie ioBroker noch SUS. Für das Plugin des AIO Gateway leider nicht mehr. Deshalb habe ich aktuell die Version 2.1.15 drauf.

Kann ich mir die neue Version 2.5.3 ziehen? Was passiert dann mit dem AIO Plugin?

Gruß
Sweatchuck

postit
Beiträge: 20
Registriert: 23.02.2016, 09:02

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von postit » 12.03.2019, 12:19

Ich kann leider nicht so gut scripten, ich kann nur bestehende Scripte anpassen. Mit der oben erwähnten Zeile komme ich leider nicht klar. Kann da vielleicht bei Gelegenheit mal jemand drauf schauen? Ich verzweifle fast, denke aber, es ist eine Kleinigkeit. Vielen Dank!

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 486 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Fonzo » 12.03.2019, 13:15

Sweatchuck hat geschrieben:
12.03.2019, 11:57
ich nutze Version 2.1.15.
Das ist die neueste Version ohne SUS
Diese NEO Version unterstützt das leider noch nicht. Daher bleibt dann in der Tat nur die Möglichkeit die Seite von einem lokalen Webserver in NEO einzubinden, bei Nutzung von IP-Symcon könnte man bei der NEO Version IP-SymconWebbox nutzten, um den Inhalt aus einer String Variable mit Variablenprofil ~HTMLBox in NEO anzuzeigen.
Sweatchuck hat geschrieben:
12.03.2019, 11:57
Da bei meiner CCU3 eine Linzens für HM dabei war und ich sonst nur das iOBroker sowie das AIO Gateway plugin nutze habe ich für die das HM Plugin sowie ioBroker noch SUS. Für das Plugin des AIO Gateway leider nicht mehr. Deshalb habe ich aktuell die Version 2.1.15 drauf.
Das NEO Plugin ioBroker ist unsupported und daher auch von SUS ausgenommen, das sollte auch mit der neusten NEO Version laufen.
Sweatchuck hat geschrieben:
12.03.2019, 11:57
Für das Plugin des AIO Gateway leider nicht mehr. Deshalb habe ich aktuell die Version 2.1.15 drauf.

Kann ich mir die neue Version 2.5.3 ziehen? Was passiert dann mit dem AIO Plugin?
In dem Moment in dem Du ein Update auf die neuste NEO Version machst, läuft dann nur noch das NEO Homematic Plugin und das unsupported NEO Plugin ioBroker, das NEO Plugin AIO Gateways wird dann nicht mehr funktionieren. Daher hast Du in dem Fall mehrere Möglichkeiten. Erste Möglichkeit ein SUS für das NEO Plugin AIO Gateways erwerben. Zweite Möglichkeit, abhängig von dem was Du alles an Geräten über das AIO Gateway steuerst, einen Schaltbefehl per HTTP an das AIO Gateway senden anstatt das NEO Plugin AIO Gateways zu nutzten. Dritte Möglichkeit NEO Plugin IP-Symcon erwerben und darüber alle Geräte steuern auch die Geräte über das AIO Gateway über IPSymconAIOGateway, dann kannst Du Geräte aus NEO importieren.

Falls die neue NEO Version ansonsten keinen zusätzlichen Vorteil für Dich bringen sollte, ist es das einfachste auch vorerst alles beim jetzigen Zustand zu belassen. Dann kannst Du weiterhin Homematic nutzten mit den Funtionen, die die jetzige NEO Version unterstützt und zusätzlliche Inhalte über das NEO Plugin ioBroker einbinden wie auch z.B. das Wetter. Letzendlich hängt das also davon ab was Du zur Zeit überhaupt alles an Geräten steuerst und in welchem Umfang das AIO Gateway für Geräteansteuerung benutzt wird.

Sweatchuck
Beiträge: 125
Registriert: 07.09.2016, 08:44
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Sweatchuck » 12.03.2019, 14:18

Hallo Fonzo,

vielen Dank deine Ausführungen.

AIO Gateway nutze ich eigentlich nur noch um IR Komponenten zu steuern. Das Plugin ist eigentlich nicht notwendig wenn ich die Befehler von der CCU an das Gateway schicke. Allerdings benötige ich manchmal die Lernfunktion für IR Komponenten vom AIO Gateway.

Leider ist mir nicht wirklich klar welche Vorteile die neue Version im Vergleich zur 2.1.15 bietet. Finde dazu auch keine direkte "Gegenüberstellung". Das Thema "HTML Gerüst" wäre intressent wenn mein NAS nur für den Webserver benötigen würde. Aber da es sowieso 24/7 läuft habe ich damit kein Problem.

Interessant ist jedoch die Aussage von Mediola, sollte ich jetzt auf 2.5.3 (vorher SUS für AIO kaufen) und würde dann SUS auslaufen lassen würde ich auf ewig in der Version 2.5.3 verbleiben. Der Zeig 2.1.15, also ohne SUS würde jedoch weiterentwickelt werden (2.1.16, 2.1.17) usw.
-> ein Update macht damit grundsätzlich keinen Sinn sofern man nicht jedes Jahr SUS kaufen will.

Weiterhin sollte SUS doch dazu dienen, das Mediola dem Kunden bei Verbesserugnen der Plugins etwas Kohle abnehmen kann um die Entwickler zu bezahlen. Die Grundfunktionen sollte doch ohne SUS verbessert werden. Dazu zähle ich auch das Thema HTML Gerüst im Webseiten-Element. Das hat doch nichts mit einem Plugin zu tun und sollte somit ich im Zweig ohne SUS also in der Version 2.1.15 integriert sein.

Aber wir kommen vom Thema ab.

Gruß
Sweatchuck

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 486 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von Fonzo » 12.03.2019, 17:34

Sweatchuck hat geschrieben:
12.03.2019, 14:18
Aber wir kommen vom Thema ab.
Genau, grundsätzlich kann man das Dark Sky Widget in neueren NEO Versionen direkt nutzten ohne weitere Hard- oder Software, was Dein Thema zur NEO Version anbelangt habe ich dies in einem seperaten Thread Unterschiede neuere NEO Versionen beantwortet.

debianatoe
Beiträge: 475
Registriert: 05.12.2016, 19:04
Hat sich bedankt: 31 Mal
Danksagung erhalten: 4 Mal

Re: Wunderground Wetter mit einfachem HM-Skript holen

Beitrag von debianatoe » 12.03.2019, 18:12

postit hat geschrieben:
12.03.2019, 12:19
Ich kann leider nicht so gut scripten, ich kann nur bestehende Scripte anpassen. Mit der oben erwähnten Zeile komme ich leider nicht klar. Kann da vielleicht bei Gelegenheit mal jemand drauf schauen? Ich verzweifle fast, denke aber, es ist eine Kleinigkeit. Vielen Dank!
Hast Du denn an den regexp-Zeilen irgendetwas geändert?
Hast Du das Script mit copy&paste übertragen oder kann sich irgendwo ein Tippfehler eingeschlichen haben?
Für mich klingt das so, als wäre der Fehler eine Zeile tiefer, also in dieser Zeile:

Code: Alles auswählen

regexp "\"time\":(.*?)," $current dummy observation_time  ; # letzter update
Viele Grüße,
debianatoe

Antworten

Zurück zu „Projektvorstellungen“