Fehlt da in der folgenden Zeile etwas?debianatoe hat geschrieben: ↑09.03.2019, 13:29Ich nutze für DarkSky dieses TCL-Skript, um aktuelle Daten zu bekommen:Die entsprechenden Systemvariablen muß man angelegt haben. Die eigene APP-ID und die GPS-Daten des Wohnortes muß man an der markierten Stelle eintragen.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
Es ist auch sehr individuell, wie weit die nächste Station des jeweiligen Anbieters vom eigenen Wohnort entfernt ist.
Code: Alles auswählen
regexp ",\"currently\":{(.*?)},\"flags\":{" $input dummy current ; #get current observation
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)