Google Wetterserver down?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Henk
Beiträge: 115
Registriert: 17.06.2012, 16:07

Re: Google Wetterserver down?

Beitrag von Henk » 02.02.2013, 16:34

Danke für die schnelle Antwort.
Ich werde das gleich mal ausprobieren.

Ich hatte die Einträge aus meinem Script wieder rausgenommen da es nicht funktionierte.
Daher ist da nichts zu finden. :D

Gruß
Henk

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: Google Wetterserver down?

Beitrag von derrapf » 02.02.2013, 16:41

Hi Key0
Kev0 hat geschrieben: ich hab das Skript etwas abgeändert und leider werden die Variablen in der CCU nicht gesetzt, im LCD werden aber die aktuellen Werte angezeigt.
Vllt kann mir jemand helfen und mal ein Auge drauf werfen.
Der Code sieht so schlecht nicht aus.
Hast Du mal geprüft ob

Code: Alles auswählen

dom.GetObject('Wahrscheinliche Schneefallhöhe');""
usw.
Bei Dir ein Objekt liefert das nicht null ist?
Bei dom.GetObject muss man den Variablennamen nicht die Beschreibung der Variablen verwenden. Du hast die sicher nicht verwechselt?
Geh mal in der CCU in die Programme und probiere mal folgenden Code aus (ersetze varname) durch deine Strings die Du in dom.getObject verwendest:

Code: Alles auswählen

var myObject = dom.GetObject("Temperatur");
if (myObject)
{
WriteLine('Object ist gültig');
} 
else
{
  WriteLine('Object ungültig');
}
Wobei Du die ganzen Strings die Du in

Code: Alles auswählen

append rega_cmd "var c0 = dom.GetObject('....');"
verwendest mal durchprobieren kannst.

Wenn die funktionieren, dann muss Code eigentlich funktionieren.
Gruss Ralf

Henk
Beiträge: 115
Registriert: 17.06.2012, 16:07

Re: Google Wetterserver down?

Beitrag von Henk » 03.02.2013, 13:03

Hallo Ihr,

leider haut's mit der Umformung noch nicht so recht hin. :(
Ich habe den set-Befehl mal an vielen verschiedenen Stellen eingebaut und jede Variante getestet, leider ohne Erfolg.
Jetzt steht's wieder an Ralfs empfohlener Stelle mit dem Bezug auf conditions0, 1, 2 und 3.
Für mein Verständnis sollte sich das eher zb auf day0_text usw. beziehen.
Probiert habe ich das, aber auch hier ohne Erfolg.

Kann sich das vielleicht nochmal jemand anschauen.

Vielen Dank
Henk

