Autor Thema: Ein virtueller Regensensor mit wetter.com und HTTPMOD  (Gelesen 4090 mal)

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Ein virtueller Regensensor mit wetter.com und HTTPMOD
« am: 17 August 2021, 15:54:09 »
Hier soll eine Möglichkeit eines Regensensors vorgestellt werden, der warnt, bevor es regnet.

Wenn eine Markise montiert ist, soll unbedingt vermieden werden, das diese nass wird. Wird ein konventioneller Regensensor montiert, um diese Aufgabe zu übernehmen, hat die Markise schon Regen abbekommen, bevor sie eingefahren wird. Das kann Stockflecken verursachen.

Die Idee ist es, den „Regenradar“ eines Wetterdienstes zu nutzen und das graphische Regenbild auszuwerten. Diese Aufgabe ist aber schon auf wetter.com erledigt. Dort gibt es schon die Rubrik „Niederschläge der nächsten 2 Stunden“ auf der Wettervorhersage. Es muss also nur noch diese Vorhersage abgefragt werden. Dazu ist das Modul „HTTPMOD“ bestens geeignet. Die Daten werden alle 5 Minuten aufgefrischt. Also sollte auch maximal alle 5 Minuten abgefragt werden, das sind 300 Sekunden.

Die Farben der Felder haben folgende Bedeutung:

RegenRegenSchneefallSchneefall
theoretischrealtheoretischrealText wetter.comAnzeigetext
#a6caf0#bfd4ff#fce4ec1)bis 0.4 l/m² pro Stunde kein oder nur geringer Regen bzw. Schneefall< 0.4 l/m²/h
#6699ffpasst#f9bad01)bis 1.9 l/m² pro Stunde leichter bis mäßiger Regen bzw. Schneefall< 1.9 l/m²/h
#004ce5passt#f68db11)bis 8.1 l/m² pro Stunde mäßiger Regen bzw. mäßiger bis starker Schneefall< 8.1 l/m²/h
#002673passt#f25f911)bis 35 l/m² pro Stunde mäßiger bis starker Regen (Gewitter möglich) bzw. sehr starker Schneefall< 35 l/m²/h
#ffa800passt 2)#ee3c791)bis 150 l/m² pro Stunde starker Regen (Graupel, Hagel oder Gewitter wahrscheinlich)< 150 l/m²/h
#e600001)#eb15611)> 150 l/m² pro Stunde heftiger Regen (Hagel und Gewitter wahrscheinlich)> 150 l/m²/h
1) noch nicht ermittelt. Bei einem weißen unbesetztem Feld steht „#fff“, 2) am 18.08.2021 nachgetragen

Es sind drei Anzeigefelder mit „jetzt“ beschriftet. Die Uhrzeit für das vierte Feld wird in dem Reading „time_04“ abgelegt. Die restlichen Uhrzeiten ergeben sich, da jedes Feld für eine Zeitspanne von 5 Minuten steht. Bei zwei Stunden sind das 24 Felder. Die Anzeigefenster werden in den Readings „feld-01“ bis „feld-24“ abgelegt. Übersetzt von den Farbcodes zu der Regenmenge wird es mit „reading08OMap ...“.

Damit die Anzeige schöner ist, habe ich die Namen der Felder 1 bis 9 wie „feld-1“ in „feld-01“ mit „attr wetter_com_gifhorn reading08-1Name feld-01“ usw. umbenannt. Damit werden sie bei der Anzeige in der richtigen Reihenfolge dargestellt.

Das Hauptergebnis steht in dem Reading „Status“ und enthält die Auswertung für die ersten sieben Felder. Das kann individuell nach Bedarf angepasst werden.

Das Reading „Status2h“ enthält die Auswertung über die zwei Stunden.

Der Beschreibungstext steht in dem Reading „regen“ drin.

„Status2h_old“ und „Status_old“ sind Flankenmerker für die Auswertung über notify. Damit wird sichergestellt, dass die Meldungen und das Einfahren der Markise nur bei einer positiven Flanke getriggert wird.

Hier das Beispiel für Gifhorn mit „Raw definition“ kopiert: (Das Beispiel sollte bei Bedarf also auch in „Raw FHEM-code input“ kopiert werden.)
defmod wetter_com_gifhorn HTTPMOD https://www.wetter.com/deutschland/gifhorn/DE0003428.html 300
attr wetter_com_gifhorn DbLogExclude .*
attr wetter_com_gifhorn DbLogInclude Status,Status2h,regen,date,time_04,feld-\d*
attr wetter_com_gifhorn reading01Name regen
attr wetter_com_gifhorn reading01Regex <span.id=\"nowcast-text\".class=\"portable-mb--\">\W*(.*)\W*</span>
attr wetter_com_gifhorn reading02Name date
attr wetter_com_gifhorn reading02Regex <div class=\"\[.forecast-navigation-grid.\]\">\W*<a.data-label=\"VHSTabTag_1\"\W*class=\"\[.is-active.\]\"\W*.*\W*.*\W*.*\W*.*\W*.*\W*<div>\W*(.*)\W*<\>
attr wetter_com_gifhorn reading08-1Name feld-01
attr wetter_com_gifhorn reading08-25Name time_04
attr wetter_com_gifhorn reading08-2Name feld-02
attr wetter_com_gifhorn reading08-3Name feld-03
attr wetter_com_gifhorn reading08-4Name feld-04
attr wetter_com_gifhorn reading08-5Name feld-05
attr wetter_com_gifhorn reading08-6Name feld-06
attr wetter_com_gifhorn reading08-7Name feld-07
attr wetter_com_gifhorn reading08-8Name feld-08
attr wetter_com_gifhorn reading08-9Name feld-09
attr wetter_com_gifhorn reading08Name feld
attr wetter_com_gifhorn reading08OMap #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)
attr wetter_com_gifhorn reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*</tr>\W*<tr>\W*<td.colspan=\"2\".*Jetzt\W*</td>\W*<td colspan="2".*>(.*)</td>
attr wetter_com_gifhorn room KLF200Node
attr wetter_com_gifhorn stateFormat date time_04 Regen aktuell: Status Regen 2h: Status2h Text: regen <html>website: <a target= "_blank" href="https://www.wetter.com/deutschland/gifhorn/DE0003428.html">wetter.com</a></html>
attr wetter_com_gifhorn userReadings Status:feld-01.* {\
  0 + \
  (ReadingsVal("wetter_com_gifhorn","feld-01",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-02",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-03",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-04",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-05",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-06",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-07",0) ne 0 );;;; },\
Status2h:regen.* {\
  0 + ( ReadingsVal("wetter_com_gifhorn","regen",0) ne "Kein Niederschlag in Sicht" );;;; },\
Status_old,\
Status2h_old\

Das dazu passende notify, um Meldungen auszugeben und die Markise einzufahren:
Anmerkung: „somfy_0“ ist die Markise. „pct“ ist die Position. Position „100“ ist eingefahren. Der Befehl und die Meldung wird also nur ausgegeben, wenn die Markise ausgefahren ist und der Zustand der Regenmeldung neu rein kommt. Wird die Markise bei angekündigtem Regen raus gefahren, bleibt sie gewollt draußen. Die Meldung wird in diesem Beispiel über Telegram ausgegeben, da WhatsApp nicht funktioniert. Wenn kein Telegram-Bot definiert ist, müssen diese Zeilen gelöscht werden. Wenn ein Telegram-Bot vorhanden ist, muss der Name des Bot und die Nummer angepasst werden. Der Fahrbefehl für die Markise muss natürlich auch angepasst werden. Der zweite Block mit "Regen jetzt: ..." ist hauptsächlich für die Inbetriebnahme und kann entweder deaktiviert oder gelöscht werden. Genauso könnte jede Änderung des Readings von „regen“ gesendet werden.
defmod wetter_com_gifhorn_notify_1 notify wetter_com_gifhorn:Status:.* { \
if( ReadingsVal("somfy_0","pct","---") ne 100 && ReadingsVal("wetter_com_gifhorn","Status","---") eq 1 && ReadingsVal("wetter_com_gifhorn","Status_old","---") eq 0) {\
   fhem("set Bot message \@123456789 Markise wird aufgrund einer Regenwarnung eingefahren.\n".\
   "Alte Position: ".ReadingsVal("somfy_0","pct","---"));;\
   fhem("set somfy_0 pct 100");;\
};;\
if( (ReadingsVal("wetter_com_gifhorn","Status","---") eq 1 && ReadingsVal("wetter_com_gifhorn","Status_old","---") eq 0) ||\
    (ReadingsVal("wetter_com_gifhorn","Status2h","---") eq 1 && ReadingsVal("wetter_com_gifhorn","Status2h_old","---") eq 0) ) {\
fhem("set Bot message \@123456789 Regenwarnung wetter.com:\n".\
ReadingsVal("wetter_com_gifhorn","date","---")."\n".\
ReadingsVal("wetter_com_gifhorn","regen","---")."\n".\
"Regen jetzt: ".ReadingsVal("wetter_com_gifhorn","Status","---")."\n".\
"Regen innerhalb 2h: ".ReadingsVal("wetter_com_gifhorn","Status2h","---")."\n".\
"-15 min. ".ReadingsVal("wetter_com_gifhorn","feld-01","---")."\n".\
"-10 min. ".ReadingsVal("wetter_com_gifhorn","feld-02","---")."\n".\
"-5 min. ".ReadingsVal("wetter_com_gifhorn","feld-03","---")."\n".\
ReadingsVal("wetter_com_gifhorn","time_04","---")." ".ReadingsVal("wetter_com_gifhorn","feld-04","---")."\n".\
"+5 min. ".ReadingsVal("wetter_com_gifhorn","feld-05","---")."\n".\
"+10 min. ".ReadingsVal("wetter_com_gifhorn","feld-06","---")."\n".\
"+15 min. ".ReadingsVal("wetter_com_gifhorn","feld-07","---")."\n".\
"+20 min. ".ReadingsVal("wetter_com_gifhorn","feld-08","---")."\n".\
"+25 min. ".ReadingsVal("wetter_com_gifhorn","feld-09","---")."\n".\
"+30 min. ".ReadingsVal("wetter_com_gifhorn","feld-10","---")."\n".\
"+35 min. ".ReadingsVal("wetter_com_gifhorn","feld-11","---")."\n".\
"+40 min. ".ReadingsVal("wetter_com_gifhorn","feld-12","---")."\n".\
"+45 min. ".ReadingsVal("wetter_com_gifhorn","feld-13","---")."\n".\
"+50 min. ".ReadingsVal("wetter_com_gifhorn","feld-14","---")."\n".\
"+55 min. ".ReadingsVal("wetter_com_gifhorn","feld-15","---")."\n".\
"+60 min. ".ReadingsVal("wetter_com_gifhorn","feld-16","---")."\n".\
"+65 min. ".ReadingsVal("wetter_com_gifhorn","feld-17","---")."\n".\
"+70 min. ".ReadingsVal("wetter_com_gifhorn","feld-18","---")."\n".\
"+75 min. ".ReadingsVal("wetter_com_gifhorn","feld-19","---")."\n".\
"+80 min. ".ReadingsVal("wetter_com_gifhorn","feld-20","---")."\n".\
"+85 min. ".ReadingsVal("wetter_com_gifhorn","feld-21","---")."\n".\
"+90 min. ".ReadingsVal("wetter_com_gifhorn","feld-22","---")."\n".\
"+95 min. ".ReadingsVal("wetter_com_gifhorn","feld-23","---")."\n".\
"+100 min. ".ReadingsVal("wetter_com_gifhorn","feld-24","---"));;\
};;\
fhem("setreading wetter_com_gifhorn Status_old ".ReadingsVal("wetter_com_gifhorn","Status","---"));;\
fhem("setreading wetter_com_gifhorn Status2h_old ".ReadingsVal("wetter_com_gifhorn","Status2h","---"));;\
}
attr wetter_com_gifhorn_notify_1 DbLogExclude .*
attr wetter_com_gifhorn_notify_1 room KLF200Node

