Ich möchte von meinem Wettersensor das reading "isRaining" "yes"/"no" auswerten
um die Gartenberwässerung erst zu starten, wenn 48h kein Regen gefallen ist ("no" für 48h ohne Änderung)
Probiert habe ich das Statistics Modul, aber das wertet "yes"/"no" nicht aus.
Den HourCounter habe ich ebenfalls noch nicht zum laufen gebracht.
Kann mir jemand helfen, eines der Module oder ein anderes für diese >Aufgabe zum laufen zu bringen ?
Hier meine kläglichen Versuche
zB
define sensor_weather_statistics statistics sensor_weather
attr sensor_weather_statistics singularReadings sensor_weather:isRaining:(no|yes)
attr sensor_weather_statistics specialDeltaPeriods sensor_weather:isRaining:Hour:1:12:24:48:72
attr sensor_weather_statistics durationReadings sensor_weather:isRaining
attr sensor_weather_statistics durationPeriodHour sensor_weather:isRaining:(no|yes)
Internals:
DEF 0189XXXX
IODev TCM310
LASTInputDev TCM310
MSGCNT 5049
NAME sensor_weather
NR 28
NTFY_ORDER 50-sensor_weather
STATE T: 16.9 B: 999 W: 1.9 IR: yes
TCM310_DestinationID FFFFFFFF
TCM310_MSGCNT 5049
TCM310_PacketType 1
TCM310_RSSI -79
TCM310_ReceivingQuality good
TCM310_RepeatingCounter 1
TCM310_SubTelNum 6
TCM310_TIME 2018-06-28 19:21:50
TYPE EnOcean
READINGS:
2018-05-30 01:49:41 azimuth XX
2018-06-28 19:21:50 brightness 999
2018-05-22 05:46:29 date 2005-3-3
2018-06-28 19:21:50 dayNight day
2018-05-30 01:49:41 elevation -26
2018-06-28 19:21:06 hemisphere north
2018-06-28 19:21:50 isRaining yes
2018-06-27 12:14:03 latitude -71.363
2018-06-27 12:14:03 longitude 78.093
2018-06-28 19:21:50 statBrightnessDay Min: 0 Avg: 669 Max: 999
2018-06-27 23:59:55 statBrightnessDayLast Min: 0 Avg: 635 Max: 999
2018-06-28 19:21:50 statBrightnessHour Min: 999 Avg: 999 Max: 999
2018-06-28 18:59:55 statBrightnessHourLast Min: 999 Avg: 999 Max: 999
2018-06-28 19:21:50 statBrightnessMonth Min: 0 Avg: 643 Max: 999 (since: 2018-06-18_21:05:01 )
2018-06-28 19:21:50 statBrightnessYear Min: 0 Avg: 643 Max: 999 (since: 2018-06-18_21:05:01 )
2018-06-28 19:21:50 statTemperatureDay Min: 12.7 Avg: 16.1 Max: 24.9
2018-06-27 23:59:55 statTemperatureDayLast Min: 11.8 Avg: 16.5 Max: 73.9
2018-06-28 19:21:50 statTemperatureMonth Min: 8.9 Avg: 18.6 Max: 73.9 (since: 2018-06-18_21:05:01 )
2018-06-28 19:21:50 statTemperatureYear Min: 8.9 Avg: 18.6 Max: 73.9 (since: 2018-06-18_21:05:01 )
2018-06-28 19:21:50 statWindSpeedDay Min: 0.0 Avg: 3.3 Max: 11.8
2018-06-27 23:59:55 statWindSpeedDayLast Min: 0.0 Avg: 2.2 Max: 9.9
2018-06-28 19:21:50 statWindSpeedHour Min: 0.8 Avg: 3.0 Max: 5.8
2018-06-28 18:59:55 statWindSpeedHourLast Min: 0.0 Avg: 2.7 Max: 5.8
2018-06-28 19:21:50 statWindSpeedMonth Min: 0.0 Avg: 2.1 Max: 14.8 (since: 2018-06-18_21:05:01 )
2018-06-28 19:21:50 statWindSpeedYear Min: 0.0 Avg: 2.1 Max: 14.8 (since: 2018-06-18_21:05:01 )
2018-06-28 19:21:50 state T: 16.9 B: 999 W: 1.9 IR: yes
2018-06-28 19:21:06 sunEast 589
2018-06-28 19:21:06 sunSouth 1765
2018-06-28 19:21:06 sunWest 589
2018-06-28 19:21:50 temperature 16.9
2018-06-28 19:21:50 windSpeed 1.9
helper:
_98_statistics sensor_weather_statistics
Attributes:
IODev TCM310
event-min-interval .*:120
event-on-change-reading .*
event-on-update-reading .*
manufID 00D
room EnOcean
subType environmentApp
verbose 3
das sollte wohl mit mehreren modulen möglich sein , spontan fällt mir u.a watchdog ein.
ansonsten kann ich dir eine Möglichkeit mit MSwitch anbieten .Das ist aber kein Standartmodul und müsste erst installiert werden .
https://wiki.fhem.de/wiki/MSwitch.pm (https://wiki.fhem.de/wiki/MSwitch.pm)
und hier wäre eine entsprechende Beispielkonfiguration als Rawdefinition, ausgelegt auf deinen angegebenen Wettersensor und einen zusätzlichen Dummy, der geschaltet wird:
( ist nach dem Einspielen im Grunde selbserklärend )
defmod wettertest MSwitch sensor_weather # action
attr wettertest MSwitch_Debug 0
attr wettertest MSwitch_Delete_Delays 1
attr wettertest MSwitch_Expert 0
attr wettertest MSwitch_Extensions 0
attr wettertest MSwitch_Help 0
attr wettertest MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr wettertest MSwitch_Include_Devicecmds 1
attr wettertest MSwitch_Include_MSwitchcmds 0
attr wettertest MSwitch_Include_Webcmds 1
attr wettertest MSwitch_Inforoom MSwitch
attr wettertest MSwitch_Lock_Quickedit 1
attr wettertest MSwitch_Mode Notify
attr wettertest room 1_test
defmod action dummy
attr action room 1_test
attr action webCmd on:off
setstate wettertest active
setstate wettertest 2018-07-15 09:48:50 .Device_Affected action-AbsCmd1
setstate wettertest 2018-07-15 09:49:52 .Device_Affected_Details action-AbsCmd1,on,no_action,,,delay1,delay1,480000,000000,[sensor_weather:isRaining]~eq~"no",,,,1
setstate wettertest 2018-07-15 09:52:05 .Device_Events state:yes|state:no|no_trigger|isRaining:yes|isRaining:no
setstate wettertest 2018-07-15 09:45:49 .First_init done
setstate wettertest 2018-07-15 09:51:29 .Trigger_cmd_off isRaining:yes
setstate wettertest 2018-07-15 09:51:29 .Trigger_cmd_on isRaining:no
setstate wettertest 2018-07-15 09:47:48 .Trigger_condition
setstate wettertest 2018-07-15 09:51:29 .Trigger_off no_trigger
setstate wettertest 2018-07-15 09:51:29 .Trigger_on no_trigger
setstate wettertest 2018-07-15 09:47:48 .Trigger_time
setstate wettertest 2018-07-15 09:45:49 .V_Check V 0.3
setstate wettertest 2018-07-15 09:52:05 EVENT isRaining:yes
setstate wettertest 2018-07-15 09:52:05 EVTFULL sensor_weather:isRaining:yes
setstate wettertest 2018-07-15 09:52:05 EVTPART1 sensor_weather
setstate wettertest 2018-07-15 09:52:05 EVTPART2 isRaining
setstate wettertest 2018-07-15 09:52:05 EVTPART3 yes
setstate wettertest 2018-07-15 09:47:48 Trigger_device sensor_weather
setstate wettertest 2018-07-15 09:51:29 Trigger_log on
setstate wettertest 2018-07-15 09:52:05 last_event isRaining:yes
setstate wettertest 2018-07-15 09:55:14 state active
gruss Byte09
Hi,
die Idee mit dem watchdog (https://commandref.fhem.de/#watchdog)mal in Worten:
define w_48NoRain watchdog sensor_weather:isRaining.no 48:00 sensor_weather:isRaining.yes set wasser start;; trigger w_48NoRain .
Die Anweisung set wasser start ist natürlich nur ausgedacht, die musst Du ersetzen.
Ich weiß nicht ob ein watchdog 48 h kann.
Die regExp sensor_weather:isRaining.no musst Du eventuell entsprechend deinem echten Event noch anpassen. Nimm dazu den Event monitor.
Gruß Otto
Hallo,
wenn das Reading nur bei Wechsel aktualisiert wird koenntest Du ReadingsAge verwenden. Also beim Start eine Abfrage einbauen a la:
if (ReadingsAge("sensor_weather", "isRaining", 0) > (48 * 60 * 60)) {Starte Bewaesserung}
Anmerkung: Wenn es bei Deiner Ueberlegung zwischendurch immer wieder mal 5 Minuten regnet hast Du sehr bald eine braune Wiese da die 48 Stunden nicht oft genug erreicht werden und demzufolge die Bewaesserung ueber einen moeglicherweise langen Zeitraum nicht gestartet wird.
Gruss
Michael
Danke für den Input vorerst.
Zitat von: miot am 15 Juli 2018, 11:05:32
if (ReadingsAge("sensor_weather", "isRaining", 0) > (48 * 60 * 60)) {Starte Bewaesserung}
Das geht leider nicht (wäre sehr einfach), aber der Wert "ändert" sich alle 120sec (auch wenn er eigentlich gleich bleibt) ...
Die beiden anderen Varianten muss ich erst probieren ...
Da das in Verbindung mit einer Tageszeit gehen sollte (also 18:00 Bewässerung - aber nur wenn 48h kein regen war)
muss ich die Möglichkeiten aber noch ausloten.
... im Prinzip müsste ich aus dem "no" ein userReading erzeugen für "age" ... dann kann ich einen Timer setzen, der "age" abfragt ...