Code: Alles auswählen

    #!/bin/tclsh

    load tclrega.so

    #
    # Read weather data
    #
    set url http://api.wunderground.com/api/9036febf6bf53427/forecast/lang:DL/q/germany/kalkar.xml
    exec /usr/bin/wget -q -O /usr/local/addons/wettervorhersage/wetterwunderground.xml $url

    set f [open "/usr/local/addons/wettervorhersage/wetterwunderground.xml"]
    set input [read $f]
    close $f


    #
    # goto section with forecast
    #
    regexp "<simpleforecast>(.*?)</simpleforecast>" $input dummy text  ; #get second forecast section
    regexp "<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>" $text -> day0 day1 day2 day3 ; #split days

    #day0
    regexp "<weekday>(.*?)</weekday>" $day0 dummy weekday0	; #get weekday
    regexp "<day>(.*?)</day>" $day0 dummy tag0 ; #get date day
    regexp "<month>(.*?)</month>" $day0 dummy month0 ; #get date month
    regexp "<year>(.*?)</year>" $day0 dummy year0 ; #get date year
    regexp "<high>(.*?)</high>" $day0 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max0  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day0 dummy temp  ; #get low values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min0  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day0 dummy conditions0  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day0 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain0  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day0 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow0  ; #get cm
    regexp "<icon>(.*?)</icon>" $day0 dummy icon0 ; #get icon
    regexp "<avewind>(.*)</avewind>" $day0 dummy wind ; #get avarage wind
    regexp "<kph>(.*?)</kph>" $wind dummy kph0 ;
    regexp "<dir>(.*?)</dir>" $wind dummy dir0 ;
    regexp "<degrees>(.*?)</degrees>" $wind dummy deg0 ;
	regexp "<avehumidity>(.*?)</avehumidity>" $day0 dummy hum0	; #get avarage humidity  

    #day1
    regexp "<weekday>(.*?)</weekday>" $day1 dummy weekday1	; #get weekday
    regexp "<day>(.*?)</day>" $day1 dummy tag1 ;
    regexp "<month>(.*?)</month>" $day1 dummy month1 ;
    regexp "<year>(.*?)</year>" $day1 dummy year1 ;
    regexp "<high>(.*?)</high>" $day1 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max1  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day1 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min1  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day1 dummy conditions1  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day1 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain1  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day1 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow1  ; #get cm
    regexp "<icon>(.*?)</icon>" $day1 dummy icon1 ; #get icon
    regexp "<avewind>(.*)</avewind>" $day1 dummy wind ; #get avarage wind
    regexp "<kph>(.*?)</kph>" $wind dummy kph1 ;
    regexp "<dir>(.*?)</dir>" $wind dummy dir1 ;
    regexp "<degrees>(.*?)</degrees>" $wind dummy  deg1 ;
	regexp "<avehumidity>(.*?)</avehumidity>" $day1 dummy hum1	; #get avarage humidity

    #day2
    regexp "<weekday>(.*?)</weekday>" $day2 dummy weekday2	; #get weekday
    regexp "<day>(.*?)</day>" $day2 dummy tag2 ;
    regexp "<month>(.*?)</month>" $day2 dummy month2 ;
    regexp "<year>(.*?)</year>" $day2 dummy year2 ;
    regexp "<high>(.*?)</high>" $day2 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max2  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day2 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min2  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day2 dummy conditions2  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day2 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain2  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day2 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow2  ; #get cm
    regexp "<icon>(.*?)</icon>" $day2 dummy icon2 ; #get icon
    regexp "<avewind>(.*)</avewind>" $day2 dummy wind ; #get avarage wind
    regexp "<kph>(.*?)</kph>" $wind dummy kph2 ;
    regexp "<dir>(.*?)</dir>" $wind dummy dir2 ;
    regexp "<degrees>(.*?)</degrees>" $wind dummy deg2 ;
	regexp "<avehumidity>(.*?)</avehumidity>" $day2 dummy hum2	; #get avarage humidity

    #day3
    regexp "<weekday>(.*?)</weekday>" $day3 dummy weekday3	; #get weekday
    regexp "<day>(.*?)</day>" $day3 dummy tag3 ;
    regexp "<month>(.*?)</month>" $day3 dummy month3 ;
    regexp "<year>(.*?)</year>" $day3 dummy year3 ;
    regexp "<high>(.*?)</high>" $day3 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy max3  ; #get deg Celsius
    regexp "<low>(.*?)</low>" $day3 dummy temp  ; #get high values
    regexp "<celsius>(.*?)</celsius>" $temp dummy min3  ; #get deg Celsius
    regexp "<conditions>(.*?)</conditions>" $day3 dummy conditions3  ; #get conditions
    regexp "<qpf_allday>(.*?)</qpf_allday>" $day3 dummy temp  ; #get rain
    regexp "<mm>(.*?)</mm>" $temp dummy rain3  ; #get mm
    regexp "<snow_allday>(.*?)</snow_allday>" $day3 dummy temp  ; #get snow
    regexp "<cm>(.*?)</cm>" $temp dummy snow3  ; #get cm
    regexp "<icon>(.*?)</icon>" $day3 dummy icon3 ; #get icon
    regexp "<avewind>(.*)</avewind>" $day3 dummy wind ; #get avarage wind values
    regexp "<kph>(.*?)</kph>" $wind dummy kph3 ;
    regexp "<dir>(.*?)</dir>" $wind dummy dir3 ;
    regexp "<degrees>(.*?)</degrees>" $wind dummy deg3 ;
	regexp "<avehumidity>(.*?)</avehumidity>" $day3 dummy hum3 ; #get avarage humidity



    set day0_text "$min0 bis $max0 °C $conditions0"
    set day1_text "$min1 bis $max1 °C $conditions1"
    set day2_text "$min2 bis $max2 °C $conditions2"
    set day3_text "$min3 bis $max3 °C $conditions3"
	set rain_0    "R: $rain0 mm, S: $snow0 cm"
	set rain_1    "R: $rain1 mm, S: $snow1 cm"
	set rain_2    "R: $rain2 mm, S: $snow2 cm"
	set rain_3    "R: $rain3 mm, S: $snow3 cm"
    set datum_0   "$weekday0, $tag0.$month0.$year0"
    set datum_1   "$weekday1, $tag1.$month1.$year1"
    set datum_2   "$weekday2, $tag2.$month2.$year2"
    set datum_3   "$weekday3, $tag3.$month3.$year3"
    set wind_0    "$kph0 km/h aus $dir0"
    set wind_1    "$kph1 km/h aus $dir1"
    set wind_2    "$kph2 km/h aus $dir2"
    set wind_3    "$kph3 km/h aus $dir3"
    set icon_0	  "$icon0"
    set icon_1    "$icon1"
    set icon_2    "$icon2"
    set icon_3	  "$icon3"

    set conditions0          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $conditions0]
    set conditions1          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $conditions1]
    set conditions2          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $conditions2]
    set conditions3          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $conditions3]


    #
    # set ReGaHss variables
    #
    set rega_cmd ""
    append rega_cmd "var w0 = dom.GetObject('Vor Wetter Heute');"
    append rega_cmd "var w1 = dom.GetObject('Vor Wetter in 1 Tag');"
    append rega_cmd "var w2 = dom.GetObject('Vor Wetter in 2 Tagen');"
    append rega_cmd "var w3 = dom.GetObject('Vor Wetter in 3 Tagen');"
    append rega_cmd "var w4 = dom.GetObject('Vor Datum Heute');"
    append rega_cmd "var w5 = dom.GetObject('Vor Datum in 1 Tag');"
    append rega_cmd "var w6 = dom.GetObject('Vor Datum in 2 Tagen');"
    append rega_cmd "var w7 = dom.GetObject('Vor Datum in 3 Tagen');"
    append rega_cmd "var w8 = dom.GetObject('Vor Wind Heute');"
    append rega_cmd "var w9 = dom.GetObject('Vor Wind in 1 Tag');"
    append rega_cmd "var w10 = dom.GetObject('Vor Wind in 2 Tagen');"
    append rega_cmd "var w11 = dom.GetObject('Vor Wind in 3 Tagen');"
    append rega_cmd "var w12 = dom.GetObject('Vor Icon Heute');"
    append rega_cmd "var w13 = dom.GetObject('Vor Icon in 1 Tag');"
    append rega_cmd "var w14 = dom.GetObject('Vor Icon in 2 Tagen');"
    append rega_cmd "var w15 = dom.GetObject('Vor Icon in 3 Tagen');"
	append rega_cmd "var w16 = dom.GetObject('Vor Rain Heute');"
	append rega_cmd "var w17 = dom.GetObject('Vor Rain 1 Tag');"
	append rega_cmd "var w18 = dom.GetObject('Vor Rain 2 Tage');"
	append rega_cmd "var w19 = dom.GetObject('Vor Rain 3 Tage');"
    append rega_cmd "w0.State('$day0_text');"
    append rega_cmd "w1.State('$day1_text');"
    append rega_cmd "w2.State('$day2_text');"
    append rega_cmd "w3.State('$day3_text');"
    append rega_cmd "w4.State('$datum_0');"
    append rega_cmd "w5.State('$datum_1');"
    append rega_cmd "w6.State('$datum_2');"
    append rega_cmd "w7.State('$datum_3');"
    append rega_cmd "w8.State('$wind_0');"
    append rega_cmd "w9.State('$wind_1');"
    append rega_cmd "w10.State('$wind_2');"
    append rega_cmd "w11.State('$wind_3');"
    append rega_cmd "w12.State('$icon_0');"
    append rega_cmd "w13.State('$icon_1');"
    append rega_cmd "w14.State('$icon_2');"
    append rega_cmd "w15.State('$icon_3');"
    append rega_cmd "w16.State('$rain_0');"
    append rega_cmd "w17.State('$rain_1');"
    append rega_cmd "w18.State('$rain_2');"
    append rega_cmd "w19.State('$rain_3');"
    rega_script $rega_cmd

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: Google Wetterserver down?

