Hallo,
ich möchte Werte aus dem Modul Weatherunderground aufsummieren. Ich habe hierzu eine Variable mit set sr dummy angelegt und diese mit set sr 0 gesetzt.
Die Summenbildung erfolgt über:
defmod n_wu1 notify WUweather {my $temp1=(ReadingsNum("sr","state",0)*1.0+ReadingsNum("WUweather","solarradiation",0)*1.0);;fhem("set sr $temp1");;}
Leider ist die Summe falsch. Meine Vermutung ist, dass die Typen der Addition nicht passen (ASCII + Zahl). Ich habe versucht eine Typkonvertierung über die "*1.0" zu erreichen. Leider ohne Erfolg.
Irgend jemand irgendwelche Ideen?
Gruß Thorsten
Weatherunderground ? Kenne ich noch nicht.
Lass Dir mal die beiden Summanden in Rohform ausgeben.
Gilt hier * vor + ?
Bei mir geht es:
2017.07.01 00:31:56 5: Cmd: >setreading wetter solarradiation 5<
2017.07.01 00:31:56 5: Starting notify loop for wetter, 1 event(s), first is solarradiation: 5
2017.07.01 00:31:56 5: createNotifyHash
2017.07.01 00:31:56 5: Triggering n_wu1
2017.07.01 00:31:56 4: n_wu1 exec {my $temp1=(ReadingsNum("sr","state",0)*1.0+ReadingsNum("wetter","solarradiation",0)*1.0);;fhem("set sr $temp1");;}
2017.07.01 00:31:56 5: Cmd: >{my $temp1=(ReadingsNum("sr","state",0)*1.0+ReadingsNum("wetter","solarradiation",0)*1.0);fhem("set sr $temp1");}<
2017.07.01 00:31:56 5: Cmd: >set sr 15<
2017.07.01 00:31:56 4: dummy set sr 15
Poste mal ein "list sr" und ein "list WUWeather" (APIKEY ausblenden)
Hallo,
Das wird jetzt lang...
List SR:
Internals:
CFGFN
NAME sr
NR 1287
STATE 382
TYPE dummy
Readings:
2017-07-01 00:43:17 state 382
Attributes:
room Test
Internals:
API_KEY gibtes
CFGFN
DEF APIkey pws:INIEDERS682
FEATURES astronomy/conditions/forecast/lang:EN
INTERVAL 300
LANG EN
LAST 1498862593
LAST_OBSERVATION 1498862562
NAME WUweather
NR 267
QUERY pws:INIEDERS682
STATE T: 15.1 °C H: 88 % l: 0 mm
TYPE Wunderground
Readings:
2017-07-01 00:43:13 UV 0.0
2017-07-01 00:43:13 condition Rain
2017-07-01 00:43:13 dewpoint 13
2017-07-01 00:43:13 dewpoint_f 56
2017-07-01 00:43:13 fc0_condition Chance of Rain
2017-07-01 00:43:13 fc0_high_c 19
2017-07-01 00:43:13 fc0_high_f 67
2017-07-01 00:43:13 fc0_humidity 88
2017-07-01 00:43:13 fc0_humidity_max 0
2017-07-01 00:43:13 fc0_humidity_min 0
2017-07-01 00:43:13 fc0_icon chancerain
2017-07-01 00:43:13 fc0_icon_night nt_partlycloudy
2017-07-01 00:43:13 fc0_icon_url http://icons.wxug.com/i/c/k/chancerain.gif
2017-07-01 00:43:13 fc0_icon_url_night http://icons.wxug.com/i/c/k/nt_partlycloudy.gif
2017-07-01 00:43:13 fc0_low_c 12
2017-07-01 00:43:13 fc0_low_f 53
2017-07-01 00:43:13 fc0_pop 60
2017-07-01 00:43:13 fc0_pop_night 10
2017-07-01 00:43:13 fc0_rain_day 1
2017-07-01 00:43:13 fc0_rain_day_in 0.05
2017-07-01 00:43:13 fc0_rain_night 0
2017-07-01 00:43:13 fc0_rain_night_in 0
2017-07-01 00:43:13 fc0_snow_day 0
2017-07-01 00:43:13 fc0_snow_day_in 0
2017-07-01 00:43:13 fc0_snow_night 0
2017-07-01 00:43:13 fc0_snow_night_in 0
2017-07-01 00:43:13 fc0_text Cloudy. Periods of light rain early. High around 20 °C. Winds WNW at 15 to 25 km/h. Chance of rain 60 %.
2017-07-01 00:43:13 fc0_text_f Light rain early. Then remaining cloudy. High 67 °F. Winds WNW at 10 to 15 mph. Chance of rain 60 %.
2017-07-01 00:43:13 fc0_text_f_night Partly cloudy skies. Slight chance of a rain shower. Low 53 °F. Winds WNW at 10 to 15 mph.
2017-07-01 00:43:13 fc0_text_night Partly cloudy skies. Slight chance of a rain shower. Low 12 °C. Winds WNW at 15 to 25 km/h.
2017-07-01 00:43:13 fc0_title Saturday
2017-07-01 00:43:13 fc0_title_night Saturday Night
2017-07-01 00:43:13 fc0_wind_direction 294
2017-07-01 00:43:13 fc0_wind_direction_max 294
2017-07-01 00:43:13 fc0_wind_speed 19
2017-07-01 00:43:13 fc0_wind_speed_max 24
2017-07-01 00:43:13 fc0_wind_speed_max_mph 15
2017-07-01 00:43:13 fc0_wind_speed_mph 12
2017-07-01 00:43:13 fc1_condition Chance of Rain
2017-07-01 00:43:13 fc1_high_c 19
2017-07-01 00:43:13 fc1_high_f 66
2017-07-01 00:43:13 fc1_humidity 76
2017-07-01 00:43:13 fc1_humidity_max 0
2017-07-01 00:43:13 fc1_humidity_min 0
2017-07-01 00:43:13 fc1_icon chancerain
2017-07-01 00:43:13 fc1_icon_night nt_partlycloudy
2017-07-01 00:43:13 fc1_icon_url http://icons.wxug.com/i/c/k/chancerain.gif
2017-07-01 00:43:13 fc1_icon_url_night http://icons.wxug.com/i/c/k/nt_partlycloudy.gif
2017-07-01 00:43:13 fc1_low_c 9
2017-07-01 00:43:13 fc1_low_f 49
2017-07-01 00:43:13 fc1_pop 40
2017-07-01 00:43:13 fc1_pop_night 10
2017-07-01 00:43:13 fc1_rain_day 1
2017-07-01 00:43:13 fc1_rain_day_in 0.03
2017-07-01 00:43:13 fc1_rain_night 0
2017-07-01 00:43:13 fc1_rain_night_in 0
2017-07-01 00:43:13 fc1_snow_day 0
2017-07-01 00:43:13 fc1_snow_day_in 0
2017-07-01 00:43:13 fc1_snow_night 0
2017-07-01 00:43:13 fc1_snow_night_in 0
2017-07-01 00:43:13 fc1_text Rain showers in the morning becoming more intermittent in the afternoon. High 19 °C. Winds W at 15 to 30 km/h. Chance of rain 40 %.
2017-07-01 00:43:13 fc1_text_f Rain showers in the morning becoming more intermittent in the afternoon. High 66 °F. Winds W at 10 to 20 mph. Chance of rain 40 %.
2017-07-01 00:43:13 fc1_text_f_night Partly cloudy skies. Low 49 °F. Winds WNW at 10 to 15 mph.
2017-07-01 00:43:13 fc1_text_night Some clouds early will give way to generally clear conditions overnight. Low near 10 °C. Winds WNW at 15 to 25 km/h.
2017-07-01 00:43:13 fc1_title Sunday
2017-07-01 00:43:13 fc1_title_night Sunday Night
2017-07-01 00:43:13 fc1_wind_direction 275
2017-07-01 00:43:13 fc1_wind_direction_max 275
2017-07-01 00:43:13 fc1_wind_speed 21
2017-07-01 00:43:13 fc1_wind_speed_max 32
2017-07-01 00:43:13 fc1_wind_speed_max_mph 20
2017-07-01 00:43:13 fc1_wind_speed_mph 13
2017-07-01 00:43:13 fc2_condition Chance of Rain
2017-07-01 00:43:13 fc2_high_c 21
2017-07-01 00:43:13 fc2_high_f 69
2017-07-01 00:43:13 fc2_humidity 66
2017-07-01 00:43:13 fc2_humidity_max 0
2017-07-01 00:43:13 fc2_humidity_min 0
2017-07-01 00:43:13 fc2_icon chancerain
2017-07-01 00:43:13 fc2_icon_night nt_chancerain
2017-07-01 00:43:13 fc2_icon_url http://icons.wxug.com/i/c/k/chancerain.gif
2017-07-01 00:43:13 fc2_icon_url_night http://icons.wxug.com/i/c/k/nt_chancerain.gif
2017-07-01 00:43:13 fc2_low_c 12
2017-07-01 00:43:13 fc2_low_f 53
2017-07-01 00:43:13 fc2_pop 30
2017-07-01 00:43:13 fc2_pop_night 40
2017-07-01 00:43:13 fc2_rain_day 2
2017-07-01 00:43:13 fc2_rain_day_in 0.06
2017-07-01 00:43:13 fc2_rain_night 1
2017-07-01 00:43:13 fc2_rain_night_in 0.03
2017-07-01 00:43:13 fc2_snow_day 0
2017-07-01 00:43:13 fc2_snow_day_in 0
2017-07-01 00:43:13 fc2_snow_night 0
2017-07-01 00:43:13 fc2_snow_night_in 0
2017-07-01 00:43:13 fc2_text Sunny skies early. A few showers developing later in the day. High 21 °C. Winds WSW at 10 to 15 km/h. Chance of rain 30 %.
2017-07-01 00:43:13 fc2_text_f Sunny early followed by increasing clouds and a few showers later in the day. High 69 °F. Winds WSW at 10 to 15 mph. Chance of rain 30 %.
2017-07-01 00:43:13 fc2_text_f_night Showers in the evening, then partly cloudy overnight. Low 53 °F. Winds W at 5 to 10 mph. Chance of rain 40 %.
2017-07-01 00:43:13 fc2_text_night Rain showers early with clearing later at night. Low 12 °C. Winds W at 10 to 15 km/h. Chance of rain 40 %.
2017-07-01 00:43:13 fc2_title Monday
2017-07-01 00:43:13 fc2_title_night Monday Night
2017-07-01 00:43:13 fc2_wind_direction 258
2017-07-01 00:43:13 fc2_wind_direction_max 258
2017-07-01 00:43:13 fc2_wind_speed 16
2017-07-01 00:43:13 fc2_wind_speed_max 24
2017-07-01 00:43:13 fc2_wind_speed_max_mph 15
2017-07-01 00:43:13 fc2_wind_speed_mph 10
2017-07-01 00:43:13 fc3_condition Partly Cloudy
2017-07-01 00:43:13 fc3_high_c 19
2017-07-01 00:43:13 fc3_high_f 67
2017-07-01 00:43:13 fc3_humidity 69
2017-07-01 00:43:13 fc3_humidity_max 0
2017-07-01 00:43:13 fc3_humidity_min 0
2017-07-01 00:43:13 fc3_icon partlycloudy
2017-07-01 00:43:13 fc3_icon_night nt_chancerain
2017-07-01 00:43:13 fc3_icon_url http://icons.wxug.com/i/c/k/partlycloudy.gif
2017-07-01 00:43:13 fc3_icon_url_night http://icons.wxug.com/i/c/k/nt_chancerain.gif
2017-07-01 00:43:13 fc3_low_c 12
2017-07-01 00:43:13 fc3_low_f 54
2017-07-01 00:43:13 fc3_pop 20
2017-07-01 00:43:13 fc3_pop_night 60
2017-07-01 00:43:13 fc3_rain_day 2
2017-07-01 00:43:13 fc3_rain_day_in 0.06
2017-07-01 00:43:13 fc3_rain_night 2
2017-07-01 00:43:13 fc3_rain_night_in 0.06
2017-07-01 00:43:13 fc3_snow_day 0
2017-07-01 00:43:13 fc3_snow_day_in 0
2017-07-01 00:43:13 fc3_snow_night 0
2017-07-01 00:43:13 fc3_snow_night_in 0
2017-07-01 00:43:13 fc3_text Sunshine and clouds mixed. High near 20 °C. Winds WNW at 10 to 15 km/h.
2017-07-01 00:43:13 fc3_text_f Partly cloudy. High 67 °F. Winds WNW at 5 to 10 mph.
2017-07-01 00:43:13 fc3_text_f_night Considerable cloudiness. Occasional rain showers later at night. Low 54 °F. Winds light and variable. Chance of rain 60 %.
2017-07-01 00:43:13 fc3_text_night Cloudy with occasional showers late at night. Low 12 °C. Winds light and variable. Chance of rain 60 %.
2017-07-01 00:43:13 fc3_title Tuesday
2017-07-01 00:43:13 fc3_title_night Tuesday Night
2017-07-01 00:43:13 fc3_wind_direction 294
2017-07-01 00:43:13 fc3_wind_direction_max 294
2017-07-01 00:43:13 fc3_wind_speed 14
2017-07-01 00:43:13 fc3_wind_speed_max 16
2017-07-01 00:43:13 fc3_wind_speed_max_mph 10
2017-07-01 00:43:13 fc3_wind_speed_mph 9
2017-07-01 00:43:13 feelslike_c 15.1
2017-07-01 00:43:13 feelslike_f 59.2
2017-07-01 00:43:13 forecast_url http://www.wunderground.com/global/stations/10224.html
2017-07-01 00:43:13 heat_index_c
2017-07-01 00:43:13 heat_index_f
2017-07-01 00:43:13 history_url http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=INIEDERS682
2017-07-01 00:43:13 humidity 88
2017-07-01 00:43:13 icon nt_rain
2017-07-01 00:43:13 icon_url http://icons.wxug.com/i/c/k/nt_rain.gif
2017-06-30 22:30:39 lastQueryResult ok
2017-07-01 00:43:13 moon_age 7
2017-07-01 00:43:13 moon_pct 49
2017-07-01 00:43:13 moon_phase Waxing Crescent
2017-07-01 00:43:13 moonrise 14:00
2017-07-01 00:43:13 moonset 01:22
2017-07-01 00:43:13 nowcast
2017-07-01 00:43:13 ob_url http://www.wunderground.com/cgi-bin/findweather/getForecast?query=53.012810,9.021838
2017-07-01 00:43:13 pressure 1004
2017-07-01 00:43:13 pressure_in 29.65
2017-07-01 00:43:13 pressure_trend -
2017-07-01 00:43:13 rain 0
2017-07-01 00:43:13 rain_day 0
2017-07-01 00:43:13 rain_day_in 0.00
2017-07-01 00:43:13 rain_in 0.00
2017-07-01 00:43:13 solarradiation 0
2017-07-01 00:43:13 state T: 15.1 °C H: 88 % l: 0 mm
2017-07-01 00:43:13 sunrise 05:02
2017-07-01 00:43:13 sunset 21:52
2017-07-01 00:43:13 temp_c 15.1
2017-07-01 00:43:13 temp_f 59.2
2017-07-01 00:43:13 visibility 6.0
2017-07-01 00:43:13 visibility_mi 3.7
2017-07-01 00:43:13 wind_chill
2017-07-01 00:43:13 wind_chill_f
2017-07-01 00:43:13 wind_direction 213
2017-07-01 00:43:13 wind_gust 11.9
2017-07-01 00:43:13 wind_gust_mph 7.4
2017-07-01 00:43:13 wind_speed 7.2
2017-07-01 00:43:13 wind_speed_mph 4.5
Readingdesc:
Text:
lang en
Text_f:
lang en
Text_f_night:
lang en
Text_night:
lang en
Title:
lang en
Title_night:
lang en
Attributes:
event-min-interval 5
pollInterval 300
room Test
stateReadings temp_c humidity rain_day
stateReadingsFormat 1
wu_features astronomy,conditions,forecast
Gruß Thorsten
p.s. Solange solarradiation=0 geht es, aber sobald <>0 ergibt es unsinnige Werte
Hmm wäre dann interessant zu sehen, was und mit welchem Format in Reading solarradiation kommt.
Du weisst aber, dass dein notify ein "sr += solarradiation" macht, jedes mal, dass ein Wert von WUWeather sich ändert?
Sagen wir mal, solarradiation = 10 und sr 380.
fc0_humidity ändert sich => sr = 390
kurz später ändert sich dewpoint => sr = 400
kurz später ändert sich UV => sr = 410
usw...
Und was willst Du mit "event-min-interval 5" machen?
Zitat von: CommandREFevent-min-interval
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings:minInterval" Paare. readings kann ein regexp sein. Ein Event wird nur dann generiert, falls seit dem letzten Auftreten des gleichen Events mindestens minInterval Sekunden vergangen sind.
WUWeather hat 179 Readings. Aktualisiert sich das Device (jede 300 Sekunden), wird sr += 179 * (solarradiation) kalkuliert.
Ok, guter Hinweis.
Heißt das, dass notify wird 179 mal ausgelöst und ich muss den Wert einfach anschließend durch 179 teilen?
Oder kann ich das notify besser definieren (Bin halt neu und planlos...)
Mit define n_wu1 notify WUweather {}
wird das notify bei jedem Event (siehe Eventmonitor) auf dem Device WUweather getriggert.
Man kann das bestimmt anders, sobald man weisst, was Du machen möchtest. Man kann das Notify auf bestimmte Events beschränken. Man kann auch das Device WUweather nur bestimmte Events generieren lassen. Usw.
Also... was willst Du damit berechnen?
Ok, die Idee ist dass ich mir einen Feuchtigkeitssensor in meinem Garten sparen möchte. Also habe ich eine Wetterstation in meiner Nähe angezapft, die Momentanregenmengen (rain) und Momentaneinstrahlungswerte (solarradiation) liefert. Ich möchte die Momentanwerte alle 5 Minuten abfragen und aufsummieren (quasi integrieren, aber auch nicht wirklich) . Mit "solarradiation" wollte ich anfangen, dann rain dazu nehmen, anschließend das ganze über mehre Tage speichern und Quotienten bilden und schauen, ob ich meine Gartenbewässerung darüber steuern kann.
Aber eben ein nach dem andern. Deshalb erstmal nur: Summe bilden alle 5 Minuten über den Wert von "solarradiation" (rain ist dann äquivalent)
Mit
define n_wu1 notify WUweather:solarradiation:..* {}
würde erstmal das Notify nur bei Aktualisierung von solarradiation getriggert. Da das Wetter Modul sich jede 300 Sekunden aktualisiert, hättest Du schon die gewünschte Summe. Wäre schon besser. Aber da hättest Du nur eine "Summe jede 5 Minuten". Ist noch keine Integrale.
Ich glaube, es wäre einfacher mit event-aggregator. Schau mal https://fhem.de/commandref_DE.html#event-aggregator , mit function "integral"
Und fürs rain, welches Reading würdest Du nutzen? Ist "rain_in" nicht schon der Wert, den Du brauchst?
Jetzt ist der Knoten geplatzt! Der Ansatz über ein Event, das sich alle 5 Minuten wiederholt, um darauf mit dem notify zu reagieren, ist falsch.
Die einfache Lösung ist:
defmod a_wu at +*00:05:00 {my $temp1=(ReadingsNum("sr","state",0)+ReadingsNum("WUweather","solarradiation",0));;fhem("set sr $temp1");;}
Danke für die Antworten! Ohne den Hinweis auf den x-fachen Aufruf des notifys durch die vielen Readings in WUweather, wäre ich nicht auf die Lösung gekommen.
Das mit dem Integral muss ich mir noch anlesen. Die Erklärung in der CommandRef ist für Anfänger schwierig zu verstehen.