Um die Inbetriebnahme zu erleichtern, werden alle Readings in die Datenbank geschrieben. Wenn alles läuft, könnte dies auch deaktiviert werden um Platz in der Datenbank zu sparen. Für eine geordnete Ausgabe über SQL für den aktuellen Tag kann folgende Abfrage genutzt werden:
SELECT t1.`TIMESTAMP` AS Zeit, t1.VALUE AS 'Status', t2.VALUE AS 'Status2h', t3.VALUE AS 'date', t4.VALUE AS 'regen',
t5.VALUE AS 'feld-01', t6.VALUE AS 'feld-02', t7.VALUE AS 'feld-03', t8.VALUE AS 'time_04', t9.VALUE AS 'feld-04', t10.VALUE AS 'feld-05', t11.VALUE AS 'feld-06',
t12.VALUE AS 'feld-07', t13.VALUE AS 'feld-08', t14.VALUE AS 'feld-09', t15.VALUE AS 'feld-10', t16.VALUE AS 'feld-11', t17.VALUE AS 'feld-12', t18.VALUE AS 'feld-13',
t19.VALUE AS 'feld-14', t20.VALUE AS 'feld-15', t21.VALUE AS 'feld-16', t22.VALUE AS 'feld-17', t23.VALUE AS 'feld-18', t24.VALUE AS 'feld-19', t25.VALUE AS 'feld-20',
t26.VALUE AS 'feld-21', t27.VALUE AS 'feld-22', t28.VALUE AS 'feld-23', t29.VALUE AS 'feld-24'
FROM history AS t1
LEFT JOIN history AS t2 ON t1.`TIMESTAMP` = t2.`TIMESTAMP` AND t1.DEVICE = t2.DEVICE AND t1.TYPE = t2.TYPE AND t2.DEVICE = 'wetter_com_gifhorn' AND t2.READING = 'Status2h'
LEFT JOIN history AS t3 ON t1.`TIMESTAMP` = t3.`TIMESTAMP` AND t1.DEVICE = t3.DEVICE AND t1.TYPE = t3.TYPE AND t3.DEVICE = 'wetter_com_gifhorn' AND t3.READING = 'date'
LEFT JOIN history AS t4 ON t1.`TIMESTAMP` = t4.`TIMESTAMP` AND t1.DEVICE = t4.DEVICE AND t1.TYPE = t4.TYPE AND t4.DEVICE = 'wetter_com_gifhorn' AND t4.READING = 'regen'
LEFT JOIN history AS t5 ON t1.`TIMESTAMP` = t5.`TIMESTAMP` AND t1.DEVICE = t5.DEVICE AND t1.TYPE = t5.TYPE AND t5.DEVICE = 'wetter_com_gifhorn' AND t5.READING = 'feld-01'
LEFT JOIN history AS t6 ON t1.`TIMESTAMP` = t6.`TIMESTAMP` AND t1.DEVICE = t6.DEVICE AND t1.TYPE = t6.TYPE AND t6.DEVICE = 'wetter_com_gifhorn' AND t6.READING = 'feld-02'
LEFT JOIN history AS t7 ON t1.`TIMESTAMP` = t7.`TIMESTAMP` AND t1.DEVICE = t7.DEVICE AND t1.TYPE = t7.TYPE AND t7.DEVICE = 'wetter_com_gifhorn' AND t7.READING = 'feld-03'
LEFT JOIN history AS t8 ON t1.`TIMESTAMP` = t8.`TIMESTAMP` AND t1.DEVICE = t8.DEVICE AND t1.TYPE = t8.TYPE AND t8.DEVICE = 'wetter_com_gifhorn' AND t8.READING = 'time_04'
LEFT JOIN history AS t9 ON t1.`TIMESTAMP` = t9.`TIMESTAMP` AND t1.DEVICE = t9.DEVICE AND t1.TYPE = t9.TYPE AND t9.DEVICE = 'wetter_com_gifhorn' AND t9.READING = 'feld-04'
LEFT JOIN history AS t10 ON t1.`TIMESTAMP` = t10.`TIMESTAMP` AND t1.DEVICE = t10.DEVICE AND t1.TYPE = t10.TYPE AND t10.DEVICE = 'wetter_com_gifhorn' AND t10.READING = 'feld-05'
LEFT JOIN history AS t11 ON t1.`TIMESTAMP` = t11.`TIMESTAMP` AND t1.DEVICE = t11.DEVICE AND t1.TYPE = t11.TYPE AND t11.DEVICE = 'wetter_com_gifhorn' AND t11.READING = 'feld-06'
LEFT JOIN history AS t12 ON t1.`TIMESTAMP` = t12.`TIMESTAMP` AND t1.DEVICE = t12.DEVICE AND t1.TYPE = t12.TYPE AND t12.DEVICE = 'wetter_com_gifhorn' AND t12.READING = 'feld-07'
LEFT JOIN history AS t13 ON t1.`TIMESTAMP` = t13.`TIMESTAMP` AND t1.DEVICE = t13.DEVICE AND t1.TYPE = t13.TYPE AND t13.DEVICE = 'wetter_com_gifhorn' AND t13.READING = 'feld-08'
LEFT JOIN history AS t14 ON t1.`TIMESTAMP` = t14.`TIMESTAMP` AND t1.DEVICE = t14.DEVICE AND t1.TYPE = t14.TYPE AND t14.DEVICE = 'wetter_com_gifhorn' AND t14.READING = 'feld-09'
LEFT JOIN history AS t15 ON t1.`TIMESTAMP` = t15.`TIMESTAMP` AND t1.DEVICE = t15.DEVICE AND t1.TYPE = t15.TYPE AND t15.DEVICE = 'wetter_com_gifhorn' AND t15.READING = 'feld-10'
LEFT JOIN history AS t16 ON t1.`TIMESTAMP` = t16.`TIMESTAMP` AND t1.DEVICE = t16.DEVICE AND t1.TYPE = t16.TYPE AND t16.DEVICE = 'wetter_com_gifhorn' AND t16.READING = 'feld-11'
LEFT JOIN history AS t17 ON t1.`TIMESTAMP` = t17.`TIMESTAMP` AND t1.DEVICE = t17.DEVICE AND t1.TYPE = t17.TYPE AND t17.DEVICE = 'wetter_com_gifhorn' AND t17.READING = 'feld-12'
LEFT JOIN history AS t18 ON t1.`TIMESTAMP` = t18.`TIMESTAMP` AND t1.DEVICE = t18.DEVICE AND t1.TYPE = t18.TYPE AND t18.DEVICE = 'wetter_com_gifhorn' AND t18.READING = 'feld-13'
LEFT JOIN history AS t19 ON t1.`TIMESTAMP` = t19.`TIMESTAMP` AND t1.DEVICE = t19.DEVICE AND t1.TYPE = t19.TYPE AND t19.DEVICE = 'wetter_com_gifhorn' AND t19.READING = 'feld-14'
LEFT JOIN history AS t20 ON t1.`TIMESTAMP` = t20.`TIMESTAMP` AND t1.DEVICE = t20.DEVICE AND t1.TYPE = t20.TYPE AND t20.DEVICE = 'wetter_com_gifhorn' AND t20.READING = 'feld-15'
LEFT JOIN history AS t21 ON t1.`TIMESTAMP` = t21.`TIMESTAMP` AND t1.DEVICE = t21.DEVICE AND t1.TYPE = t21.TYPE AND t21.DEVICE = 'wetter_com_gifhorn' AND t21.READING = 'feld-16'
LEFT JOIN history AS t22 ON t1.`TIMESTAMP` = t22.`TIMESTAMP` AND t1.DEVICE = t22.DEVICE AND t1.TYPE = t22.TYPE AND t22.DEVICE = 'wetter_com_gifhorn' AND t22.READING = 'feld-17'
LEFT JOIN history AS t23 ON t1.`TIMESTAMP` = t23.`TIMESTAMP` AND t1.DEVICE = t23.DEVICE AND t1.TYPE = t23.TYPE AND t23.DEVICE = 'wetter_com_gifhorn' AND t23.READING = 'feld-18'
LEFT JOIN history AS t24 ON t1.`TIMESTAMP` = t24.`TIMESTAMP` AND t1.DEVICE = t24.DEVICE AND t1.TYPE = t24.TYPE AND t24.DEVICE = 'wetter_com_gifhorn' AND t24.READING = 'feld-19'
LEFT JOIN history AS t25 ON t1.`TIMESTAMP` = t25.`TIMESTAMP` AND t1.DEVICE = t25.DEVICE AND t1.TYPE = t25.TYPE AND t25.DEVICE = 'wetter_com_gifhorn' AND t25.READING = 'feld-20'
LEFT JOIN history AS t26 ON t1.`TIMESTAMP` = t26.`TIMESTAMP` AND t1.DEVICE = t26.DEVICE AND t1.TYPE = t26.TYPE AND t26.DEVICE = 'wetter_com_gifhorn' AND t26.READING = 'feld-21'
LEFT JOIN history AS t27 ON t1.`TIMESTAMP` = t27.`TIMESTAMP` AND t1.DEVICE = t27.DEVICE AND t1.TYPE = t27.TYPE AND t27.DEVICE = 'wetter_com_gifhorn' AND t27.READING = 'feld-22'
LEFT JOIN history AS t28 ON t1.`TIMESTAMP` = t28.`TIMESTAMP` AND t1.DEVICE = t28.DEVICE AND t1.TYPE = t28.TYPE AND t28.DEVICE = 'wetter_com_gifhorn' AND t28.READING = 'feld-23'
LEFT JOIN history AS t29 ON t1.`TIMESTAMP` = t29.`TIMESTAMP` AND t1.DEVICE = t29.DEVICE AND t1.TYPE = t29.TYPE AND t29.DEVICE = 'wetter_com_gifhorn' AND t29.READING = 'feld-24'
WHERE t1.DEVICE = 'wetter_com_gifhorn' AND t1.READING = 'Status' AND t1.`TIMESTAMP` >= CURRENT_DATE() AND t1.`TIMESTAMP` < CURRENT_DATE() + 1
ORDER BY t1.`TIMESTAMP`