Beitrag von derrapf » 03.02.2013, 14:33

Hallo Henk
Henk hat geschrieben: Kann sich das vielleicht nochmal jemand anschauen.
Naja. Du musst halt schon die richtigen Variablen setzen.
Aus condition0 ermittelst Du zum Beispiel day0_text.
Und day0_text schreibst du nachher in die variable w0:

Code: Alles auswählen

append rega_cmd "w0.State('$day0_text');"


Da nützt es natürlich nichts, wenn Du nach! der bestimmtung von day0_text
condition0 aendert. Da ist der Zug schon lang abgefahren.

Du musst in den "string map" Kommandos natürlich die Variablen verwenden die Du nachher auch
in den "append rega_cmd" Ausdrücken verwendest.
Also $day*_text, datum_*, wind_*, icon_ und rain_*
(je nachdem welche Umlaute enthalten können)

Gruss Ralf

Henk
Beiträge: 115
Registriert: 17.06.2012, 16:07

Re: Google Wetterserver down?

Beitrag von Henk » 03.02.2013, 18:18

Hallo Ralf,

ich hoffe ich nerve nicht, aber irgendwie bin ich zu blöd. :shock:
Habe noch was experimentiert, ohne Erfolg

Code: Alles auswählen

    set day0_0text "$min0 bis $max0 °C $conditions0"
    set day0_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day0_0text]
