Hauptmenü

mein "eigenes" Wetter

Begonnen von ernst1024, 30 März 2016, 16:17:37

Vorheriges Thema - Nächstes Thema

ernst1024

Edit 03.04.2016 12:45 Lösung am Ende dieses Beitrags

Hallo, (bin jetzt nicht sicher ob das ins Anfänger gehört?)

eingesessene FHEMler werden die Hände über dem Kopf zusammen schlagen, aber ich habe mir mein "eigenes" Wetter geschrieben.
Ausgehend davon dass ich sowieso was in der Art mit dem ESP-8266 machen will, und letztens yahoo Wetter wieder Probleme macht (machte?) habe ich mich einfach mal drangesetzt und das ist dabei rausgekommen.

fhem.cfg (auszug):


define myWeather dummy
attr myWeather userReadings wind_kph,weather,temp_c,pressure_mb,relative_humidity,local_time_rfc822

define BonnJson FileLog ./BonnJson.log wind_kph|weather|temp_c|pressure_mb|relative_humidity|local_time_rfc822
attr BonnJson logtype text

define SVG_BonnJson_1 SVG BonnJson:SVG_BonnJson_1:CURRENT

define t_myWeather at +*00:10:00 {system("/opt/fhem/./parse.sh")}


parse.sh:

#!/bin/sh
wget http://api.wunderground.com/api/xxxxxxxxxxxxx/conditions/forecast/q/Germany/Bonn.json
/opt/fhem/./parse


wobei "xxxxxxxx" mein passwort für Wunderground ist und "parse" ein C Programm ist welches die Daten aus Bonn.json aufbereitet und wahlweise in ein file schreibt (momentan BonnJson.log) oder auch auf der Konsole ausgibt.

Die Form der Aufbereitung kann ich ganz schnell ändern und hängt letztlich davon ab wie ich die neuen Daten nach FHEM bekomme.
Da hänge ich zur Zeit ein wenig und vielleicht kann mir hierbei jemand auf die Sprüge helfen wie das am einfachsten zu machen ist.

Versucht habe ich (BonnJson.log version 1)


perl /opt/fhem/fhem.pl 7072 mypassword "setreading  myWeather  local_time_rfc822 : Wed0 30 Mar 2016 14:35:42 +0200"
perl /opt/fhem/fhem.pl 7072 mypassword "setreading  myWeather  weather   Mostly Cloudy"
perl /opt/fhem/fhem.pl 7072 mypassword "setreading  myWeather  temp_c  13"
perl /opt/fhem/fhem.pl 7072 mypassword "setreading  myWeather  relative_humidity   51"
perl /opt/fhem/fhem.pl 7072 mypassword "setreading  myWeather  wind_kph  26"
perl /opt/fhem/fhem.pl 7072 mypassword "setreading  myWeather  pressure_mb   1011"


Ausgabe wie gesagt entweder ins file oder direkt auf die console. Wenn ich im file die Daten kopiere und dann in putty einfüge, werden die readings aktualisiert, aber halt nicht automatisch.
Das gleiche direkt auf die Konsole ausgegeben funktioniert nicht?

Zweite Version, daher auch BonnJson.LOG quasi als dummy log:


0 local_time_rfc822 : Wed0 30 Mar 2016 14:35:42 +0200
1 weather   Mostly Cloudy
2 temp_c  13
3 relative_humidity   51
4 wind_kph  26
5 pressure_mb   1011

Wenn ich jetzt: Write .gplot file Show preprocessed input anklicke werden mir diese ganau wie oben angezeigt. Also "da" sind sie schonmal die Daten, aber noch nicht aktualisiert.

OKAY: lange Rede, wie mache ich das am besten. Bei der Flexilibität von FHEM gibt es doch bestimmt zig Möglichkeiten dies zu realisieren? Werde natürlich weiter experimentieren.

Danke fürs lesen.


Die Lösung sieht nun so aus:

Auszug aus FHEM.cfg


define myWeather dummy
attr myWeather group Weather
attr myWeather room meinWetter
attr myWeather stateFormat {sprintf("%s: %s <br><br>T: %.1f C  H: %.0f  P: %.0f hPa  W: %.0f km/h <br> <br> %s <br><br>%s<br><br>%s <br><br>%s<br><br>%s <br><br>%s",ReadingsVal($name,"local_time_rfc822",0),ReadingsVal($name,"weather",0),ReadingsVal($name,"temp_c",0),ReadingsVal($name,"relative_humidity",0),ReadingsVal($name,"pressure_mb",0),ReadingsVal($name,"wind_kph",0),ReadingsVal($name,"periode1",0),ReadingsVal($name,"periode2",0),ReadingsVal($name,"periode3",0),ReadingsVal($name,"periode4",0),ReadingsVal($name,"periode5",0),ReadingsVal($name,"periode6",0))}
attr myWeather userReadings wind_kph,weather,temp_c,pressure_mb,relative_humidity,

define at_myW_read at +*00:10:00 {system("/opt/fhem/./myWread.sh")}
attr at_myW_read room meinWetter

define at_myW_upd at +*00:10:00 include BonnJson.upd
attr at_myW_upd room meinWetter



Ablauf: per at_myW_read wird nachfolgendes script (myWread.sh) gestartet:


#!/bin/sh
rm /opt/fhem/Bonn.json
wget http://api.wunderground.com/api/dxxxxxxxxxxxxxxx6/conditions/forecast/q/Germany/Bonn.json
/opt/fhem/./parser


das script holt sich die neuesten Daten von wunderground und speichert sie unter Bonn.json (unter dem Namen "liefert" wunderground").
Anschliessend bereitet parser die Daten für FHEM auf und speichert sie in:

/opt/fhem/BonnJson.upd


setreading myWeather local_time_rfc822 Sun0 03 Apr 2016 12:23:20 +0200
setreading myWeather weather   Mostly Cloudy
setreading myWeather temp_c  17
setreading myWeather relative_humidity   59
setreading myWeather wind_kph  17
setreading myWeather pressure_mb   1012
setreading myWeather dewpoint_c  9
setreading myWeather periode1 Sunday: Mostly cloudy this morning. A few showers developing during the afternoon. Warm. High 21C. Winds S at 15 to 25 km/h. Chance of rain 30%.
setreading myWeather periode2 Sunday Night: Considerable cloudiness with occasional rain showers. Low 12C. Winds SSE at 15 to 25 km/h. Chance of rain 50%.
setreading myWeather periode3 Monday: Intervals of clouds and sunshine in the morning with more clouds for later in the day. Warm. High 18C. Winds SSW at 15 to 30 km/h.
setreading myWeather periode4 Monday Night: Considerable cloudiness. Occasional rain showers later at night. Low near 10C. Winds SE at 10 to 15 km/h. Chance of rain 50%.
setreading myWeather periode5 Tuesday: Rain showers in the morning will evolve into a more steady rain in the afternoon. High 17C. Winds SW at 15 to 25 km/h. Chance of rain 80%.
setreading myWeather periode6 Tuesday Night: Periods of rain. Low 8C. Winds W at 10 to 15 km/h. Chance of rain 80%. Rainfall near 6mm.
setreading myWeather periode7 Wednesday: Sunshine and clouds mixed. High 16C. Winds SW at 15 to 30 km/h.
setreading myWeather periode8 Wednesday Night: Cloudy with occasional rain showers. Low 6C. Winds SW at 15 to 25 km/h. Chance of rain 60%.


letztlich aktualisiert at_myW_upd die Daten und fertig :-)
Gruß Ernst

igami