Hier als Beispiel eine Zeile des Ergebnises:
ZeitStatusStatus2hdateregenfeld-01feld-02feld-03time_04feld-04feld-05feld-06feld-07feld-08feld-09feld-10feld-11feld-12feld-13feld-14feld-15feld-16feld-17feld-18feld-19feld-20feld-21feld-22feld-23feld-24
17.08.21 06:14:521117.08.21Mäßiger Niederschlag beginnt gegen 06:30 Uhr00006:250< 0.4 l/m²/h0< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h000< 0.4 l/m²/h< 0.4 l/m²/h0000

Vielleicht hilft das ja jemandem.  :D
Gruß
Tri
« Letzte Änderung: 18 August 2021, 10:54:42 von Tri »
Gefällt mir Gefällt mir x 7 Liste anzeigen

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1431
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #1 am: 19 August 2021, 00:10:26 »
Hallo Tri,
danke, wirklich hilfreich. Weisst Du evtl, ob man anstatt der Stadt, evtl auch geokordinaten angeben kann?
Also anstelle https://www.wetter.com/deutschland/gifhorn/DE0003428.html eben so was wie (das hier funktioniert nicht): https://www.wetter.com/#geo:48.1374,11.5755,7

Ich moechte das Regenradar für meine jeweilige position ausgeben, und der link lässt sich so wie angegeben nicht generisch aendern, weil sich sowohl die Stadt als auch der String "DE000XXX.html" dahinter ändert.

Danke!
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 1932
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #2 am: 19 August 2021, 06:53:37 »
Hallo Tri,
danke, wirklich hilfreich. Weisst Du evtl, ob man anstatt der Stadt, evtl auch geokordinaten angeben kann?
Also anstelle https://www.wetter.com/deutschland/gifhorn/DE0003428.html eben so was wie (das hier funktioniert nicht): https://www.wetter.com/#geo:48.1374,11.5755,7

Ich moechte das Regenradar für meine jeweilige position ausgeben, und der link lässt sich so wie angegeben nicht generisch aendern, weil sich sowohl die Stadt als auch der String "DE000XXX.html" dahinter ändert.
Da müsstest Du mal die Web Seite durchforsten und eventuell in der Hilfe nachschauen.
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #3 am: 19 August 2021, 08:59:13 »
Hallo Jamo,

ursprünglich wollte ich über die Koordinaten gehen, habe das aber so nicht hin bekommen. Vielleicht hilft da der erste Ansatz mit der Grafik der Regenwolken. Ursprünglich dachte ich daran, einen Kreis um die Position zu definieren und dort die Farbe der Pixel auszuwerten. Das Bild ist unter einem Link wie diesem zu finden:

https://overlays.w3dapi.de/radar/nearcast/wx_classified_filled_corrected_snow/20210819/202108190625/wx_classified_filled_corrected_snow_nearcast_202108190710.png

Eine Auswertung hatte ich über "Bitmaps – PNG und JPEG – in Canvas" vor. Damit können die Pixel abgefragt werden. Daraus ergibt sich dann die Aufgabe, die genaue Position in dem Bitmap zu bestimmen.

Da bei wetter.com diese Aufgabe schon für bestimmte Positionen mit Berücksichtigung der Windrichtung erledigt ist, habe ich diesen Ansatz verworfen.

Gruß
Tri

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1431
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #4 am: 19 August 2021, 10:55:43 »
Hallo Tri,
danke, ich glaube das ist mir zu kompliziert. Ich möchte fuer meine aktuelle Position die visualisierte Regenradar Vorhersage haben, deswegen die Frage.