Zum Verständnis:
1. wird day0_0text mit $min0 bis $max0 °C $conditions0 gefüllt Inhalt = 4 bis 7 °C Regen möglich
2. holt $day0_0text den Inhalt und mapped die Umlaute usw.
3. set day0_text übergibt den gemappten Inhalt und wird dann an w0 unter set rega_cmd weitergegeben.

Das sehe ich doch soweit richtig, oder?

Noch einmal der Auszug aus dem Script

Code: Alles auswählen

    set day0_0text "$min0 bis $max0 °C $conditions0"
    set day1_1text "$min1 bis $max1 °C $conditions1"
    set day2_2text "$min2 bis $max2 °C $conditions2"
    set day3_3text "$min3 bis $max3 °C $conditions3"
	set rain_0    "R: $rain0 mm, S: $snow0 cm"
	set rain_1    "R: $rain1 mm, S: $snow1 cm"
	set rain_2    "R: $rain2 mm, S: $snow2 cm"
	set rain_3    "R: $rain3 mm, S: $snow3 cm"
    set datum_0   "$weekday0, $tag0.$month0.$year0"
    set datum_1   "$weekday1, $tag1.$month1.$year1"
    set datum_2   "$weekday2, $tag2.$month2.$year2"
    set datum_3   "$weekday3, $tag3.$month3.$year3"
    set wind_0    "$kph0 km/h aus $dir0"
    set wind_1    "$kph1 km/h aus $dir1"
    set wind_2    "$kph2 km/h aus $dir2"
    set wind_3    "$kph3 km/h aus $dir3"
    set icon_0	  "$icon0"
    set icon_1    "$icon1"
    set icon_2    "$icon2"
    set icon_3	  "$icon3"

    set day0_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day0_0text]
    set day1_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day1_1text]
    set day2_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day2_2text]
    set day3_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day3_3text]


    #
    # set ReGaHss variables
    #
    set rega_cmd ""
    append rega_cmd "var w0 = dom.GetObject('Vor Wetter Heute');"
    append rega_cmd "var w1 = dom.GetObject('Vor Wetter in 1 Tag');"
    append rega_cmd "var w2 = dom.GetObject('Vor Wetter in 2 Tagen');"
    append rega_cmd "var w3 = dom.GetObject('Vor Wetter in 3 Tagen');"
    append rega_cmd "var w4 = dom.GetObject('Vor Datum Heute');"
    append rega_cmd "var w5 = dom.GetObject('Vor Datum in 1 Tag');"
    append rega_cmd "var w6 = dom.GetObject('Vor Datum in 2 Tagen');"
    append rega_cmd "var w7 = dom.GetObject('Vor Datum in 3 Tagen');"
    append rega_cmd "var w8 = dom.GetObject('Vor Wind Heute');"
    append rega_cmd "var w9 = dom.GetObject('Vor Wind in 1 Tag');"
    append rega_cmd "var w10 = dom.GetObject('Vor Wind in 2 Tagen');"
    append rega_cmd "var w11 = dom.GetObject('Vor Wind in 3 Tagen');"
    append rega_cmd "var w12 = dom.GetObject('Vor Icon Heute');"
    append rega_cmd "var w13 = dom.GetObject('Vor Icon in 1 Tag');"
    append rega_cmd "var w14 = dom.GetObject('Vor Icon in 2 Tagen');"
    append rega_cmd "var w15 = dom.GetObject('Vor Icon in 3 Tagen');"
	append rega_cmd "var w16 = dom.GetObject('Vor Rain Heute');"
	append rega_cmd "var w17 = dom.GetObject('Vor Rain 1 Tag');"
	append rega_cmd "var w18 = dom.GetObject('Vor Rain 2 Tage');"
	append rega_cmd "var w19 = dom.GetObject('Vor Rain 3 Tage');"
    append rega_cmd "w0.State('$day0_text');"
    append rega_cmd "w1.State('$day1_text');"
    append rega_cmd "w2.State('$day2_text');"
    append rega_cmd "w3.State('$day3_text');"
    append rega_cmd "w4.State('$datum_0');"
    append rega_cmd "w5.State('$datum_1');"
    append rega_cmd "w6.State('$datum_2');"
    append rega_cmd "w7.State('$datum_3');"
    append rega_cmd "w8.State('$wind_0');"
    append rega_cmd "w9.State('$wind_1');"
    append rega_cmd "w10.State('$wind_2');"
    append rega_cmd "w11.State('$wind_3');"
    append rega_cmd "w12.State('$icon_0');"
    append rega_cmd "w13.State('$icon_1');"
    append rega_cmd "w14.State('$icon_2');"
    append rega_cmd "w15.State('$icon_3');"
    append rega_cmd "w16.State('$rain_0');"
    append rega_cmd "w17.State('$rain_1');"
    append rega_cmd "w18.State('$rain_2');"
    append rega_cmd "w19.State('$rain_3');"
    rega_script $rega_cmd