Warum machst du das nicht über HTTPMOD wie die anderen, die wunderground verwenden?
Habe mir das vorgestern aufgrund des Yahoo Probelms auch aufgesetzt und brauche keinen Account dafür.
https://forum.fhem.de/index.php/topic,44681.msg431389.html#msg431389

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

ernst1024

Das hatte ich eine zeitlang. "temp_c" etc war kein Problem aber an der regex für die einzelnen period0 fcttext_metric bin ich gescheitert. Ich habe in meinem Post der Übersicht halber nicht alle readings gelistet. Werde mir den link aber trotzdem mal anschauen. Vielleicht sind das ja auch andere Daten als mit account?

"forecast":{
"txt_forecast": {
"date":"1:01 PM CEST",
"forecastday": [
{
"period":0,
"icon":"cloudy",
"icon_url":"http://icons.wxug.com/i/c/k/cloudy.gif",
"title":"Wednesday",
"fcttext":"Overcast. High 56F. Winds WSW at 10 to 20 mph.",
"fcttext_metric":"Generally cloudy. High 12C. Winds WSW at 15 to 25 km/h.",
"pop":"0"
}
,
{
"period":1,
"icon":"nt_chancerain",
"icon_url":"http://icons.wxug.com/i/c/k/nt_chancerain.gif",
"title":"Wednesday Night",
"fcttext":"Cloudy with occasional light rain...mainly this evening. Low 44F. Winds E at 5 to 10 mph. Chance of rain 40%.",
"fcttext_metric":"Cloudy. Periods of light rain early. Low 7C. Winds E at 10 to 15 km/h. Chance of rain 40%.",
"pop":"40"
}
,
{
"period":2,
Gruß Ernst

CoolTux

Bin gespannt wann die ersten Beschwerden über ein hängendes FHEM kommen.
Wehe dem die Seite ist mal nicht erreichbar oder klemmt etwas.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mahowi

Ich rufe das bei mir über das Modul JSONREADINGS ab mit API-Key.

   DEF        http://api.wunderground.com/api/[API KEY]/conditions/q/pws:IRENNERO7.json 600
   NAME       wu_conditions
   NR         82
   STATE      Temperatur: 7.9 °C
   TYPE       JSONREADINGS
   Url        http://api.wunderground.com/api/[API KEY]/conditions/q/pws:IRENNERO7.json


Damit gibt's dann diese Readings:
   Readings:
     2016-03-30 21:05:19   current_observation_UV 0
     2016-03-30 21:05:19   current_observation_dewpoint_c 4
     2016-03-30 21:05:19   current_observation_dewpoint_f 40
     2016-03-30 21:05:19   current_observation_dewpoint_string 40 F (4 C)
     2016-03-30 21:05:19   current_observation_display_location_city Rennerod
     2016-03-30 21:05:19   current_observation_display_location_country DL
     2016-03-30 21:05:19   current_observation_display_location_country_iso3166 DE
     2016-03-30 21:05:19   current_observation_display_location_elevation 513.00000000
     2016-03-30 21:05:19   current_observation_display_location_full Rennerod, Germany
     2016-03-30 21:05:19   current_observation_display_location_latitude 50.611107
     2016-03-30 21:05:19   current_observation_display_location_longitude 8.060561
     2016-03-30 21:05:19   current_observation_display_location_magic 45
     2016-03-30 21:05:19   current_observation_display_location_state
     2016-03-30 21:05:19   current_observation_display_location_state_name Germany
     2016-03-30 21:05:19   current_observation_display_location_wmo 10526
     2016-03-30 21:05:19   current_observation_display_location_zip 00000
     2016-03-20 20:08:07   current_observation_estimated_description These are estimated conditions. There are no weather stations nearby.
     2016-03-20 20:08:07   current_observation_estimated_estimated 1
     2016-03-30 21:05:19   current_observation_feelslike_c 8
     2016-03-30 21:05:19   current_observation_feelslike_f 46
     2016-03-30 21:05:19   current_observation_feelslike_string 46 F (8 C)
     2016-03-30 21:05:19   current_observation_forecast_url http://www.wunderground.com/global/stations/10526.html
     2016-03-30 21:05:19   current_observation_heat_index_c NA
     2016-03-30 21:05:19   current_observation_heat_index_f NA
     2016-03-30 21:05:19   current_observation_heat_index_string NA
     2016-03-30 21:05:19   current_observation_history_url http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=IRENNERO7
     2016-03-30 21:05:19   current_observation_icon rain
     2016-03-30 21:05:19   current_observation_icon_url http://icons.wxug.com/i/c/k/nt_rain.gif
     2016-03-30 21:05:19   current_observation_image_link http://www.wunderground.com
     2016-03-30 21:05:19   current_observation_image_title Weather Underground
     2016-03-30 21:05:19   current_observation_image_url http://icons.wxug.com/graphics/wu2/logo_130x80.png
     2016-03-30 21:05:19   current_observation_local_epoch 1459364719
     2016-03-30 21:05:19   current_observation_local_time_rfc822 Wed, 30 Mar 2016 21:05:19 +0200
     2016-03-30 21:05:19   current_observation_local_tz_long Europe/Berlin
     2016-03-30 21:05:19   current_observation_local_tz_offset +0200
     2016-03-30 21:05:19   current_observation_local_tz_short CEST
     2016-03-30 21:05:19   current_observation_nowcast
     2016-03-30 21:05:19   current_observation_ob_url http://www.wunderground.com/cgi-bin/findweather/getForecast?query=50.611107,8.060561
     2016-03-30 21:05:19   current_observation_observation_epoch 1459364562
     2016-03-30 21:05:19   current_observation_observation_location_city Mückenwiese, Rennerod
     2016-03-30 21:05:19   current_observation_observation_location_country DL
     2016-03-30 21:05:19   current_observation_observation_location_country_iso3166 DE
     2016-03-30 21:05:19   current_observation_observation_location_elevation 1624 ft
     2016-03-30 21:05:19   current_observation_observation_location_full Mückenwiese, Rennerod,
     2016-03-30 21:05:19   current_observation_observation_location_latitude 50.611107
     2016-03-30 21:05:19   current_observation_observation_location_longitude 8.060561
     2016-03-30 21:05:19   current_observation_observation_location_state
     2016-03-30 21:05:19   current_observation_observation_time Last Updated on March 30, 9:02 PM CEST
     2016-03-30 21:05:19   current_observation_observation_time_rfc822 Wed, 30 Mar 2016 21:02:42 +0200
     2016-03-30 21:05:19   current_observation_precip_1hr_in -999.00
     2016-03-30 21:05:19   current_observation_precip_1hr_metric  0
     2016-03-30 21:05:19   current_observation_precip_1hr_string -999.00 in ( 0 mm)
     2016-03-30 21:05:19   current_observation_precip_today_in -999.00
     2016-03-30 21:05:19   current_observation_precip_today_metric --
     2016-03-30 21:05:19   current_observation_precip_today_string -999.00 in (-25375 mm)
     2016-03-30 21:05:19   current_observation_pressure_in 29.86
     2016-03-30 21:05:19   current_observation_pressure_mb 1011
     2016-03-30 21:05:19   current_observation_pressure_trend +
     2016-03-30 21:05:19   current_observation_relative_humidity 77%
     2016-03-30 21:05:19   current_observation_solarradiation --
     2016-03-30 21:05:19   current_observation_station_id IRENNERO7
     2016-03-30 21:05:19   current_observation_temp_c 7.9
     2016-03-30 21:05:19   current_observation_temp_f 46.2
     2016-03-30 21:05:19   current_observation_temperature_string 46.2 F (7.9 C)
     2016-03-30 21:05:19   current_observation_visibility_km 10.0
     2016-03-30 21:05:19   current_observation_visibility_mi 6.2
     2016-03-30 21:05:19   current_observation_weather Light Rain
     2016-03-30 21:05:19   current_observation_wind_degrees -9999
     2016-03-30 21:05:19   current_observation_wind_dir North
     2016-03-30 21:05:19   current_observation_wind_gust_kph 0
     2016-03-30 21:05:19   current_observation_wind_gust_mph 0
     2016-03-30 21:05:19   current_observation_wind_kph 0
     2016-03-30 21:05:19   current_observation_wind_mph -9999
     2016-03-30 21:05:19   current_observation_wind_string Calm
     2016-03-30 21:05:19   current_observation_windchill_c 8
     2016-03-30 21:05:19   current_observation_windchill_f 46
     2016-03-30 21:05:19   current_observation_windchill_string 46 F (8 C)
     2016-02-11 05:23:17   response_error_description you must supply a key
     2016-02-11 05:23:17   response_error_type missingkey
     2016-03-30 21:05:19   response_features_conditions 1
     2016-03-30 21:05:19   response_termsofService http://www.wunderground.com/weather/api/d/terms.html
     2016-03-30 21:05:19   response_version 0.1


Das sollte mittlerweile auch mit HTTPMOD gehen, da dort JSON ja auch direkt ausgewertet wird. Ich bin allerdings noch nicht dazu gekommen, das umzustellen.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

ernst1024

Zitat von: CoolTux am 30 März 2016, 20:37:12
Bin gespannt wann die ersten Beschwerden über ein hängendes FHEM kommen.

Wer sollte sich beschweren und worüber? Ich könnte mich höchstens über mich selbst beschweren, aber eher beiße ich mir die Zunge ab und gehe ich zum Lachen in den Keller :-)

ZitatWehe dem die Seite ist mal nicht erreichbar oder klemmt etwas.

Dann passiert halt nix, genauso wie wenn yahoo nicht erreichbar ist oder wenn ich die Seite mit HTTMOD aufrufe.
Gruß Ernst

ernst1024

#6
@ igami @mahowi

Das mit dem Aufruf über HTTPMOD hatte ich auch eine zeit lang, ist mir aber zu unflexible. Ich habe es sogar noch auskommentiert in der cfg. Entweder musst du die regex für jedes reading definieren, oder mit extractALLJSON bekommst du halt alles, aber mit den readingsnamen die JSON vergibt.

Ich habe irgendwann genervt bei den regex für die Vorschau aufgegeben. Die erste habe ich noch geschafft (siehe reading6..) aber genau der gleiche Text taucht mehrmals auf, für jeweils eine andere Periode. Das habe ich dann nicht mehr isoliert bekommen.

Ausserdem kann ich das jetzt geschriebene in weiten Teilen für mein ESP-8266 Projekt verwenden, von daher sehe ich das als sportliche Übung.

Aber hat den keiner eine Idee wie ich die readings aktualisiert bekomme?

#? weather Underground

#define wug HTTPMOD http://api.wunderground.com/api/xxxxxxxxxxxxx/conditions/forecast/q/Germany/Bonn.json 600
#attr wug userattr reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex
#attr wug group Weather
#attr wug icon weather_cloudy
#attr wug reading1Name temperature
#attr wug reading1Regex "temp_c":([\-\d\.]+)
#attr wug reading2Name humidity
#attr wug reading2Regex "relative_humidity":"([\d]+)
#attr wug reading3Name pressure
#attr wug reading3Regex "pressure_mb":"([\d]+)
#attr wug reading4Name wind
#attr wug reading4Regex "wind_kph":([\d]+)
#attr wug reading5Name taupunkt
#attr wug reading5Regex "dewpoint_c":([\d]+)
#attr wug reading6Name forecast
#attr wug reading6Regex fcttext_metric":"([\s\"\a-z]+)([\{\s\"]+)([]a-z\"\:]+)
#attr wug requestHeader.* 1
#attr wug room IPhone,Wohnung
#attr wug stateFormat {sprintf("T: %.1f  °C  H: %.0f %  P: %.0f hPa  W: %.0f km/h  TP: %.1f  °C  <br><br>State: %s ", ReadingsVal($name,"temperature",0), ReadingsVal($name,"humidity",0),ReadingsVal($name,"pressure",0), ReadingsVal($name,"wind",0),ReadingsVal($name,"taupunkt",0),ReadingsVal($name,"forecast-1",0))}

#//#attr wug extractAllJSON 1
#//#attr wug stateFormat {sprintf("T: %.1f  C  H: %.0f %  P: %.0f hPa  W: %.0f km/h <br><br>%s<br> %s <br><br>%s<br> %s<br><br>%s<br> %s", ReadingsVal($name,"current_observation_temp_c",0), ReadingsVal($name,"current_observation_relative_humidity",0),ReadingsVal($name,"current_observation_pressure_mb",0), ReadingsVal($name,"current_observation_wind_kph",0),ReadingsVal($name,"forecast_txt_forecast_forecastday_02_title",0),ReadingsVal($name,"forecast_txt_forecast_forecastday_02_fcttext_metric",0),ReadingsVal($name,"forecast_txt_forecast_forecastday_03_title",0),ReadingsVal($name,"forecast_txt_forecast_forecastday_03_fcttext_metric",0),ReadingsVal($name,"forecast_txt_forecast_forecastday_04_title",0),ReadingsVal($name,"forecast_txt_forecast_forecastday_04_fcttext_metric",0))}
#//#attr wug stateFormat {sprintf("T: %.1f  °C  H: %.0f %  P: %.0f hPa  W: %.0f km/h  TP: %.1f °C  State: %c ", ReadingsVal($name,"temperature",0), ReadingsVal($name,"humidity",0),ReadingsVal($name,"pressure",0), ReadingsVal($name,"wind",0),ReadingsVal($name,"taupunkt",0),ReadingsVal($name,"forecast",0))}
Gruß Ernst

mahowi

Du kannst aber über das Attribut userReadings die von JSON vorgegebenen Readingsnamen für die von Dir benötigten Readings einfach umbenennen. Z.B. temperature { sprintf("%.1f", ReadingsVal("wu_conditions", "current_observation_temp_c", 0)) }

So kommst Du ohne irgendwelche Regexes aus und kannst beliebig viele userReadings mit Komma getrennt hinzufügen. Du hast dann halt nur die entsprechenden Readings alle doppelt als Ursprungs- und User-Reading.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Prof. Dr. Peter Henning

HTTPMOD unflexibel ???

Das halte ich für ein Gerücht, das ist tatsächlich viel flexibler als ein spezialisiertes Modul zum Abgreifen einzelner Readings. Man muss halt ein wenig XPath verstehen, dann geht das wunderbar.

Das einzige Problem bei wunderground.com ist die Erreichbarkeit. Darum habe ich u.a. diese Wetterabfrage (für drei Locations, z.B. auch meinen Golfplatz) auf einen separaten Raspberry ausgelagert. Der bereit die Readings auch so auf, dass sie mit einer TTS Engine vorgelesen werden können und sende sie per FHEM2FHEM an mein Hauptsystem.

Heute morgen sage ich also im Vorbeigehen zu meinem wandhängenden Tablet: "Golfplatz ?". Und dann sagt mir die Stimme von Marlene aus TTS Ivona: "Platz geöffnet. Temperatur acht komma fünf Grad".

LG

pah

ernst1024

Zitat von: mahowi am 30 März 2016, 23:32:34
Du kannst aber über das Attribut userReadings die von JSON vorgegebenen Readingsnamen für die von Dir benötigten Readings einfach umbenennen. Z.B. temperature { sprintf("%.1f", ReadingsVal("wu_conditions", "current_observation_temp_c", 0)) }

Danke, das kannte ich noch nicht. Bin immer wieder überrascht was in den Tiefen FHEMs so alles lauert und darauf wartet entdeckt zu werden  :)

Zitat von: Prof. Dr. Peter Henning am 31 März 2016, 07:57:21
HTTPMOD unflexibel ???

Das halte ich für ein Gerücht, das ist tatsächlich viel flexibler als ein spezialisiertes Modul zum Abgreifen einzelner Readings. Man muss halt ein wenig XPath verstehen, dann geht das wunderbar.


Also ich will in keinem Fall dem Modul HTTPMOD bzw dessen geistigem Erschaffer zu Nahe treten. Es ist in der Tat so, dass ich bis vor na, so drei Monaten noch nicht einmal wusste dass es so Sachen wie den PI, FHEM usw überhaupt gibt. Linux war für mich was für Freaks und programmiert habe ich höchstens meine Fernbedienung.  Somit hast du mit dem zweiten Teil deiner Aussage vollkommen recht. Ich muss jetzt gleich erstmal googlen was XPath überhaupt ist, wahrscheinlich so was wie JSON?

Wie ich schon mehrfach betont habe ist das Ganze letztlich für ein ESP-8266 Projekt gedacht und erst durch die latenten Probleme mit yahoo ist dadurch das entstanden was es nun ist.

Irgendwie  werde das Gefühl nicht los dass mir keiner von den Koryphäen hier so Recht den entscheidenden Tip geben mag obwohl er es wüsste? Liegt es vielleicht daran dass es sich nicht um ein natives FHEM Modul/Projekt wie auch immer man es nennen mag handelt?

Das fände ich schade. Ich schätze FHEM gerade weil es kein proprietäres Produkt ist. "Mein FHEM" besteht aus einem PI und diverser China Elektronik und ich bin immer noch total hin und weg was in der Kombination alles machbar ist.

Naja, schauen wir mal, es drängt ja nicht  :)

Gruß Ernst

mahowi

Also, wenn ich das richtig sehe, schreibst Du die Ausgaben von WU in Deine Log-Datei und willst diese Daten wieder an fhem übergeben. Richtig?

Dann mußt Du eigentlich nur in Dein Shell-Skript eine Schleife packen, die die Datei zeilenweise einliest und an das setreading übergibt. Sowas in der Art:

while read line
do
  perl /opt/fhem/fhem.pl 7072 mypassword \"setreading myWeather "$line"\"
done < ./BonnJson.log
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

ernst1024

Zitat von: mahowi am 31 März 2016, 13:21:00
Also, wenn ich das richtig sehe, schreibst Du die Ausgaben von WU in Deine Log-Datei und willst diese Daten wieder an fhem übergeben. Richtig?

Dann mußt Du eigentlich nur in Dein Shell-Skript eine Schleife packen, die die Datei zeilenweise einliest und an das setreading übergibt. Sowas in der Art:

while read line
do
  perl /opt/fhem/fhem.pl 7072 mypassword \"setreading myWeather "$line"\"
done < ./BonnJson.log


Ganz genau, wobei das mit dem ins log schreiben nur aus Verlegenheit entstanden ist, es kann auch jede andere Datei sein. Ich kenne mich nicht so aus mit shell skripts aber ich schaue mir das mal an. Komisch finde ich dass der gleiche "befehl" der über Putty das reading aktualisiert, auf dem PI nichts macht. Ich sehe gerade den Backslash vor dem \". Das habe ich in meinem Code auch  (maskieren?) aber nicht in dem daraus resultierende  Ausgabestring (also dem setreading....).
Ich überlege gerade ob es daran liegt?

Hmnnn weiter testen, aber erstmal vielen Dank für deine Tips  :)
Gruß Ernst

ernst1024

Hallo, wen es interessiert, ich habe die Lösung ans Ende des ersten Beitrags gestellt. Danke für euren input, wieder was gelernt :-)
Gruß Ernst