Basierend auf deiner Lösung, habe ich, anstatt die Farben der Felder zu konvertieren (hast Du mit reading08OMap gemacht, z.B. #a6caf0:< 0.4 l/m²/h), direkt die Farben in meinen color-01 ... color-24 readings generiert.
Diese Readings habe ich dann über eine sub "color2html" in eine kleine HTML tabelle mit 24 einzelnen Feldern convertiert, also ähnlich der kleinen Graphik, die auf der Wetter.com Webseite zu sehen ist.
Das kann man sich dann über das Weblink modul anzeigen lassen, -> "defmod WetterCom_bar weblink htmlCode {color2html('WetterCom','color')}"
Startzeit und folgende Zeitabstände sind im 20 minuten Abstand über der Tabelle als Zeit mit eingetragen.
Damit erhält man eine graphische Visualisierung des Regenradars für den Standort für die nächsten 2 Stunden, wie im Bild (die Farben sind fake, bei mir gibts im moment kein Regen). Ist sehr übersichtlich.
« Letzte Änderung: 19 August 2021, 15:55:12 von Jamo »
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #5 am: 19 August 2021, 15:12:33 »
Hallo Jamo,

vielen Dank für Deinen Hinweis. Das macht als Anzeige auf alle Fälle Sinn.


Mir sind gerade eben ein oder zwei Probleme mit dem virtuellem Regensensor aufgefallen:

Aufgrund dessen, dass es gerade ganz leicht und kurz genieselt hat, und leider keine Warnung gekommen ist, habe ich die Daten aus der Datenbank abgerufen:

ZeitStatusStatus2hdateregenfeld-01feld-02feld-03time_04feld-04feld-05feld-06feld-07feld-08feld-09feld-10feld-11feld-12feld-13feld-14feld-15feld-16feld-17feld-18feld-19feld-20feld-21feld-22feld-23feld-24
19.08.2021 13:59:5800Do 19.08.Kein Niederschlag in Sicht00014:05000000000000000000000
19.08.2021 14:04:5800Do 19.08.Kein Niederschlag in Sicht00014:15000000000000000000000
19.08.2021 14:09:5800Do 19.08.Kein Niederschlag in Sicht00014:20000000000000000000000
Kommentar: Leichter Nieselregen um 14.13 Uhr ohne Warnung. War aber nur sehr kurz und sehr wenig, ist schnell wieder verdunstet. Ein normaler Regensensor hätte vielleicht auch nicht ausgelöst. Auffällig sind aber die Zeiten von „time_04“.
19.08.2021 14:14:5800Do 19.08.Kein Niederschlag in Sicht00014:20000000000000000000000
19.08.2021 14:19:5800Do 19.08.Kein Niederschlag in Sicht00014:30000000000000000000000
19.08.2021 14:24:5800Do 19.08.Kein Niederschlag in Sicht00014:35000000000000000000000
19.08.2021 14:29:5800Do 19.08.Kein Niederschlag in Sicht00014:35000000000000000000000

Das zeigt, dass die Abfrage nicht 300 sec. haben darf oder syncronisiert werden muss. Vorschlag ist, die Zeit auf 290 sec. zu stellen. Dadurch, das die Auswertungen mit time_04 für 14.10, 14.25 fehlen, könnte die Erkennung gelitten haben. Vieleicht hat wetter.com aber auch nichts gemeldet. Das werde ich nicht mehr heraus bekommen.

Gruß
Tri
« Letzte Änderung: 19 August 2021, 15:14:42 von Tri »

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #6 am: 20 August 2021, 10:51:52 »
... das Ändern der Intervalle hat keine Lösung gebracht:
ZeitStatusStatus2hdateregenfeld-01feld-02feld-03time_04feld-04feld-05feld-06feld-07feld-08feld-09feld-10feld-11feld-12feld-13feld-14feld-15feld-16feld-17feld-18feld-19feld-20feld-21feld-22feld-23feld-24
20.08.2021 09:17:4200Fr 20.08.Kein Niederschlag in Sicht00009:25000000000000000000000
20.08.2021 09:22:3200Fr 20.08.Kein Niederschlag in Sicht00009:30000000000000000000000
20.08.2021 09:27:2200Fr 20.08.Kein Niederschlag in Sicht00009:35000000000000000000000
20.08.2021 09:32:1200Fr 20.08.Kein Niederschlag in Sicht00009:40000000000000000000000
20.08.2021 09:37:0200Fr 20.08.Kein Niederschlag in Sicht00009:35000000000000000000000
20.08.2021 09:41:5200Fr 20.08.Kein Niederschlag in Sicht00009:50000000000000000000000
20.08.2021 09:46:4300Fr 20.08.Kein Niederschlag in Sicht00009:50000000000000000000000
20.08.2021 09:51:3200Fr 20.08.Kein Niederschlag in Sicht00009:55000000000000000000000
20.08.2021 09:56:2200Fr 20.08.Kein Niederschlag in Sicht00010:05000000000000000000000
20.08.2021 10:01:1200Fr 20.08.Kein Niederschlag in Sicht00010:10000000000000000000000
20.08.2021 10:06:0200Fr 20.08.Kein Niederschlag in Sicht00010:15000000000000000000000
20.08.2021 10:10:5200Fr 20.08.Kein Niederschlag in Sicht00010:20000000000000000000000
20.08.2021 10:15:4200Fr 20.08.Kein Niederschlag in Sicht00010:20000000000000000000000

Meistens funktioniert der virtuelle Regensensor - woher das oben beschriebene Problem herrührt, darüber kann ich nur spekulieren. Zum Teil geht die Zeit auch 5 min. zurück. Eventuell steht die Seite - obwohl explizit ausgeschlossen - auf irgend welchen Internet-Servern im Cache.

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #7 am: 22 August 2021, 08:29:48 »
Heute kam ein leichter Regen ca. 1 Minute eher als die Meldung um 07:51:31. Es muss also ein Feld mehr, feld-08, ausgewertet werden um die Markise effektiv zu schützen. Dann wäre ein Befehl bzw. in diesem Fall eine Meldung um 07:41:50 gekommen.

ZeitStatusStatus2hdateregenfeld-01feld-02feld-03time_04feld-04feld-05feld-06feld-07feld-08feld-09feld-10feld-11feld-12feld-13feld-14feld-15feld-16feld-17feld-18feld-19feld-20feld-21feld-22feld-23feld-24
22.08.2021 06:58:2000So 22.08.Kein Niederschlag in Sicht00007:00000000000000000000000
22.08.2021 07:03:1000So 22.08.Kein Niederschlag in Sicht00007:00000000000000000000000
22.08.2021 07:08:0001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:30 Uhr00007:100000000000000000< 0.4 l/m²/h< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:12:5001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:30 Uhr00007:100000000000000000< 0.4 l/m²/h< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:17:4001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:30 Uhr00007:2000000000000000< 0.4 l/m²/h< 0.4 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:22:3101So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:25 Uhr00007:3000000000000< 0.4 l/m²/h< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:27:2101So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:10 Uhr00007:350000000< 0.4 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:32:1001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:25 Uhr00007:3000000000000< 0.4 l/m²/h< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:37:0101So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:10 Uhr00007:350000000< 0.4 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:41:5001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:00 Uhr00007:400000< 0.4 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:46:4001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:05 Uhr00007:450000< 0.4 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 07:51:3111So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:00 Uhr00008:00< 0.4 l/m²/h< 0.4 l/m²/h< 0.4 l/m²/h< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 0.4 l/m²/h
22.08.2021 07:56:2001So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:15 Uhr00007:550000< 0.4 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h
22.08.2021 08:01:1211So 22.08.Mäßiger Niederschlag beginnt gegen 08:05 Uhr00< 0.4 l/m²/h08:100< 0.4 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h
22.08.2021 08:06:0111So 22.08.Zumeist mäßiger Niederschlag in wechselnder Intensität beginnt gegen 08:20 Uhr00008:150< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 8.1 l/m²/h< 1.9 l/m²/h< 1.9 l/m²/h

Offline gestein

  • Sr. Member
  • ****
  • Beiträge: 973
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #8 am: 25 August 2021, 12:34:44 »
Hallo,

ich wollte das gerade ausprobieren und habe das HTTPMOD entsprechend angepasst.
Zuerst musste ich aber noch das Attribut "bodyDecode" auf "auto" setzen:
defmod wetter_com_1200 HTTPMOD https://at.wetter.com/oesterreich/brigittenau/ATAT10678010.html 300
attr wetter_com_1200 bodyDecode auto
attr wetter_com_1200 comment https://forum.fhem.de/index.php/topic,122508.msg1170713.html#msg1170713
attr wetter_com_1200 reading01Name regen
attr wetter_com_1200 reading01Regex <span.id=\"nowcast-text\".class=\"portable-mb--\">\W*(.*)\W*</span>
attr wetter_com_1200 reading02Name date
attr wetter_com_1200 reading02Regex <div class=\"\[.forecast-navigation-grid.\]\">\W*<a.data-label=\"VHSTabTag_1\"\W*class=\"\[.is-active.\]\"\W*.*\W*.*\W*.*\W*.*\W*.*\W*<div>\W*(.*)\W*<\>
attr wetter_com_1200 reading08-1Name feld-01
attr wetter_com_1200 reading08-25Name time_04
attr wetter_com_1200 reading08-2Name feld-02
attr wetter_com_1200 reading08-3Name feld-03
attr wetter_com_1200 reading08-4Name feld-04
attr wetter_com_1200 reading08-5Name feld-05
attr wetter_com_1200 reading08-6Name feld-06
attr wetter_com_1200 reading08-7Name feld-07
attr wetter_com_1200 reading08-8Name feld-08
attr wetter_com_1200 reading08-9Name feld-09
attr wetter_com_1200 reading08Name feld
attr wetter_com_1200 reading08OMap #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)
attr wetter_com_1200 reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*</tr>\W*<tr>\W*<td.colspan=\"2\".*Jetzt\W*</td>\W*<td colspan="2".*>(.*)</td>
attr wetter_com_1200 room KLF200Node
attr wetter_com_1200 stateFormat date time_04 Regen aktuell: Status Regen 2h: Status2h Text: regen <html>website: <a target= "_blank" href="https://at.wetter.com/oesterreich/brigittenau/ATAT10678010.html">wetter.com</a></html>
attr wetter_com_1200 userReadings Status:feld-01.* {\
  0 + \
  (ReadingsVal("wetter_com_1200","feld-01",0) ne 0 || \
  ReadingsVal("wetter_com_1200","feld-02",0) ne 0 || \
  ReadingsVal("wetter_com_1200","feld-03",0) ne 0 || \
  ReadingsVal("wetter_com_1200","feld-04",0) ne 0 || \
  ReadingsVal("wetter_com_1200","feld-05",0) ne 0 || \
  ReadingsVal("wetter_com_1200","feld-06",0) ne 0 || \
  ReadingsVal("wetter_com_1200","feld-07",0) ne 0 );;;; },\
Status2h:regen.* {\
  0 + ( ReadingsVal("wetter_com_1200","regen",0) ne "Kein Niederschlag in Sicht" );;;; },\
Status_old,\
Status2h_old\

Allerdings hängt sich fhem auf, sobald das Device auf die wetter.com-Seite zugreift.
Die letzten log-Einträge sind:
2021.08.25 12:31:32.896 4: wetter_com_1200: BodyDecode is decoding the response body as UTF-8 (charset header UTF-8, bodyDecode set to auto)
2021.08.25 12:31:32.925 5: wetter_com_1200: GetCookies is looking for Cookies
2021.08.25 12:31:32.926 5: wetter_com_1200: ExtractSid called, context reading, num unknown
2021.08.25 12:31:32.926 4: wetter_com_1200: checking for redirects, code=200, ignore=0
2021.08.25 12:31:32.926 4: wetter_com_1200: no redirects to handle
2021.08.25 12:31:32.927 5: wetter_com_1200: Read callback sets LAST_REQUEST to update
2021.08.25 12:31:32.927 5: wetter_com_1200: CheckAuth decided no authentication required
2021.08.25 12:31:32.927 5: wetter_com_1200: UpdateReadingList created list of reading.* nums to parse during getUpdate as 01 02 08
2021.08.25 12:31:32.928 5: wetter_com_1200: Read starts parsing response to update with defined readings: 01,02,08
2021.08.25 12:31:32.929 5: wetter_com_1200: ExtractReading regen with regex /(?^:<span.id=\"nowcast-text\".class=\"portable-mb--\">\W*(.*)\W*</span>)/...
2021.08.25 12:31:32.930 5: wetter_com_1200: ExtractReading regen did not match
2021.08.25 12:31:32.930 5: wetter_com_1200: ExtractReading date with regex /(?^:<div class=\"\[.forecast-navigation-grid.\]\">\W*<a.data-label=\"VHSTabTag_1\"\W*class=\"\[.is-active.\]\"\W*.*\W*.*\W*.*\W*.*\W*.*\W*<div>\W*(.*)\W*<\>)/...

Das war es dann. Mehr kommt nicht.
Weiß jemand, woran das liegen kann?

Danke im Voraus
liebe Grüße
Gerhard
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #9 am: 25 August 2021, 20:00:39 »
Hallo Gerhard,

ich habe mal die Seite https://at.wetter.com/oesterreich/brigittenau/ATAT10678010.html aufgerufen. Ich vermisse da die Regenvorhersage. Unter https://www.wetter.com/deutschland/gifhorn/DE0003428.html sieht das anders aus. Die Bilder sind im Anhang. Das dürft aber nicht der Grund für einen Absturz sein. Vielleicht liegt es aber auch an den Berechtigungen der Seite, die ich (nicht?) gegeben habe. Wie sehen den die Readings aus?

Gruß
Tri
« Letzte Änderung: 25 August 2021, 20:13:07 von Tri »

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 1932
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #10 am: 26 August 2021, 10:31:33 »
Hallo zusammen,
auch ich muss leider von einem FHEM Absturz berichten, wenn HTTPMOD auf meine wetter.com Stadt zugreift.

Generell finde ich aber eine tolle Idee, die ich in meine PV-Leistungsprognose einbinden möchte. Dort verarbeite ich momentan nur die Regenwahrscheinlichkeit vom DWD mit 3h Update.
Da Regen einen starken Einfluss auf die PV-Leistung hat wäre eine exaktere Prognose über das Regenradar von größtem Interesse.

VG
    Christian
« Letzte Änderung: 26 August 2021, 15:15:06 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline enno

  • Sr. Member
  • ****
  • Beiträge: 767
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #11 am: 26 August 2021, 13:16:40 »
Moin Tri,

wenn ich dein defmod aus dem ersten Post bei mir eingebe, hängt sich FHEM mit 100% Auslastung weg und ich muss es neu starten.

Wenn ich die Attribute einzeln anlege, passiert es bei folgender Zeile:
attr wetter_com_gifhorn reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*</tr>\W*<tr>\W*<td.colspan=\"2\".*Jetzt\W*</td>\W*<td colspan="2".*>(.*)</td>
Eine Idee, was das Problem sein könnte?

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1431
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #12 am: 26 August 2021, 13:21:24 »
Hallo Enno,
ja das hatte ich auch, liegt am Regexp, kann man unter https://regex101.com/ auch reproduzieren, das liefert eine 'undefinite loop' oder so was.
Ich hatte dann folgendes Regex, damit sollte das funktionieren:
reading08Regex <td.class=\"\[.colorcell.top.border..grey.bottom.border..grey.left.border..grey.\]\".style=\"background.color.(.*?)\;;\"\X*?\"
background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"
background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"
background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color:(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"
background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"
background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"
background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?\"background.color.(.*?)\;;\"\X*?data-nowcastKey=\"3\">(.*?)<
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #13 am: 26 August 2021, 15:03:20 »
Hallo zusammen,

das Problem kommt eventuell von der Eingabe in FHEM. Oben habe ich ja geschrieben, dass ich das über "RAW" gemacht habe.

Getestet habe ich jetzt nochmal mit https://regex101.com/ und https://www.wetter.com/deutschland/gifhorn/DE0003428.html

Ich habe dann den regex-String über die FHEM-Webseite (attr) wieder raus kopiert, da es zum Testen sonst nicht funktioniert: (durch z.B. doppelte Semikolon)
<table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*</tr>\W*<tr>\W*<td.colspan=\"2\".*Jetzt\W*</td>\W*<td colspan="2".*>(.*)</td>
Dann hatte ich das Ergebnis wie im Anhang.

Gruß
Tri

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 1932
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #14 am: 26 August 2021, 15:23:23 »
Gibt es denn dann jetzt eine saubere, komplette Definition?
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1439
  • 🏠⚙️💡🛠📱
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #15 am: 26 August 2021, 15:50:16 »
Gibt es denn dann jetzt eine saubere, komplette Definition?

Nö. Hab jetzt alle Beispiele für Regex08 durch und bei allen schmiert FHEM ab sobald versucht wird die Daten abzuholen.
Hab wieder auf disabled 1 gesetzt...
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #16 am: 26 August 2021, 20:16:43 »
TYPE
HTTPMOD
ModuleVersion
4.1.10 - 6.7.2021

Meine aktuelle Konfig:
defmod wetter_com_gifhorn HTTPMOD https://www.wetter.com/deutschland/gifhorn/DE0003428.html 290
attr wetter_com_gifhorn DbLogExclude .*
attr wetter_com_gifhorn DbLogInclude Status,Status2h,regen,date,time_04,feld-\d*,wolken
attr wetter_com_gifhorn reading01Name regen
attr wetter_com_gifhorn reading01Regex <span.id=\"nowcast-text\".class=\"portable-mb--\">\W*(.*)\W*</span>
attr wetter_com_gifhorn reading02Name date
attr wetter_com_gifhorn reading02Regex <div class=\"\[.forecast-navigation-grid.\]\">\W*<a.data-label=\"VHSTabTag_1\"\W*class=\"\[.is-active.\]\"\W*.*\W*.*\W*.*\W*.*\W*.*\W*<div>\W*(.*)\W*<\/div>
attr wetter_com_gifhorn reading03Name wolken
attr wetter_com_gifhorn reading03OMap wolkenlos:0/8 wolkenlos,sonnig:1/8 sonnig,heiter:2/8 heiter,leicht bew\u00f6lkt:3/8 leicht bewölkt,wolkig:4/8 wolkig,bew\u00f6lkt:5/8 bewölkt,stark bew\u00f6lkt:6/8 stark bewölkt,fast bedeckt:7/8 fast bedeckt,bedeckt:8/8 bedeckt
attr wetter_com_gifhorn reading03Regex <div.id..rtw_cnt..data-rtw..*..quot.*shortText.quot...quot.(.*).quot...quot.*longText.*quot
attr wetter_com_gifhorn reading08-1Name feld-01
attr wetter_com_gifhorn reading08-25Name time_04
attr wetter_com_gifhorn reading08-2Name feld-02
attr wetter_com_gifhorn reading08-3Name feld-03
attr wetter_com_gifhorn reading08-4Name feld-04
attr wetter_com_gifhorn reading08-5Name feld-05
attr wetter_com_gifhorn reading08-6Name feld-06
attr wetter_com_gifhorn reading08-7Name feld-07
attr wetter_com_gifhorn reading08-8Name feld-08
attr wetter_com_gifhorn reading08-9Name feld-09
attr wetter_com_gifhorn reading08Name feld
attr wetter_com_gifhorn reading08OMap #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)
attr wetter_com_gifhorn reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*</tr>\W*<tr>\W*<td.colspan=\"2\".*Jetzt\W*</td>\W*<td colspan="2".*>(.*)</td>
attr wetter_com_gifhorn room KLF200Node
attr wetter_com_gifhorn stateFormat date time_04 Regen aktuell: Status, Regen 2h: Status2h, wolken, regen, <html><a target= "_blank" href="https://www.wetter.com/deutschland/gifhorn/DE0003428.html">wetter.com</a></html>
attr wetter_com_gifhorn userReadings Status:feld-01.* {\
  0 + \
  (ReadingsVal("wetter_com_gifhorn","feld-01",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-02",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-03",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-04",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-05",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-06",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-07",0) ne 0 );;;; },\
Status2h:regen.* {\
  0 + ( ReadingsVal("wetter_com_gifhorn","regen",0) ne "Kein Niederschlag in Sicht" );;;; },\
Status_old,\
Status2h_old\

Die Readings
setstate wetter_com_gifhorn Do 26.08. 19:55 Regen aktuell: 0, Regen 2h: 0, 7/8 fast bedeckt, Kein Niederschlag in Sicht, <html><a target= "_blank" href="https://www.wetter.com/deutschland/gifhorn/DE0003428.html">wetter.com</a></html>
setstate wetter_com_gifhorn 2021-08-26 19:48:29 Status 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 Status2h 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 Status2h_old 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 Status_old 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 date Do 26.08.
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-01 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-02 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-03 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-04 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-05 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-06 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-07 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-08 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-09 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-10 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-11 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-12 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-13 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-14 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-15 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-16 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-17 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-18 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-19 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-20 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-21 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-22 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-23 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 feld-24 0
setstate wetter_com_gifhorn 2021-08-26 19:48:29 regen Kein Niederschlag in Sicht
setstate wetter_com_gifhorn 2021-08-26 19:48:29 time_04 19:55
setstate wetter_com_gifhorn 2021-08-26 19:48:29 wolken 7/8 fast bedeckt

Also im Prinzip alles so ähnlich wie oben beschrieben. Was ich zugefügt habe, ist eine Auswertung der Wolken. Die ModuleVersion sollte auf alle Fälle kontrolliert werden. Bei reading02Regex habe ich scheinbar auch etwas angepasst: <\/div>

Das teilweise auf wetter.com keine Auswertung vorhanden ist, steht ja oben beschrieben.

Ich hatte bislang keinen einzigen Absturz, kann diese Probleme aus diesem Grund auch nicht nachvollziehen. Da müssen schon noch mehr Informationen kommen, wie z.B. die Readings. Was zu beachten bleibt ist, das ich eine Datenbank mariadb benutze.

Offline enno

  • Sr. Member
  • ****
  • Beiträge: 767
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #17 am: 26 August 2021, 21:05:40 »
Moin Tri,

mit deinem neuen Vorschlag funktioniert es bei mir. Jetzt werde ich mir das für meinen Wohnort umstricken...

Erst mal danke für die Idee!

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1439
  • 🏠⚙️💡🛠📱
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #18 am: 27 August 2021, 13:01:23 »
TYPE
HTTPMOD
ModuleVersion
4.1.10 - 6.7.2021

Meine aktuelle Konfig:
defmod wetter_com_gifhorn HTTPMOD https://www.wetter.com/deutschland/gifhorn/DE0003428.html 290
attr wetter_com_gifhorn DbLogExclude .*
attr wetter_com_gifhorn DbLogInclude Status,Status2h,regen,date,time_04,feld-\d*,wolken
attr wetter_com_gifhorn reading01Name regen
attr wetter_com_gifhorn reading01Regex <span.id=\"nowcast-text\".class=\"portable-mb--\">\W*(.*)\W*</span>
attr wetter_com_gifhorn reading02Name date
attr wetter_com_gifhorn reading02Regex <div class=\"\[.forecast-navigation-grid.\]\">\W*<a.data-label=\"VHSTabTag_1\"\W*class=\"\[.is-active.\]\"\W*.*\W*.*\W*.*\W*.*\W*.*\W*<div>\W*(.*)\W*<\/div>
attr wetter_com_gifhorn reading03Name wolken
attr wetter_com_gifhorn reading03OMap wolkenlos:0/8 wolkenlos,sonnig:1/8 sonnig,heiter:2/8 heiter,leicht bew\u00f6lkt:3/8 leicht bewölkt,wolkig:4/8 wolkig,bew\u00f6lkt:5/8 bewölkt,stark bew\u00f6lkt:6/8 stark bewölkt,fast bedeckt:7/8 fast bedeckt,bedeckt:8/8 bedeckt
attr wetter_com_gifhorn reading03Regex <div.id..rtw_cnt..data-rtw..*..quot.*shortText.quot...quot.(.*).quot...quot.*longText.*quot
attr wetter_com_gifhorn reading08-1Name feld-01
attr wetter_com_gifhorn reading08-25Name time_04
attr wetter_com_gifhorn reading08-2Name feld-02
attr wetter_com_gifhorn reading08-3Name feld-03
attr wetter_com_gifhorn reading08-4Name feld-04
attr wetter_com_gifhorn reading08-5Name feld-05
attr wetter_com_gifhorn reading08-6Name feld-06
attr wetter_com_gifhorn reading08-7Name feld-07
attr wetter_com_gifhorn reading08-8Name feld-08
attr wetter_com_gifhorn reading08-9Name feld-09
attr wetter_com_gifhorn reading08Name feld
attr wetter_com_gifhorn reading08OMap #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)
attr wetter_com_gifhorn reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*</tr>\W*<tr>\W*<td.colspan=\"2\".*Jetzt\W*</td>\W*<td colspan="2".*>(.*)</td>
attr wetter_com_gifhorn room KLF200Node
attr wetter_com_gifhorn stateFormat date time_04 Regen aktuell: Status, Regen 2h: Status2h, wolken, regen, <html><a target= "_blank" href="https://www.wetter.com/deutschland/gifhorn/DE0003428.html">wetter.com</a></html>
attr wetter_com_gifhorn userReadings Status:feld-01.* {\
  0 + \
  (ReadingsVal("wetter_com_gifhorn","feld-01",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-02",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-03",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-04",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-05",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-06",0) ne 0 || \
  ReadingsVal("wetter_com_gifhorn","feld-07",0) ne 0 );;;; },\
Status2h:regen.* {\
  0 + ( ReadingsVal("wetter_com_gifhorn","regen",0) ne "Kein Niederschlag in Sicht" );;;; },\
Status_old,\
Status2h_old\

Mit dieser Definition klappt der Datenabruf bei mir ebenfalls und dann werden auch die Readings befüllt.
Danke und VG,
Sebastian
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

Offline binford6000

  • Tester
  • Hero Member
  • ****
  • Beiträge: 1439
  • 🏠⚙️💡🛠📱
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #19 am: 27 August 2021, 18:04:58 »
Aktuell habe ich noch folgende Meldung im Log:
2021.08.27 18:00:31 3: rain.fc: MapConvert called from FormatReading did not find 18:05 (18:05) in map #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)
Proxmox mit: nextcloud, fhem, pihole, docker, bitwarden, deconz, TasmoAdmin
fhem mit: deconz, Sonos2mqtt, alexa-fhem, homebridge, Signalbot, livetracking, fhemApp als Frontend
Testumgebung: docker pull fhem/fhem

Offline enno

  • Sr. Member
  • ****
  • Beiträge: 767
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #20 am: 27 August 2021, 18:38:40 »
Aktuell habe ich noch folgende Meldung im Log:
2021.08.27 18:00:31 3: rain.fc: MapConvert called from FormatReading did not find 18:05 (18:05) in map #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)

Habe ich auch. Ist nur eine Info (Level 3). Daher Verbose 2 und Ruhe ist.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

Offline jkriegl

  • Full Member
  • ***
  • Beiträge: 312
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #21 am: 28 August 2021, 17:55:56 »
Habe per ui_Table (DOIF) die Regen-Prognose visualisiert.
Verbesserungen Zeit und Farbe sind noch möglich.
Auf uns kommte heftiger Regen zu!
« Letzte Änderung: 28 August 2021, 17:57:55 von jkriegl »
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Helmi55

  • Hero Member
  • *****
  • Beiträge: 1425
    • Helmi's Fotoseite
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #22 am: 28 August 2021, 18:48:35 »
guten Abend Leute
das würde mir sehr gut gefallen - ABER - was muss ich ändern wenn ich keine DB Log Datei verwende?
Habe naiver weise nur die 2 Zeilen gelöscht - aber das wäre zu einfach  8)

Gruß und Danke
Helmut
System1 fhem 6.0 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.0 auf RPi 4B mit 4GB mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #23 am: 28 August 2021, 18:53:42 »
Habe per ui_Table (DOIF) die Regen-Prognose visualisiert.
Verbesserungen Zeit und Farbe sind noch möglich.
Auf uns kommte heftiger Regen zu!

DOIF/uiTable Schnelleinstieg: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg

Offline Helmi55

  • Hero Member
  • *****
  • Beiträge: 1425
    • Helmi's Fotoseite
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #24 am: 28 August 2021, 19:58:34 »
Wenn das für mich gemeint war Danke.
Aber ich meinte die Grundconfig bezüglich DB Datenbank
Gruß
Helmut
System1 fhem 6.0 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.0 auf RPi 4B mit 4GB mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Offline gestein

  • Sr. Member
  • ****
  • Beiträge: 973
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #25 am: 28 August 2021, 20:33:43 »
ich habe mal die Seite https://at.wetter.com/oesterreich/brigittenau/ATAT10678010.html aufgerufen. Ich vermisse da die Regenvorhersage. Unter https://www.wetter.com/deutschland/gifhorn/DE0003428.html sieht das anders aus. Die Bilder sind im Anhang. Das dürft aber nicht der Grund für einen Absturz sein. Vielleicht liegt es aber auch an den Berechtigungen der Seite, die ich (nicht?) gegeben habe. Wie sehen den die Readings aus?

Hallo Tri,

da hast Du wohl recht. Anscheinend wird in Österreich kein Regen angegeben.
Schade.
Danke für Deine Hilfe!
lg, Gerhard

Offline Esjay

  • Hero Member
  • *****
  • Beiträge: 1120
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #26 am: 28 August 2021, 21:49:53 »
Wenn das für mich gemeint war Danke.
Aber ich meinte die Grundconfig bezüglich DB Datenbank
Gruß
Helmut

Was ist denn dein Ziel? Das Device an und für sich sollte auch ohne Datenbank funktionieren.
Geht irgendwas nicht?

Grüße

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #27 am: 29 August 2021, 08:56:09 »
Hallo Helmi55,

der Link DOIF/uiTable Schnelleinstieg: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg war eher für mich und andere, die nicht gerne suchen, sorry.  ;)

Ich habe das mal auf die Grundfunktion runter gebrochen, damit sollte es übersichtlicher werden:

defmod wetter_com_gifhorn HTTPMOD https://www.wetter.com/deutschland/gifhorn/DE0003428.html 290
attr wetter_com_gifhorn reading08Name feld
attr wetter_com_gifhorn reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;
attr wetter_com_gifhorn stateFormat Status
attr wetter_com_gifhorn userReadings Status:feld-1.* { \
0 + \
(ReadingsVal("wetter_com_gifhorn","feld-1",0) ne "#fff" || \
ReadingsVal("wetter_com_gifhorn","feld-2",0) ne "#fff" || \
ReadingsVal("wetter_com_gifhorn","feld-3",0) ne "#fff" || \
ReadingsVal("wetter_com_gifhorn","feld-4",0) ne "#fff" || \
ReadingsVal("wetter_com_gifhorn","feld-5",0) ne "#fff" || \
ReadingsVal("wetter_com_gifhorn","feld-6",0) ne "#fff" || \
ReadingsVal("wetter_com_gifhorn","feld-7",0) ne "#fff" );;;; }


Gruß
Tri

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 1932
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #28 am: 29 August 2021, 09:06:00 »
Wenn das für mich gemeint war Danke.
Aber ich meinte die Grundconfig bezüglich DB Datenbank
Hallo Helmut,
ohne DbLog nimmst Du einfach die Einträge raus, dann bleibt das einfache Device und im Anschluss kannst Du Dir ein FileLog definieren, wie Du es bei anderen devices sicher auch hast.
Generell wäre es für die Zukunft aber sicher schöner, wenn Du eine Datenbank nimmst und das dann mit Grafana auswertest. Das ist am Anfang etwas Arbeit, macht aber dann mächtig Spaß.

Für der RPI gibt es auch einen Docker Container für MySQL und auch für Grafana.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline jkriegl

  • Full Member
  • ***
  • Beiträge: 312
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #29 am: 29 August 2021, 10:18:07 »
Bei mir funktioniert alles ohne die beiden DB-attr-Einträge. (s. Lösung von Sebastian).
Warum soll ich Prognosewerte aufzeichnen? Höchstens um zu prüfen, ob diese auch etwas taugen.
Vorschlag: im userReading $name statt <device> verwenden, dann ist so etwas einfacher zu übertragen.
Sorry: die Lösung ist von Tri.
« Letzte Änderung: 29 August 2021, 10:20:51 von jkriegl »
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Offline Tri

  • New Member
  • *
  • Beiträge: 14
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #30 am: 29 August 2021, 11:53:48 »
Hallo jkriegl,

guter Hinweis mit $name, hier die geänderte einfache Version (Zeile mit DbLogExclude löschen):

defmod wetter_com_gifhorn HTTPMOD https://www.wetter.com/deutschland/gifhorn/DE0003428.html 290
attr wetter_com_gifhorn DbLogExclude .*
attr wetter_com_gifhorn reading08Name feld
attr wetter_com_gifhorn reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;.*</td>\W*<td class=\".*style=\"background-color:(.*);;
attr wetter_com_gifhorn stateFormat Status
attr wetter_com_gifhorn userReadings Status:feld-1.* { \
0 + \
(ReadingsVal($name,"feld-1",0) ne "#fff" || \
ReadingsVal($name,"feld-2",0) ne "#fff" || \
ReadingsVal($name,"feld-3",0) ne "#fff" || \
ReadingsVal($name,"feld-4",0) ne "#fff" || \
ReadingsVal($name,"feld-5",0) ne "#fff" || \
ReadingsVal($name,"feld-6",0) ne "#fff" || \
ReadingsVal($name,"feld-7",0) ne "#fff" );;;; }


Gruß
Tri

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8698
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #31 am: 29 August 2021, 17:40:23 »
Falls jemand Klartextmeldung braucht:

attr <device> reading01Name Ansage
attr <device> reading01Regex <span id="nowcast-text" class="portable-mb--">\W*(.*)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11066
  • NIVEAu ist keine Creme...
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #32 am: 31 August 2021, 12:29:08 »
Hallo und vielen Dank für diese Idee! :)

Ich hab (für mich) ein wenig "rumgespielt" und folgendes bei mir laufen:

ich habe das userReadings-Zeugs in myUtils "ausgelagert" und erweitert
sub my_userReadingsWetterCom($$$$)
{
  my ($Device, $Start, $End, $Mode) = @_;
  my $LoopStart = $Start;
  my $ReturnTxt = "kein Niederschlag";
  my $ReturnNum = 0;
  my $RainVolume = 0;
  my $RainVolumeAvg = 0;
  my $FieldNum = "01";
  my $NoRainLimit = AttrVal($Device, "my_NoRainLimit", 0);
  my $LowRainLimit = AttrVal($Device, "my_LowRainLimit", 2);
  my $MediumRainLimit = AttrVal($Device, "my_MediumRainLimit", 5);
  my $HighRainLimit = AttrVal($Device, "my_HighRainLimit", 10);
 
#  Log3(undef, 1, "my_userReadingsWetterCom    Start: $Start      End: $End");

  while($LoopStart <= $End)
  {
    $FieldNum = sprintf("%02u", $LoopStart);
    $RainVolume += ReadingsNum($Device,"feld-$FieldNum",0);
    $LoopStart++;
  }
  $RainVolumeAvg = $RainVolume / ($End - $Start);
#  Log3(undef, 1, "my_userReadingsWetterCom    RainVolume: $RainVolume      RainVolumeAvg: $RainVolumeAvg     NoRainLimit: $NoRainLimit     LowRainLimit: $LowRainLimit    MediumRainLimit: $MediumRainLimit    HighRainLimit: $HighRainLimit");
 
  if($RainVolumeAvg > $HighRainLimit)
  {
    $ReturnTxt = "sehr starker Niederschlag";
    $ReturnNum = 4;
  }
  elsif($RainVolumeAvg > $MediumRainLimit)
  {
    $ReturnTxt = "starker Niederschlag";
    $ReturnNum = 3;
  }
  elsif($RainVolumeAvg > $LowRainLimit)
  {
    $ReturnTxt = "Niederschlag";
    $ReturnNum = 2;
  }
  elsif($RainVolumeAvg > $NoRainLimit)
  {
    $ReturnTxt = "leichter Niederschlag";
    $ReturnNum = 1;
  }

  if($Mode eq "txt")
  {
    return $ReturnTxt;
  }
  else
  {
    return $ReturnNum;
  }
}
(jaja, ich weiß: Prototypen / will jetzt aber hier gar nicht diskutieren, ich mach das so basta, wer ohne will: feel free ;)  )

EDIT: einige Fehler korrigiert! SORRY! ;) 

Die Logeinträge kann man nat. auch rausnehmen, waren nur für mich zum "Debuggen"...

Dann nat. die userReadings anpassen.
Ich habe hier mal die Möglichkeit mit Nummer (besser für programmatische Reaktionen) und Text (habe ich als "Anzeige"):
Status:feld-01.* {my_userReadingsWetterCom("$name", 1, 7, "txt")},
Status1h:feld-01.* {my_userReadingsWetterCom("$name", 8, 15, "txt")},
Status2h:feld-01.* {my_userReadingsWetterCom("$name", 16, 21, "txt")},
Status_num:feld-01.* {my_userReadingsWetterCom("$name", 1, 7, "num")},
Status1h_num:feld-01.* {my_userReadingsWetterCom("$name", 8, 15, "num")},
Status2h_num:feld-01.* {my_userReadingsWetterCom("$name", 16, 21, "num")}

Man kann nun leicht anpassen, wenn man andere "field-Nummern" haben will oder weitere Unterteilungen der Zeit bzw. wenn jemand andere Nummern-Zeit-Zuordnungen will, einfach entsprechend Start/Stopp anpassen... ;)

EDIT: entsprechend habe ich auch mein stateFormat angepasst
date time_04
</br>Aktuell: Status
</br>In 1h: Status1h
</br>In 2h: Status2h
</br>regen

Und dann habe ich noch eigene Attribute beigefügt, wo ich eben "einstellen" kann, was für mich "kein Regen", "wenig Regen", "Regen" und "(sehr) viel Regen" bedeutet...
Zum Vergleich wird immer der Durchschnittswert des angegebenen "Zeitraums" (bzw. Start-Field -> End-Field) genommen...
userattr my_NoRainLimit my_LowRainLimit my_MediumRainLimit my_HighRainLimit
Dann halt noch die Attribute entsprechend mit den Limit-Werten versehen, meine aktuelle Einstellung (mag sich noch ändern ;)  ):
my_HighRainLimit 10
my_LowRainLimit 3
my_MediumRainLimit 6
my_NoRainLimit 0.5