Gruß
Henk

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: Google Wetterserver down?

Beitrag von derrapf » 03.02.2013, 18:58

Hallo Henk
Dein Script funktioniert.
Ich habe mir jetzt mal die Mühe gemacht und es als tcl Datei auf die CCU ge-ftp't und dort gestartet. Ich habe zusätzlich noch die day* Variablen ausgegeben.
Ergebnis:

Code: Alles auswählen

/usr/local/addons/exosite # tclsh test.tcl
4 bis 7 °C Regen möglich
3 bis 9 °C Regen
0 bis 7 °C Regen möglich
-1 bis 6 °C Regen möglich
Dein funktionierendes Script sieht so aus:

Code: Alles auswählen

        #!/bin/tclsh

        load tclrega.so

        #
        # Read weather data
        #
        set url http://api.wunderground.com/api/9036febf6bf53427/forecast/lang:DL/q/germany/kalkar.xml
        exec /usr/bin/wget -q -O /usr/local/addons/wettervorhersage/wetterwunderground.xml $url

        set f [open "/usr/local/addons/wettervorhersage/wetterwunderground.xml"]
        set input [read $f]
        close $f


        #
        # goto section with forecast
        #
        regexp "<simpleforecast>(.*?)</simpleforecast>" $input dummy text  ; #get second forecast section
        regexp "<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>.*?<forecastday>(.*?)</forecastday>" $text -> day0 day1 day2 day3 ; #split days

        #day0
        regexp "<weekday>(.*?)</weekday>" $day0 dummy weekday0   ; #get weekday
        regexp "<day>(.*?)</day>" $day0 dummy tag0 ; #get date day
        regexp "<month>(.*?)</month>" $day0 dummy month0 ; #get date month
        regexp "<year>(.*?)</year>" $day0 dummy year0 ; #get date year
        regexp "<high>(.*?)</high>" $day0 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy max0  ; #get deg Celsius
        regexp "<low>(.*?)</low>" $day0 dummy temp  ; #get low values
        regexp "<celsius>(.*?)</celsius>" $temp dummy min0  ; #get deg Celsius
        regexp "<conditions>(.*?)</conditions>" $day0 dummy conditions0  ; #get conditions
        regexp "<qpf_allday>(.*?)</qpf_allday>" $day0 dummy temp  ; #get rain
        regexp "<mm>(.*?)</mm>" $temp dummy rain0  ; #get mm
        regexp "<snow_allday>(.*?)</snow_allday>" $day0 dummy temp  ; #get snow
        regexp "<cm>(.*?)</cm>" $temp dummy snow0  ; #get cm
        regexp "<icon>(.*?)</icon>" $day0 dummy icon0 ; #get icon
        regexp "<avewind>(.*)</avewind>" $day0 dummy wind ; #get avarage wind
        regexp "<kph>(.*?)</kph>" $wind dummy kph0 ;
        regexp "<dir>(.*?)</dir>" $wind dummy dir0 ;
        regexp "<degrees>(.*?)</degrees>" $wind dummy deg0 ;
       regexp "<avehumidity>(.*?)</avehumidity>" $day0 dummy hum0   ; #get avarage humidity 

        #day1
        regexp "<weekday>(.*?)</weekday>" $day1 dummy weekday1   ; #get weekday
        regexp "<day>(.*?)</day>" $day1 dummy tag1 ;
        regexp "<month>(.*?)</month>" $day1 dummy month1 ;
        regexp "<year>(.*?)</year>" $day1 dummy year1 ;
        regexp "<high>(.*?)</high>" $day1 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy max1  ; #get deg Celsius
        regexp "<low>(.*?)</low>" $day1 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy min1  ; #get deg Celsius
        regexp "<conditions>(.*?)</conditions>" $day1 dummy conditions1  ; #get conditions
        regexp "<qpf_allday>(.*?)</qpf_allday>" $day1 dummy temp  ; #get rain
        regexp "<mm>(.*?)</mm>" $temp dummy rain1  ; #get mm
        regexp "<snow_allday>(.*?)</snow_allday>" $day1 dummy temp  ; #get snow
        regexp "<cm>(.*?)</cm>" $temp dummy snow1  ; #get cm
        regexp "<icon>(.*?)</icon>" $day1 dummy icon1 ; #get icon
        regexp "<avewind>(.*)</avewind>" $day1 dummy wind ; #get avarage wind
        regexp "<kph>(.*?)</kph>" $wind dummy kph1 ;
        regexp "<dir>(.*?)</dir>" $wind dummy dir1 ;
        regexp "<degrees>(.*?)</degrees>" $wind dummy  deg1 ;
       regexp "<avehumidity>(.*?)</avehumidity>" $day1 dummy hum1   ; #get avarage humidity

        #day2
        regexp "<weekday>(.*?)</weekday>" $day2 dummy weekday2   ; #get weekday
        regexp "<day>(.*?)</day>" $day2 dummy tag2 ;
        regexp "<month>(.*?)</month>" $day2 dummy month2 ;
        regexp "<year>(.*?)</year>" $day2 dummy year2 ;
        regexp "<high>(.*?)</high>" $day2 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy max2  ; #get deg Celsius
        regexp "<low>(.*?)</low>" $day2 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy min2  ; #get deg Celsius
        regexp "<conditions>(.*?)</conditions>" $day2 dummy conditions2  ; #get conditions
        regexp "<qpf_allday>(.*?)</qpf_allday>" $day2 dummy temp  ; #get rain
        regexp "<mm>(.*?)</mm>" $temp dummy rain2  ; #get mm
        regexp "<snow_allday>(.*?)</snow_allday>" $day2 dummy temp  ; #get snow
        regexp "<cm>(.*?)</cm>" $temp dummy snow2  ; #get cm
        regexp "<icon>(.*?)</icon>" $day2 dummy icon2 ; #get icon
        regexp "<avewind>(.*)</avewind>" $day2 dummy wind ; #get avarage wind
        regexp "<kph>(.*?)</kph>" $wind dummy kph2 ;
        regexp "<dir>(.*?)</dir>" $wind dummy dir2 ;
        regexp "<degrees>(.*?)</degrees>" $wind dummy deg2 ;
       regexp "<avehumidity>(.*?)</avehumidity>" $day2 dummy hum2   ; #get avarage humidity

        #day3
        regexp "<weekday>(.*?)</weekday>" $day3 dummy weekday3   ; #get weekday
        regexp "<day>(.*?)</day>" $day3 dummy tag3 ;
        regexp "<month>(.*?)</month>" $day3 dummy month3 ;
        regexp "<year>(.*?)</year>" $day3 dummy year3 ;
        regexp "<high>(.*?)</high>" $day3 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy max3  ; #get deg Celsius
        regexp "<low>(.*?)</low>" $day3 dummy temp  ; #get high values
        regexp "<celsius>(.*?)</celsius>" $temp dummy min3  ; #get deg Celsius
        regexp "<conditions>(.*?)</conditions>" $day3 dummy conditions3  ; #get conditions
        regexp "<qpf_allday>(.*?)</qpf_allday>" $day3 dummy temp  ; #get rain
        regexp "<mm>(.*?)</mm>" $temp dummy rain3  ; #get mm
        regexp "<snow_allday>(.*?)</snow_allday>" $day3 dummy temp  ; #get snow
        regexp "<cm>(.*?)</cm>" $temp dummy snow3  ; #get cm
        regexp "<icon>(.*?)</icon>" $day3 dummy icon3 ; #get icon
        regexp "<avewind>(.*)</avewind>" $day3 dummy wind ; #get avarage wind values
        regexp "<kph>(.*?)</kph>" $wind dummy kph3 ;
        regexp "<dir>(.*?)</dir>" $wind dummy dir3 ;
        regexp "<degrees>(.*?)</degrees>" $wind dummy deg3 ;
       regexp "<avehumidity>(.*?)</avehumidity>" $day3 dummy hum3 ; #get avarage humidity



        set day0_text "$min0 bis $max0 °C $conditions0"
        set day1_text "$min1 bis $max1 °C $conditions1"
        set day2_text "$min2 bis $max2 °C $conditions2"
        set day3_text "$min3 bis $max3 °C $conditions3"
       set rain_0    "R: $rain0 mm, S: $snow0 cm"
       set rain_1    "R: $rain1 mm, S: $snow1 cm"
       set rain_2    "R: $rain2 mm, S: $snow2 cm"
       set rain_3    "R: $rain3 mm, S: $snow3 cm"
        set datum_0   "$weekday0, $tag0.$month0.$year0"
        set datum_1   "$weekday1, $tag1.$month1.$year1"
        set datum_2   "$weekday2, $tag2.$month2.$year2"
        set datum_3   "$weekday3, $tag3.$month3.$year3"
        set wind_0    "$kph0 km/h aus $dir0"
        set wind_1    "$kph1 km/h aus $dir1"
        set wind_2    "$kph2 km/h aus $dir2"
        set wind_3    "$kph3 km/h aus $dir3"
        set icon_0     "$icon0"
        set icon_1    "$icon1"
        set icon_2    "$icon2"
        set icon_3     "$icon3"

        set day0_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day0_text]
        set day1_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day1_text]
        set day2_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day2_text]
        set day3_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day3_text]

puts $day0_text
puts $day1_text
puts $day2_text
puts $day3_text

        #
        # set ReGaHss variables
        #
        set rega_cmd ""
        append rega_cmd "var w0 = dom.GetObject('Vor Wetter Heute');"
        append rega_cmd "var w1 = dom.GetObject('Vor Wetter in 1 Tag');"
        append rega_cmd "var w2 = dom.GetObject('Vor Wetter in 2 Tagen');"
        append rega_cmd "var w3 = dom.GetObject('Vor Wetter in 3 Tagen');"
        append rega_cmd "var w4 = dom.GetObject('Vor Datum Heute');"
        append rega_cmd "var w5 = dom.GetObject('Vor Datum in 1 Tag');"
        append rega_cmd "var w6 = dom.GetObject('Vor Datum in 2 Tagen');"
        append rega_cmd "var w7 = dom.GetObject('Vor Datum in 3 Tagen');"
        append rega_cmd "var w8 = dom.GetObject('Vor Wind Heute');"
        append rega_cmd "var w9 = dom.GetObject('Vor Wind in 1 Tag');"
        append rega_cmd "var w10 = dom.GetObject('Vor Wind in 2 Tagen');"
        append rega_cmd "var w11 = dom.GetObject('Vor Wind in 3 Tagen');"
        append rega_cmd "var w12 = dom.GetObject('Vor Icon Heute');"
        append rega_cmd "var w13 = dom.GetObject('Vor Icon in 1 Tag');"
        append rega_cmd "var w14 = dom.GetObject('Vor Icon in 2 Tagen');"
        append rega_cmd "var w15 = dom.GetObject('Vor Icon in 3 Tagen');"
        append rega_cmd "var w16 = dom.GetObject('Vor Rain Heute');"
        append rega_cmd "var w17 = dom.GetObject('Vor Rain 1 Tag');"
        append rega_cmd "var w18 = dom.GetObject('Vor Rain 2 Tage');"
        append rega_cmd "var w19 = dom.GetObject('Vor Rain 3 Tage');"
        
        append rega_cmd "w0.State('$day0_text');"
        append rega_cmd "w1.State('$day1_text');"
        append rega_cmd "w2.State('$day2_text');"
        append rega_cmd "w3.State('$day3_text');"
        append rega_cmd "w4.State('$datum_0');"
        append rega_cmd "w5.State('$datum_1');"
        append rega_cmd "w6.State('$datum_2');"
        append rega_cmd "w7.State('$datum_3');"
        append rega_cmd "w8.State('$wind_0');"
        append rega_cmd "w9.State('$wind_1');"
        append rega_cmd "w10.State('$wind_2');"
        append rega_cmd "w11.State('$wind_3');"
        append rega_cmd "w12.State('$icon_0');"
        append rega_cmd "w13.State('$icon_1');"
        append rega_cmd "w14.State('$icon_2');"
        append rega_cmd "w15.State('$icon_3');"
        append rega_cmd "w16.State('$rain_0');"
        append rega_cmd "w17.State('$rain_1');"
        append rega_cmd "w18.State('$rain_2');"
        append rega_cmd "w19.State('$rain_3');"
        
        xrega_script $rega_cmd