Ich hoffe ich hab jetzt (hier beim Posten) keinen "Murks" reingebracht...
...viel testen konnte ich noch nicht, da es (nat.) gerade NICHT regnet und auch nichts angekündigt ist...
...vielleicht kann das ja noch wer brauchen (oder verbessern).

Achja: ich hab das mal parallel mit meinem Regensensor laufen lassen...
...naja die Markise würde ich danach nicht steuern...
...aber so als "Forecast" ist es echt toll! :)

Gruß, Joachim
« Letzte Änderung: 09 September 2021, 19:11:12 von MadMax-FHEM »
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 RaspiOS (Test)
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Helmi55

  • Hero Member
  • *****
  • Beiträge: 1425
    • Helmi's Fotoseite
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #33 am: 31 August 2021, 12:45:52 »
Hallo und Danke (für den Hinweis bezüglich DB)
Leider funktioniert es in Österreich tatsächlich nicht.
Hier schüttet es und die Anzeige sagt kein Niederschlag in Sicht (naj vielleicht nachher :'()

Hier mein list:
Internals:
   BUSY       0
   DEF        https://at.wetter.com/oesterreich/st-andrae-woerdern/ATAT10573.html 290
   FUUID      612c9ac5-f33f-c23a-cbce-75d1f33fe193c9e6
   Interval   290
   MainURL    https://at.wetter.com/oesterreich/st-andrae-woerdern/ATAT10573.html
   ModuleVersion 4.1.10 - 6.7.2021
   NAME       wetter_com_woerdern
   NOTIFYDEV  global
   NR         44
   NTFY_ORDER 50-wetter_com_woerdern
   STATE      Status
   TYPE       HTTPMOD
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://at.wetter.com:443
     auth       0
     code       200
     compress   1
     conn       
     data       
     displayurl https://at.wetter.com/oesterreich/st-andrae-woerdern/ATAT10573.html
     header     
     host       at.wetter.com
     httpheader HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: public
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Tue, 31 Aug 2021 10:42:41 GMT
Expires: Tue, 31 Aug 2021 10:47:41 GMT
grace: none
Vary: X-MOBILE-POC, X-PROGRAMMATIC, X-OASIS-VERSION, X-CMP-GROUP, X-PWA-GROUP, X-IE-USER, X-CMP-RELOAD, User-Agent, Accept-Encoding
X-Backend: green
X-Cache: MISS
X-Cache-Hits: 0
X-Content-Type-Options: nosniff
X-Forwarded-Proto: https
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Connection: Close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /oesterreich/st-andrae-woerdern/ATAT10573.html
     protocol   https
     redirects  0
     timeout    2
     url        https://at.wetter.com/oesterreich/st-andrae-woerdern/ATAT10573.html
     sslargs:
   QUEUE:
   READINGS:
     2021-08-31 12:42:42   date            Di 31.08.
     2021-08-31 11:25:22   feld-01         0
     2021-08-31 11:25:22   feld-02         0
     2021-08-31 11:25:22   feld-03         0
     2021-08-31 11:25:22   feld-04         0
     2021-08-31 11:25:22   feld-05         0
     2021-08-31 11:25:22   feld-06         0
     2021-08-31 11:25:22   feld-07         0
     2021-08-29 12:55:26   feld-08         0
     2021-08-29 12:55:26   feld-09         0
     2021-08-29 12:55:26   feld-10         0
     2021-08-29 12:55:26   feld-11         0
     2021-08-29 12:55:26   feld-12         0
     2021-08-29 12:55:26   feld-13         0
     2021-08-29 12:55:26   feld-14         0
     2021-08-29 12:55:26   feld-15         0
     2021-08-29 12:55:26   feld-16         0
     2021-08-29 12:55:26   feld-17         0
     2021-08-29 12:55:26   feld-18         0
     2021-08-29 12:55:26   feld-19         0
     2021-08-29 12:55:26   feld-20         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-21         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-22         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-23         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-24         < 0.4 l/m²/h
     2021-08-31 11:25:22   regen           Kein Niederschlag in Sicht
     2021-08-29 12:55:26   time_04         12:55
     2021-08-31 12:42:42   wolken          m\u00e4\u00dfiger Regen
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://at.wetter.com/oesterreich/st-andrae-woerdern/ATAT10573.html
   defptr:
     readingBase:
       date       reading
       wolken     reading
     readingNum:
       date       02
       wolken     03
     readingOutdated:
     requestReadings:
       update:
         date       reading 02
         wolken     reading 03
Attributes:
   reading01Name regen
   reading01Regex <span.id=\"nowcast-text\".class=\"portable-mb--\">\W*(.*)\W*</span>
   reading02Name date
   reading02Regex <div class=\"\[.forecast-navigation-grid.\]\">\W*<a.data-label=\"VHSTabTag_1\"\W*class=\"\[.is-active.\]\"\W*.*\W*.*\W*.*\W*.*\W*.*\W*<div>\W*(.*)\W*<\/div>
   reading03Name wolken
   reading03OMap wolkenlos:0/8 wolkenlos,sonnig:1/8 sonnig,heiter:2/8 heiter,leicht bew\u00f6lkt:3/8 leicht bewölkt,wolkig:4/8 wolkig,bew\u00f6lkt:5/8 bewölkt,stark bew\u00f6lkt:6/8 stark bewölkt,fast bedeckt:7/8 fast bedeckt,bedeckt:8/8 bedeckt
   reading03Regex <div.id..rtw_cnt..data-rtw..*..quot.*shortText.quot...quot.(.*).quot...quot.*longText.*quot
   reading08-1Name feld-01
   reading08-25Name time_04
   reading08-2Name feld-02
   reading08-3Name feld-03
   reading08-4Name feld-04
   reading08-5Name feld-05
   reading08-6Name feld-06
   reading08-7Name feld-07
   reading08-8Name feld-08
   reading08-9Name feld-09
   reading08Name feld
   reading08OMap #fff:0, #a6caf0:< 0.4 l/m²/h, #bfd4ff:< 0.4 l/m²/h, #fce4ec:< 0.4 l/m²/h(*), #6699ff:< 1.9 l/m²/h, #f9bad0:< 1.9 l/m²/h(*), #004ce5:< 8.1 l/m²/h, #f68db1:< 8.1 l/m²/h(*), #002673:< 35 l/m²/h, #f25f91:< 35 l/m²/h(*), #ffa800:< 150 l/m²/h, #ee3c79:< 150 l/m²/h(*), #e60000:> 150 l/m²/h #eb1561:> 150 l/m²/h(*)
   reading08Regex <table.class=\"\[.rainnowcast-timeline.\].*\">\W*<tbody>\W*<tr>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);.*</td>\W*<td class=\".*style=\"background-color:(.*);
   room       KLF200Node
   stateFormat Status
   userReadings Status:feld-1.* {
0 +
(ReadingsVal($name,"feld-1",0) ne "#fff" ||
ReadingsVal($name,"feld-2",0) ne "#fff" ||
ReadingsVal($name,"feld-3",0) ne "#fff" ||
ReadingsVal($name,"feld-4",0) ne "#fff" ||
ReadingsVal($name,"feld-5",0) ne "#fff" ||
ReadingsVal($name,"feld-6",0) ne "#fff" ||
ReadingsVal($name,"feld-7",0) ne "#fff" );; }

grüß
Helmut
System1 fhem 6.0 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.0 auf RPi 4B mit 4GB mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11066
  • NIVEAu ist keine Creme...
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #34 am: 31 August 2021, 13:28:55 »
Hallo und Danke (für den Hinweis bezüglich DB)
Leider funktioniert es in Österreich tatsächlich nicht.
Hier schüttet es und die Anzeige sagt kein Niederschlag in Sicht (naj vielleicht nachher :'()

...

grüß
Helmut

EDIT: drum ja auch meine Anmerkung, dass ich das jetzt zur Markisensteuerung nicht nehmen würde. Wetter.com lag schon (oft) (ganz arg) daneben ;)

Naja, deine "Regenauswertung" (userReadings) geht ja nur von field-01 bis field-07:
Zitat
   userReadings Status:feld-1.* {
0 +
(ReadingsVal($name,"feld-1",0) ne "#fff" ||
ReadingsVal($name,"feld-2",0) ne "#fff" ||
ReadingsVal($name,"feld-3",0) ne "#fff" ||
ReadingsVal($name,"feld-4",0) ne "#fff" ||
ReadingsVal($name,"feld-5",0) ne "#fff" ||
ReadingsVal($name,"feld-6",0) ne "#fff" ||
ReadingsVal($name,"feld-7",0) ne "#fff" );; }

EDIT: wobei ich das ja bei mir über die Regenmenge (ReadingsNum) gelöst habe bzw. über die Durchschnittsmenge im "Zeitraum". Weil ja die Werte schon als Regenmenge in den Readings field-01 bis field-24 stehen...

-> da ist eben kein Regen angekündigt -> Regenmenge 0:

Zitat
     2021-08-31 11:25:22   feld-01         0
     2021-08-31 11:25:22   feld-02         0
     2021-08-31 11:25:22   feld-03         0
     2021-08-31 11:25:22   feld-04         0
     2021-08-31 11:25:22   feld-05         0
     2021-08-31 11:25:22   feld-06         0
     2021-08-31 11:25:22   feld-07         0

Regen gibt's erst später, so in (knapp) 2h ;)

Zitat
     2021-08-29 12:55:26   feld-20         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-21         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-22         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-23         < 0.4 l/m²/h
     2021-08-29 12:55:26   feld-24         < 0.4 l/m²/h

EDIT: und kam dann noch die Regenankündigung? Oder hat es sich Wetter.com wieder anders überlegt? ;)

Gruß, Joachim
« Letzte Änderung: 31 August 2021, 15:33:28 von MadMax-FHEM »
FHEM PI3B+ Buster: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)
FHEM PI3 RaspiOS (Test)

Offline Helmi55

  • Hero Member
  • *****
  • Beiträge: 1425
    • Helmi's Fotoseite
Antw:Ein virtueller Regensensor mit wetter.com und HTTPMOD
« Antwort #35 am: 01 September 2021, 11:57:25 »
Hallo Joachim,

geregnet hat es - aber nicht auf der "Anzeige"
Feld 20-24 das sind alte Werte (anscheinend vom Kopiervorgang!) 29.8.12:55
Daran sieht man mMn genau das es keine Auswertung für AT gibt.
Tja wir sind wieder benachteiligt.... ;D ;D

Zum Glück hab ich keine Markise die ich steuern muss

Wäre ein nice to have gewesen - aber man(n) braucht nicht alles.

Jetzt muss ich schauen das ich mein HTTPMOD mit dem Ofen hinbekomme

schönen Tag

Helmut
System1 fhem 6.0 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.0 auf RPi 4B mit 4GB mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/