Geht also grundsätzlich.
So.
Dann hab ich mir auch noch die Mühe gemacht und einer Deiner Systemvariablen in der CCU angelegt.
Auch hier das richtige Ergbnis:
Bild

Das einzige was jetzt noch sein kann ist, dass Du etwa das gleiche Problem hast wie der Kollege der vor dir gepostet hat: Bist Du sicher, dass deine Variablen auch so heissen wie Du sie in den dom.getObject Ausdrücken angegeben hast?

Gruss Ralf

Henk
Beiträge: 115
Registriert: 17.06.2012, 16:07

Re: Google Wetterserver down?

Beitrag von Henk » 03.02.2013, 19:49

Hallo Ralf,

vielen vielen Dank für deine ganzen Bemühungen!!!

Wenn ich das jetzt richtig sehe hast du zusätzlich nur das hier eingefügt:

Code: Alles auswählen

	puts $day0_text
	puts $day1_text
	puts $day2_text
	puts $day3_text
Auch das bringt keinen Erfolg.

Dann habe ich dein Script hochgeladen mit dem Resultat, dass es garnicht ausgeführt wird.
Beseitige ich das x bei xrega_script $rega_cmd in der letzten Zeile wird es wieder ausgeführt.
Aber die Umformung geht nicht.

Die Variablen sollten passen, da sie ja gefüllt werden. Ich werde aber dennoch morgen alles löschen und neu anlegen.
Das hatte ich auch schon.

Gruß
Henk

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: Google Wetterserver down?

Beitrag von derrapf » 03.02.2013, 20:10

Hallo Henk
Wenn ich das jetzt richtig sehe hast du zusätzlich nur das hier eingefügt:
Genau!
Auch das bringt keinen Erfolg.
Was heisst das genau?
Dann habe ich dein Script hochgeladen mit dem Resultat, dass es garnicht ausgeführt wird.
Wie hast Du das wohin hochgeladen?
Beseitige ich das x bei xrega_script $rega_cmd in der letzten Zeile wird es wieder ausgeführt.
Das x ist wol irgendwie aus versehen beim Posten des Artikels reingerutscht. Das gehört natürlich nicht
dahin.
Aber die Umformung geht nicht.
Woher weisst Du das? Hast Du das Script direkt auf der CCu ausprobiert und die Ausgaben die ich eingebaut habe angesehen?

Wie testest Du eigenlich?
Die Frage ist doch:Was genau geht nicht bei Dir? Wird das Script nicht ausgeführt, oder wird es ausgeführt und funktioniert es bei Dir nicht?
Also ich gehe eigentlich davon aus, dass es bei Dir gar nicht erst gestartet wird, oder die Systemvariablen nicht beschrieben werden.

Du musst jetzt systematisch vorgehen.
Als erstes mal das Script direkt auf der CCU ausführen.
Dazu besorgst Du Dir irgend einen Telnet Client wie zum Beispiel den "Putty" und loggst Dich auf der CCU ein.
Dann wechselst Du in das Verzeichnis wo das TCL Script liegt.
Dort gibst Du ein

Code: Alles auswählen

tclsh name_deines_scripts.tcl
Dann solltest Du die Ausgaben der day* Variablen sehen. Wenn die OK sind dann stimmt erstmal die Umwandlung.
Jetzt schaust Du mal in die CCU und prüfst die Systemvariablen. Haben die jetzt den richtigen Wert, dann wurde bisher dein TCL-Script einfach nicht
gestartet.
Wenn Deine Variablen nicht den Wert haben der auf der Shell ausgegeben wurde, dann stimmt was den rega_cmd Ausdücken nicht.
Prüf das Script also erstmal auf der Shell.
Dann sehen wir weiter.

Gruss Ralf

Henk
Beiträge: 115
Registriert: 17.06.2012, 16:07

Re: Google Wetterserver down?

Beitrag von Henk » 03.02.2013, 20:52

Tss siehe da in der Shell wird der richtige Wert angezeigt.

Schaue ich in die WEBUI steht der falsche Wert da.
Zur Sicherheit habe ich die erste Varible gelöscht und neu angelegt, um zu schauen ob sie mit einem Wert gefüllt wird.
Das wird sie, aber wieder ohne äüö usw.

So'n Kram... :D

Gruß
Henk

derrapf
Beiträge: 815
Registriert: 17.12.2012, 22:29

Re: Google Wetterserver down?

Beitrag von derrapf » 03.02.2013, 21:08

Hi Henk
Irgendwas stimmt hier nicht. Ich hab das doch auch gemacht und da ging es.
Wenn ich den Code mal auf die erste Variable reduziere, dann sieht der so aus

Code: Alles auswählen

...
        set day0_text          [string map {"ü" "ü" "ö" "ö" "°" "°"}  $day0_text]
         puts $day0_text
         
          #
            # set ReGaHss variables
            #
            set rega_cmd ""
            append rega_cmd "var w0 = dom.GetObject('Vor Wetter Heute');"
            append rega_cmd "w0.State('$day0_text');"
           
            rega_script $rega_cmd
D.h. Die Ausgabe ist, wie Du sagst richtig. Also ist day0_text richtig gesetzt.
Als nächsten Schritt holst Du Dir die Systemvariable "Vor Wetter Heute" -> w0
Und dann setzt Du in w0 den Wert von day0_text.
Das kann! eigentlich nicht falsch sein.

Bleibt eigentlich nur ein Problem bei der Variablendefinition. Wie sieht die denn bei Dir aus?
Kannst Du mal ein Bild posten?
Gruss Ralf

Antworten

Zurück zu „HomeMatic allgemein“