Autor Thema: httpmod.template: bugs, Fragen, Anregungen  (Gelesen 13140 mal)

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7411
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #120 am: 08 September 2020, 01:13:30 »
Hmm, das sollte mit einer "Nachbearbeitungs-Regex" jeweils gehen, tippe mal auf readingOExpr
Ungetestet könnte das hier passen:
$val =~ s/([\d]+),([\d]+)/$1.$2/ if $val =~ m{\A[\d]+,[\d]+\z};;$val
(Leider geht dieses attrTemplate aus unerfindlichen Gründen auf meinem Testsystem immer noch nicht, sonst könnte ich das austesten... Klappt das denn bei dir?)
Das funktioniert bei mir. Die Regex habe ich ein bischen angepasst, damit auch verbleibende Leerzeichen entfernt werden.

Und da ich jetzt in Abstimmung mit Beta-User die Maintenance für httpmod.template übernommen habe, habe ich es gerade auch eingecheckt.

Ich nutze die Gelegenheit, um eine Frage zu stellen: was meint ihr, wenn ich die Liste mit Kategorien ergänze - also ein Präfix bei jedem Name - damit die Liste übersichtlicher wird? Siehe Bild als Beispiel.

EDIT: oder mit Trennzeilen, wie im 2. Bild. Finde ich sogar besser.
« Letzte Änderung: 08 September 2020, 01:41:28 von amenomade »
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13221
  • "Developer"?!? Meistens doch eher "User"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #121 am: 08 September 2020, 09:30:42 »
Vorab mal ein herzliches Danke, dass du das mit httpmod.template übernimmst!

Es freut mich sehr, dass das "Baby" jetzt einen Maintainer bekommt, der das Modul HTTPMOD richtig gut kennt und auch schon vielen User bei ihren Fragen dazu weiterhelfen konnte :) .



Das mit dem Trennstrich finde ich eine gute Idee! Die eckigen Klammern sehen zwar auch ok aus, allerdings bin ich immer etwas zurückhaltend, was "spezielle" Zeichen angeht (kann aber nicht sagen, ob das hier unbeabsichtigte Nebenwirkungen hätte). (Muß mal schauen, ob das mit den Trennlinien auch eine Verbesserung für mqtt2.template wäre ::) .)
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, Twilight,  AttrTemplate => {mqtt2, mysensors, zwave}

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 819
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #122 am: 16 September 2020, 14:34:50 »
Ich nutze die Gelegenheit, um eine Frage zu stellen: was meint ihr, wenn ich die Liste mit Kategorien ergänze - also ein Präfix bei jedem Name - damit die Liste übersichtlicher wird? Siehe Bild als Beispiel.

EDIT: oder mit Trennzeilen, wie im 2. Bild. Finde ich sogar besser.
Coole Idee! Ich finde beide Vorschläge in Kombination super - ein Trennstrich um die Kategorien zu trennen plus Prefix-Kategorisierung der einzelnen Templates.
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 819
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #123 am: 23 Oktober 2020, 13:54:21 »
Wegen ->https://forum.fhem.de/index.php/topic,87234.msg1094780.html#msg1094780 und der gezeigten Lösung von Christoph Morrison ein Update für das pharmacy_emergency_service_germany Template:
263 attr DEVICE reading07OExpr POSIX::strftime "%a %e.%m.%Y %H:%M", localtime($val)
266 attr DEVICE reading08OExpr POSIX::strftime "%a %e.%m.%Y %H:%M", localtime($val)

EDIT: ein weiterer Vorschlag:
263 attr DEVICE reading07OExpr POSIX::strftime "%a, %e.%m.%Y %H:%MUhr", localtime($val)
266 attr DEVICE reading08OExpr POSIX::strftime "%a, %e.%m.%Y %H:%MUhr", localtime($val)
erzeugt Readings wie Fr, 23.10.2020 09:00Uhr.

Ich finde noch einen reread hilfreich:
attr DEVICE webCmd reread
Weiterhin, ob man es schön findet oder nicht, kann man noch folgenden stateFormat nutzen - stellt die Informationen in einer kleinen Tabelle da und macht die Telefonnummer klickbar:
attr DEVICE stateFormat { my $ret .= "<div style=\"display:table;;width:100%;;\">";; #table\
$ret .= "<div style=\"display:table-row;;width:100%;;\">";; #row\
$ret .= "<div style=\"display:table-cell;;padding:3pt;;width:50%;;text-align:left;;\">";; #cell\
$ret .= "<a href=\"";;\
$ret .= "https:\/\/www.openstreetmap.org\/?";;\
$ret .= "mlat=".ReadingsVal($name,"Breitengrad",0);;\
$ret .= "&mlon=".ReadingsVal($name,"Laengengrad",0);;\
$ret .= "#map=18";;\
$ret .= "\/".ReadingsVal($name,"Breitengrad",0);;\
$ret .= "\/".ReadingsVal($name,"Laengengrad",0);;\
$ret .= "\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"font-weight:bold;\">".ReadingsVal($name,"Name","?")."</a><br \/>";;\
$ret .= ReadingsVal($name,"Strasse","")."<br /\>";;\
$ret .= ReadingsVal($name,"Plz","")."&nbsp;;".ReadingsVal($name,"Ort","");;\
$ret .= "</div>";; #/cell\
$ret .= "<div style=\"display:table-cell;;width:50%;;text-align:left;;\">";; #cell\
my $numberlink = ReadingsVal($name,"Telefon","");;\
$numberlink =~ s/\s+//g;;\
$ret .= "Tel.: <a href=\"tel:+49".substr($numberlink, 1)."\">".ReadingsVal($name,"Telefon","")."</a><br /\>";;\
$ret .= "Fax.: ".ReadingsVal($name,"Telefax","");;\
$ret .= "</div>";; #/cell\
$ret .= "</div>";; #/row\
$ret .= "<div style=\"display:table-row;;width:100%;;\">";; #row\
$ret .= "<div style=\"display:table-cell;;padding:3pt;;width:50%;;text-align:left;;\">";; #cell\
$ret .= "Long: ".sprintf("%.5f", ReadingsNum($name,"Laengengrad",0))."<br /\>";;\
$ret .= "Lat: ".sprintf("%.5f", ReadingsNum($name,"Breitengrad",0));;\
$ret .= "</div>";; #/cell\
$ret .= "<div style=\"display:table-cell;;width:50%;;text-align:left;;\">";; #cell\
$ret .= "Von ".ReadingsVal($name,"Beginn","")."<br /\>";;\
$ret .= "Bis ".ReadingsVal($name,"Ende","");;\
$ret .= "</div>";; #/cell\
$ret .= "</div>";; #/row\
$ret .= "</div>";; #/table\
return $ret;;\
}
« Letzte Änderung: 04 November 2020, 10:12:07 von yersinia »
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1611
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #124 am: 23 Oktober 2020, 14:46:18 »
anbei ein neuer Versuch für das template vom bergfex Wetter.
oder habe ich etwas nicht mitbekommen, und es gibt schon eine bessere Version?

SG Joe

defmod bergfexInnsbruck HTTPMOD https://www.bergfex.at/sommer/innsbruck/wetter/ 1440
attr bergfexInnsbruck userattr get01-02OExpr get01Expr get01Name get01OExpr get01Poll:0,1 get01RegOpt get01Regex get01URL get02Expr get02Name get02Poll:0,1 get02RegOpt get02Regex get03Expr readingOExpr
attr bergfexInnsbruck devStateIcon {"<img src='https:".ReadingsVal($name,"fc1_icon","")."' alt='".ReadingsVal($name,"condition","")."' />"}
attr bergfexInnsbruck enableControlSet 1
attr bergfexInnsbruck event-on-change-reading .+
attr bergfexInnsbruck get01Expr $val =~ /.*title="(.*)"|.*?>\n?([\d,-]+)|([\d:.,-]*)/;; $val="$1$2$3";;
attr bergfexInnsbruck get01Name Wetter
attr bergfexInnsbruck get01Poll 1
attr bergfexInnsbruck get01RegOpt smx
attr bergfexInnsbruck get01Regex ,\s(?<uhrzeit>\d\d:\d\d)[^\n]+\
\n(?<textS0>[^\n]+).*?\
Niederschlag:\s+(?<niederschlag>\d+.).*?\
\
(?:9-Tage\sWettervorhersage).*?\
\
(?'textD0'(?<="icon"......).{1,100}png..title..(?:.+?)").*?\
(?'tmax0'(?<="tmax">)(?:[\d,]+)°).*?\
(?'rainW0'(?<=\n)(?:[\d,]+)%).*?\
(?'rain0'(?<=rrr)\d+.+?\n(?:[\d,-]+)l?).*?\
(?'sunhour0'(?<=sonne)\d+">[^<]+(?:<))\
\
#.*?(?<tag1>(?&tag0))\
(?:.*?(?<textD1>(?&textD0)))?\
.*?(?<tmax1>(?&tmax0))\
.*?(?<rain1>(?&rain0))\
.*?(?<sunhour1>(?&sunhour0))\
\
#.*?(?<tag2>(?&tag0))\
.*?(?<textD2>(?&textD0))\
.*?(?<tmax2>(?&tmax0))\
.*?(?<rain2>(?&rain0))\
.*?(?<sunhour2>(?&sunhour0))\
\
#.*?(?<tag3>(?&tag0))\
.*?(?<textD3>(?&textD0))\
.*?(?<tmax3>(?&tmax0))\
.*?(?<rain3>(?&rain0))\
.*?(?<sunhour3>(?&sunhour0))\
\
#.*?(?<tag4>(?&tag0))\
.*?(?<textD4>(?&textD0))\
.*?(?<tmax4>(?&tmax0))\
.*?(?<rain4>(?&rain0))\
.*?(?<sunhour4>(?&sunhour0))\
\
#.*?(?<tag5>(?&tag0))\
.*?(?<textD5>(?&textD0))\
.*?(?<tmax5>(?&tmax0))\
.*?(?<rain5>(?&rain0))\
.*?(?<sunhour5>(?&sunhour0))\
\
#.*?(?<tag6>(?&tag0))\
.*?(?<textD6>(?&textD0))\
.*?(?<tmax6>(?&tmax0))\
.*?(?<rain6>(?&rain0))\
.*?(?<sunhour6>(?&sunhour0))\
\
#.*?(?<tag7>(?&tag0))\
.*?(?<textD7>(?&textD0))\
.*?(?<tmax7>(?&tmax0))\
.*?(?<rain7>(?&rain0))\
.*?(?<sunhour7>(?&sunhour0))\
\
#.*?(?<tag8>(?&tag0))\
.*?(?<textD8>(?&textD0))\
.*?(?<tmax8>(?&tmax0))\
.*?(?<rain8>(?&rain0))\
.*?(?<sunhour8>(?&sunhour0))\
\
attr bergfexInnsbruck get01URL https://www.bergfex.at/sommer/innsbruck/wetter/
attr bergfexInnsbruck get02Expr $val =~ /.*<p>([^<]+)/;; $val="$1";;
attr bergfexInnsbruck get02Name Wetter2
attr bergfexInnsbruck get02Poll 1
attr bergfexInnsbruck get02RegOpt smx
attr bergfexInnsbruck get02Regex (?'txtL0'<h2>[^>]+?<span\sclass='less-important'>[^>]+\/[^>]+>.<.h2>\n+<div\sclass="txt_markup"><p>[^<]+)<\
(?:.*?(?<txtL1>(?&txtL0)))?\
(?:.*?(?<txtL2>(?&txtL0)))?\
(?:.*?(?<txtL3>(?&txtL0)))?\
(?:.*?(?<txtL4>(?&txtL0)))?
attr bergfexInnsbruck get03Expr $val =~ /<p>([^<]+)</;; $val="$1";;
attr bergfexInnsbruck readingsWatcher 2000,?,sunhour0,sunhour1
attr bergfexInnsbruck room Wetter
attr bergfexInnsbruck showBody 0
attr bergfexInnsbruck showError 0
attr bergfexInnsbruck stateFormat condition bei temperature°C und chance_of_raining% Regenwahrscheinlichkeit
attr bergfexInnsbruck widgetOverride get01Regex:textField-long\
get02Regex:textField-long\
get01Expr:textField-long\
get02Expr:textField-long\
widgetOverride:textField-long
« Letzte Änderung: 23 Oktober 2020, 14:49:00 von JoeALLb »
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7411
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #125 am: 23 Oktober 2020, 18:49:49 »
Nein, es gibt im Moment keine neuere Version.

Aber wenn ich deine Raw Definition in Fhem eingebe, bekomme ich eine Fehlermeldung
Invalid Regex ,\s(?\d\d:\d\d)[^\n]+
\n(?[^\n]+).*?
Niederschlag:\s+(?\d+.).*?

(?:9-Tage\sWettervorhersage).*?

(?'textD0'(?<="icon"......).{1,100}png..title..(?:.+?)").*?
(?'tmax0'(?<="tmax">)(?:[\d,]+)°).*?
(?'rainW0'(?<=\n)(?:[\d,]+)%).*?
(?'rain0'(?<=rrr)\d+.+?\n(?:[\d,-]+)l?).*?
(?'sunhour0'(?<=sonne)\d+">[^<]+(?:<))

#.*?(?(?&tag0))
(?:.*?(?(?&textD0)))?
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

#.*?(?(?&tag0))
.*?(?(?&textD0))
.*?(?(?&tmax0))
.*?(?(?&rain0))
.*?(?(?&sunhour0))

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1611
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #126 am: 23 Oktober 2020, 19:18:21 »
Aber wenn ich deine Raw Definition in Fhem eingebe, bekomme ich eine Fehlermeldung

Sorry, da hat sich beim Kopieren ein ZEichen-Escape verabschieded. So gehts.
defmod bergfexInnsbruck HTTPMOD https://www.bergfex.at/sommer/innsbruck/wetter/ 1440
attr bergfexInnsbruck devStateIcon {"<img src='https:".ReadingsVal($name,"fc1_icon","")."' alt='".ReadingsVal($name,"condition","")."' />"}
attr bergfexInnsbruck enableControlSet 1
attr bergfexInnsbruck event-on-change-reading .+
attr bergfexInnsbruck get01Expr $val =~ /.*title="(.*)"|.*?>\n?([\d,-]+)|([\d:.,-]*)/;; $val="$1$2$3";;
attr bergfexInnsbruck get01Name Wetter
attr bergfexInnsbruck get01Poll 1
attr bergfexInnsbruck get01RegOpt smx
attr bergfexInnsbruck get01Regex ,\s(?<uhrzeit>\d\d:\d\d)[^\n]+\
\n(?<textS0>[^\n]+).*?\
Niederschlag:\s+(?<niederschlag>\d+.).*?\
\
(?:9-Tage\sWettervorhersage).*?\
#(?'tag0'(?:Heute|Morgen|Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag|>\D\D,\s\d\d\.<)).*? \
\
(?'textD0'(?<="icon"......).{1,100}png..title..(?:.+?)").*?\
(?'tmax0'(?<="tmax">)(?:[\d,]+)°).*?\
(?'rainW0'(?<=\n)(?:[\d,]+)%).*?\
(?'rain0'(?<=rrr)\d+.+?\n(?:[\d,-]+)l?).*?\
(?'sunhour0'(?<=sonne)\d+">[^<]+(?:<))\
\
#.*?(?<tag1>(?&tag0))\
(?:.*?(?<textD1>(?&textD0)))?\
.*?(?<tmax1>(?&tmax0))\
.*?(?<rain1>(?&rain0))\
.*?(?<sunhour1>(?&sunhour0))\
\
#.*?(?<tag2>(?&tag0))\
.*?(?<textD2>(?&textD0))\
.*?(?<tmax2>(?&tmax0))\
.*?(?<rain2>(?&rain0))\
.*?(?<sunhour2>(?&sunhour0))\
\
#.*?(?<tag3>(?&tag0))\
.*?(?<textD3>(?&textD0))\
.*?(?<tmax3>(?&tmax0))\
.*?(?<rain3>(?&rain0))\
.*?(?<sunhour3>(?&sunhour0))\
\
#.*?(?<tag4>(?&tag0))\
.*?(?<textD4>(?&textD0))\
.*?(?<tmax4>(?&tmax0))\
.*?(?<rain4>(?&rain0))\
.*?(?<sunhour4>(?&sunhour0))\
\
#.*?(?<tag5>(?&tag0))\
.*?(?<textD5>(?&textD0))\
.*?(?<tmax5>(?&tmax0))\
.*?(?<rain5>(?&rain0))\
.*?(?<sunhour5>(?&sunhour0))\
\
#.*?(?<tag6>(?&tag0))\
.*?(?<textD6>(?&textD0))\
.*?(?<tmax6>(?&tmax0))\
.*?(?<rain6>(?&rain0))\
.*?(?<sunhour6>(?&sunhour0))\
\
#.*?(?<tag7>(?&tag0))\
.*?(?<textD7>(?&textD0))\
.*?(?<tmax7>(?&tmax0))\
.*?(?<rain7>(?&rain0))\
.*?(?<sunhour7>(?&sunhour0))\
\
#.*?(?<tag8>(?&tag0))\
.*?(?<textD8>(?&textD0))\
.*?(?<tmax8>(?&tmax0))\
.*?(?<rain8>(?&rain0))\
.*?(?<sunhour8>(?&sunhour0))\
\
(?sx)(?:.*?\n<h2>\n+Tirol(?'txtL0'.*?<\/h2>.*?<\/div>\n\n))?
attr bergfexInnsbruck get01URL https://www.bergfex.at/sommer/innsbruck/wetter/
attr bergfexInnsbruck get02Expr $val =~ /.*<p>([^<]+)/;; $val="$1";;
attr bergfexInnsbruck get02Name Wetter2
attr bergfexInnsbruck get02Poll 1
attr bergfexInnsbruck get02RegOpt smx
attr bergfexInnsbruck get02Regex (?'txtL0'<h2>[^>]+?<span\sclass='less-important'>[^>]+\/[^>]+>.<.h2>\n+<div\sclass="txt_markup"><p>[^<]+)<\
(?:.*?(?<txtL1>(?&txtL0)))?\
(?:.*?(?<txtL2>(?&txtL0)))?\
(?:.*?(?<txtL3>(?&txtL0)))?\
(?:.*?(?<txtL4>(?&txtL0)))?
attr bergfexInnsbruck get03Expr $val =~ /<p>([^<]+)</;; $val="$1";;
attr bergfexInnsbruck room Wetter
attr bergfexInnsbruck showBody 0
attr bergfexInnsbruck showError 0
attr bergfexInnsbruck stateFormat condition bei temperature°C und chance_of_raining% Regenwahrscheinlichkeit
attr bergfexInnsbruck widgetOverride get01Regex:textField-long\
get02Regex:textField-long\
get01Expr:textField-long\
get02Expr:textField-long\
widgetOverride:textField-long
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 819
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #127 am: 27 November 2020, 10:20:54 »
Dank eines Updates durch mcp kann der homematic-firmware-check jetzt auch HmIP, anbei das Update fürs Template:
#Contributed by Pfriemler, mcp & yersinia, see https://forum.fhem.de/index.php/topic,78501.msg1104534.html#msg1104534
name:hm_fw_check_v2
filter:TYPE=HTTPMOD
desc: check for homematic firmware updates; based on new link provided by Pfriemler (switch from eq-3.de to update.homematic.com) and includes HmIP adaption provided by mcp<br />Define a HTTPMOD device like <br>define DEVICE HTTPMOD https://update.homematic.com/firmware/api/firmware/search/DEVICE 86400<br /><a href="https://forum.fhem.de/index.php/topic,78501.msg1104534.html#msg1104534">Source: Forum</a>
order:X_01a
par:WHICHROOM;Actual room of the device, defaults to HTTPMOD; {AttrVal("DEVICE","room","HTTPMOD" )}
par:INTERVAL;Actual interval for updating, defaults to one day (86400s); {InternalVal("DEVICE","Interval",86400)}
defmod DEVICE HTTPMOD https://update.homematic.com/firmware/api/firmware/search/\DEVICE INTERVAL
attr DEVICE userattr reading01AutoNumLen reading01Name reading01RegOpt reading01Regex reading02AutoNumLen reading02Name reading02RegOpt reading02Regex readingMaxAge readingMaxAgeReplacementMode:text,reading,internal,expression,delete showNewFWOnly:yes,no
attr DEVICE userattr reading01AutoNumLen reading01Name reading01RegOpt reading01Regex reading02AutoNumLen reading02Name reading02RegOpt reading02Regex readingMaxAge readingMaxAgeReplacementMode:text,reading,internal,expression,delete showNewFWOnly:yes,no
attr DEVICE do_not_notify 1
attr DEVICE enableControlSet 1
attr DEVICE icon hm_ccu
attr DEVICE reading01AutoNumLen 2
attr DEVICE reading01Name hmfw-type
attr DEVICE reading01RegOpt g
attr DEVICE reading01Regex (?i)"type":"((?:\w+[-]*){1,})
attr DEVICE reading02AutoNumLen 2
attr DEVICE reading02Name hmfw-version
attr DEVICE reading02RegOpt g
attr DEVICE reading02Regex (?si)"version":"(\d+[.]\d+[.]\d+)
attr DEVICE readingMaxAge 10
attr DEVICE readingMaxAgeReplacementMode delete
attr DEVICE room fw-checks
attr DEVICE showError 1
attr DEVICE showMatched 1
attr DEVICE showNewFWOnly yes
attr DEVICE stateFormat {   my $ret ="";;\
    my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"MATCHED_READINGS","2000-01-01 00:00:00"))));;\
my $nextCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(InternalVal($name,"TRIGGERTIME_FMT","2000-01-01 00:00:00"))));;\
my $cellstyle = "padding:3pt;;border-bottom:1px dotted lightgray;;";;\
    $ret .= '<div style="text-align:left;;">';;;;\
    $ret .= '<div>last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => '.$lastCheck;;\
    $ret .= '</div>';;\
    my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");;\
    if($check eq "no fw-updates needed!") {\
      $ret .= '<div style="color:limegreen;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } elsif($check eq "error => no or wrong data from eq3-server!") {\
      $ret .= '<div style="color:red;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } else {\
$ret .= '<div style="display:table;;width:100%;;">';;\
$ret .= '<div style="display:table-row;;">';;\
      $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:50%;;font-weight:bold;;">device</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:40%;;font-weight:bold;;">model</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:5%;;font-weight:bold;;">current</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:5%;;font-weight:bold;;">new</div>';;\
$ret .= '</div>';; #header\
      my @devices = split(',',$check);;\
      foreach my $devStr (@devices) {\
my ($dev,$idx) = $devStr =~ m/([^\s]+)\s[(](\d+)[)]/;;\
my $md = ReadingsVal($name,("hmfw-type-".$idx),"?");;\
#my $ofw = AttrVal($dev,"firmware","?");;\
my $ofw = InternalVal($dev,"firmware",AttrVal($dev,"firmware","0.0"));;\
my $nfw = ReadingsVal($name,("hmfw-version-".$idx),"none");;\
        my $fw_link = "https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=".$md;;\
$ret .= '<div style="display:table-row;;">';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:50%;;">';;\
        $ret .= '<a href="/fhem?detail='.$dev.'" target="_blank">';;\
$ret .= AttrVal($dev,"alias",$dev);;\
        $ret .= '</a></div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:30%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $md;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $ofw;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;color:red;;">';;\
        $ret .= '<a title="download firmware file" href="'.$fw_link.'" rel="noopener noreferrer" target="_blank" style="color:red;;">';;\
        $ret .= $nfw;;\
        $ret .= '</a></div>';;\
        $ret .= '</div>';; #row\
      }\
  $ret .= '</div>';; #table\
    }\
$ret .= "<div style=\"text-align:left;;\">(next check: ".$nextCheck.")</div>";;\
    $ret .= '</div>';;\
  return $ret;;\
}
attr DEVICE userReadings newFwForDevices:MATCHED_READINGS.* {\
  my $ret = "";;\
  my $newfwonly = AttrVal($name,"showNewFWOnly","yes");;\
  if (ReadingsVal($name,"UNMATCHED_READINGS","?") eq "") {\
    my @eq3FwList = map { \
sprintf(uc(ReadingsVal($name,"hmfw-type-".$_,"?")).":".ReadingsVal($name,"hmfw-version-".$_,"?").":".$_);;\
} ReadingsVal($name,"MATCHED_READINGS","?")=~ m/hmfw-version-(\d\d)/g;;\
\
foreach my $dev (devspec2array("TYPE=CUL_HM|HMCCUDEV:FILTER=DEF=(......|..............):FILTER=subType!=virtual")) {\
  my $md = uc(InternalVal($dev,"ccutype",AttrVal($dev,"model","?")));;\
  my $v = InternalVal($dev,"firmware",AttrVal($dev,"firmware","0.0"));;\
      my ($h,$l) = split('\.',$v);;\
      foreach my $newFW (grep m/^${md}:/i,@eq3FwList) {\
my ($fwmd, $fwv, $idx) = $newFW =~ m/([^:]+):(\d+[.]\d+[.]\d+):(\d+)$/;;\
my ($fwh, $fwl) = split('\.',$fwv);;\
if(($newfwonly eq "no") || (($fwh > $h) || (($fwh == $h) && ($fwl > $l)))) {\
          $ret .= "," if($ret ne "");;\
  $ret .= $dev." (".$idx.")";;\
        }\
      }\
    }\
  } else {\
    $ret = "error => no or wrong data from eq3-server!";;\
  }\
  return ($ret eq "")?"no fw-updates needed!":$ret;;\
}
attr DEVICE webCmd reread
attr DEVICE model hm_fw_check_v2
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7411
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #128 am: 28 November 2020, 19:08:51 »
@yersinia: Danke. Habs eingecheckt.
« Letzte Änderung: 28 November 2020, 19:11:55 von amenomade »
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 819
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #129 am: 29 November 2020, 10:25:28 »
@yersinia: Danke. Habs eingecheckt.
Ich habe zu danken. :)
Gibt es schon was neues bezüglich der Kategoriesierung aus #120 - wirst du deinen Vorschlag weiter verfolgen?
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7411
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #130 am: 29 November 2020, 14:06:04 »
Haha. Leider habe ich das dummerweise und ohne Backup durch das checkout für die letzte Änderung überschrieben... Heisst: es kommt noch ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 819
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #131 am: 29 November 2020, 15:31:49 »
Passiert. Top. :)

Auch ich hab gerade gesehen, dass beim kopieren der Vorlage einige Fehler (zweimal userattr zB) sich eingeschlichen haben ::) Hier eine korrigierte Version:
#Contributed by Pfriemler, mcp & yersinia, see https://forum.fhem.de/index.php/topic,78501.msg1104534.html#msg1104534
name:hm_fw_check_v2
filter:TYPE=HTTPMOD
desc: check for homematic firmware updates; based on new link provided by Pfriemler (switch from eq-3.de to update.homematic.com) and includes HmIP adaption provided by mcp<br />Define a HTTPMOD device like <br>define DEVICE HTTPMOD https://update.homematic.com/firmware/api/firmware/search/DEVICE 86400<br /><a href="https://forum.fhem.de/index.php/topic,78501.msg1104534.html#msg1104534">Source: Forum</a>
order:X_01a
par:WHICHROOM;Actual room of the device, defaults to HTTPMOD; {AttrVal("DEVICE","room","HTTPMOD" )}
par:INTERVAL;Actual interval for updating, defaults to one day (86400s); {InternalVal("DEVICE","Interval",86400)}
defmod DEVICE HTTPMOD https://update.homematic.com/firmware/api/firmware/search/\DEVICE INTERVAL
attr DEVICE userattr reading01AutoNumLen reading01Name reading01RegOpt reading01Regex reading02AutoNumLen reading02Name reading02RegOpt reading02Regex readingMaxAge readingMaxAgeReplacementMode:text,reading,internal,expression,delete showNewFWOnly:yes,no
attr DEVICE do_not_notify 1
attr DEVICE enableControlSet 1
attr DEVICE icon hm_ccu
attr DEVICE reading01AutoNumLen 2
attr DEVICE reading01Name hmfw-type
attr DEVICE reading01RegOpt g
attr DEVICE reading01Regex (?i)"type":"((?:\w+[-]*){1,})
attr DEVICE reading02AutoNumLen 2
attr DEVICE reading02Name hmfw-version
attr DEVICE reading02RegOpt g
attr DEVICE reading02Regex (?si)"version":"(\d+[.]\d+[.]\d+)
attr DEVICE readingMaxAge 10
attr DEVICE readingMaxAgeReplacementMode delete
attr DEVICE room fw-checks
attr DEVICE showError 1
attr DEVICE showMatched 1
attr DEVICE showNewFWOnly yes
attr DEVICE stateFormat {   my $ret ="";;\
    my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"MATCHED_READINGS","2000-01-01 00:00:00"))));;\
my $nextCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(InternalVal($name,"TRIGGERTIME_FMT","2000-01-01 00:00:00"))));;\
my $cellstyle = "padding:3pt;;border-bottom:1px dotted lightgray;;";;\
    $ret .= '<div style="text-align:left;;">';;\
    $ret .= '<div>last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => '.$lastCheck;;\
    $ret .= '</div>';;\
    my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");;\
    if($check eq "no fw-updates needed!") {\
      $ret .= '<div style="color:limegreen;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } elsif($check eq "error => no or wrong data from eq3-server!") {\
      $ret .= '<div style="color:red;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } else {\
$ret .= '<div style="display:table;;width:100%;;">';;\
$ret .= '<div style="display:table-row;;">';;\
      $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:50%;;font-weight:bold;;">device</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:40%;;font-weight:bold;;">model</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:5%;;font-weight:bold;;">current</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:5%;;font-weight:bold;;">new</div>';;\
$ret .= '</div>';; #header\
      my @devices = split(',',$check);;\
      foreach my $devStr (@devices) {\
my ($dev,$idx) = $devStr =~ m/([^\s]+)\s[(](\d+)[)]/;;\
my $md = ReadingsVal($name,("hmfw-type-".$idx),"?");;\
my $ofw = InternalVal($dev,"firmware",AttrVal($dev,"firmware","0.0"));;\
my $nfw = ReadingsVal($name,("hmfw-version-".$idx),"none");;\
        my $fw_link = "https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=".$md;;\
$ret .= '<div style="display:table-row;;">';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:50%;;">';;\
        $ret .= '<a href="/fhem?detail='.$dev.'" target="_blank">';;\
$ret .= AttrVal($dev,"alias",$dev);;\
        $ret .= '</a></div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:30%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $md;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $ofw;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;color:red;;">';;\
        $ret .= '<a title="download firmware file" href="'.$fw_link.'" rel="noopener noreferrer" target="_blank" style="color:red;;">';;\
        $ret .= $nfw;;\
        $ret .= '</a></div>';;\
        $ret .= '</div>';; #row\
      }\
  $ret .= '</div>';; #table\
    }\
$ret .= "<br \/><div style=\"text-align:left;;\">(next check: ".$nextCheck.")</div>";;\
    $ret .= '</div>';;\
  return $ret;;\
}
attr DEVICE userReadings newFwForDevices:MATCHED_READINGS.* {\
  my $ret = "";;\
  my $newfwonly = AttrVal($name,"showNewFWOnly","yes");;\
  if (ReadingsVal($name,"UNMATCHED_READINGS","?") eq "") {\
    my @eq3FwList = map { \
sprintf(uc(ReadingsVal($name,"hmfw-type-".$_,"?")).":".ReadingsVal($name,"hmfw-version-".$_,"?").":".$_);;\
} ReadingsVal($name,"MATCHED_READINGS","?")=~ m/hmfw-version-(\d\d)/g;;\
\
foreach my $dev (devspec2array("TYPE=CUL_HM|HMCCUDEV:FILTER=DEF=(......|..............):FILTER=subType!=virtual")) {\
my $md = uc(InternalVal($dev,"ccutype",AttrVal($dev,"model","?")));;\
my $v = InternalVal($dev,"firmware",AttrVal($dev,"firmware","0.0"));;\
        my ($h,$l) = split('\.',$v);;\
        foreach my $newFW (grep m/^${md}:/i,@eq3FwList) {\
my ($fwmd, $fwv, $idx) = $newFW =~ m/([^:]+):(\d+[.]\d+[.]\d+):(\d+)$/;;\
my ($fwh, $fwl) = split('\.',$fwv);;\
if(($newfwonly eq "no") || (($fwh > $h) || (($fwh == $h) && ($fwl > $l)))) {\
  $ret .= "," if($ret ne "");;\
  $ret .= $dev." (".$idx.")";;\
        }\
      }\
    }\
  } else {\
    $ret = "error => no or wrong data from eq3-server!";;\
  }\
  return ($ret eq "")?"no fw-updates needed!":$ret;;\
}
attr DEVICE webCmd reread
attr DEVICE model hm_fw_check_v2
setreading DEVICE attrTemplateVersion 20201129
Sorry. -.-
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1611
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #132 am: 29 November 2020, 15:50:41 »
Update für das Bergfex Template. Das konnte doch tatsächlich keine Minus-Temperaturen auslesen.
Das führte zu diesem Regex -Fehler und führte zu einem kompletten "hängen" von FHEM.
Your regular expression leads to "catastrophic backtracking", making it too complex to be run to completion.
Anbei eine aktualisierte Version:

defmod bergfexInnsbruck HTTPMOD https://www.bergfex.at/sommer/innsbruck/wetter/ none
attr bergfexInnsbruck devStateIcon {"<img src='https:".ReadingsVal($name,"fc1_icon","")."' alt='".ReadingsVal($name,"condition","")."' />"}
attr bergfexInnsbruck enableControlSet 1
attr bergfexInnsbruck event-on-change-reading .+
attr bergfexInnsbruck get01Expr $val =~ /.*title="(.*)"|.*?>\n?([\d,-]+)|([\d:.,-]*)/;; $val="$1$2$3";;
attr bergfexInnsbruck get01Name Wetter
attr bergfexInnsbruck get01Poll 1
attr bergfexInnsbruck get01RegOpt smx
attr bergfexInnsbruck get01Regex \p{Any}\
\
,\s(?<uhrzeit>\d\d:\d\d)[^\n]+\
\n(?<textS0>[^\n]+).*?\
Niederschlag:\s+(?<niederschlag>\d+.).*?\
\
(?:9-Tage\sWettervorhersage).*?\
\
(?'textD0'(?<="icon"......).{1,100}png..title..(?:.+?)").*?\
(?'tmax0'(?<="tmax">)(?:[\d,-]+)°).*?\
(?'tmin0'(?<="tmin">)(?:[\d,-]+)°).*?\
(?'rainW0'(?<=\n)(?:[\d,]+)%).*?\
(?'rain0'(?<=rrr)\d+.+?\n(?:[\d,-]+)l?).*?\
(?'sunhour0'(?<=sonne)\d+">[^<]+(?:<))\
\
(?:.*?(?<textD1>(?&textD0)))?\
.*?(?<tmax1>(?&tmax0))\
.*?(?<tmin1>(?&tmin0))\
.*?(?<rainW1>(?&rainW0))\
.*?(?<rain1>(?&rain0))\
.*?(?<sunhour1>(?&sunhour0))\
\
.*?(?<textD2>(?&textD0))\
.*?(?<tmax2>(?&tmax0))\
.*?(?<tmin2>(?&tmin0))\
.*?(?<rainW2>(?&rainW0))\
.*?(?<rain2>(?&rain0))\
.*?(?<sunhour2>(?&sunhour0))\
\
.*?(?<textD3>(?&textD0))\
.*?(?<tmax3>(?&tmax0))\
.*?(?<tmin3>(?&tmin0))\
.*?(?<rainW3>(?&rainW0))\
.*?(?<rain3>(?&rain0))\
.*?(?<sunhour3>(?&sunhour0))\
\
.*?(?<textD4>(?&textD0))\
.*?(?<tmax4>(?&tmax0))\
.*?(?<tmin4>(?&tmin0))\
.*?(?<rainW4>(?&rainW0))\
.*?(?<rain4>(?&rain0))\
.*?(?<sunhour4>(?&sunhour0))\
\
.*?(?<textD5>(?&textD0))\
.*?(?<tmax5>(?&tmax0))\
.*?(?<tmin5>(?&tmin0))\
.*?(?<rainW5>(?&rainW0))\
.*?(?<rain5>(?&rain0))\
.*?(?<sunhour5>(?&sunhour0))\
\
.*?(?<textD6>(?&textD0))\
.*?(?<tmax6>(?&tmax0))\
.*?(?<tmin6>(?&tmin0))\
.*?(?<rain6>(?&rain0))\
.*?(?<sunhour6>(?&sunhour0))\
\
.*?(?<textD7>(?&textD0))\
.*?(?<tmax7>(?&tmax0))\
.*?(?<tmin7>(?&tmin0))\
.*?(?<rain7>(?&rain0))\
.*?(?<sunhour7>(?&sunhour0))\
\
.*?(?<textD8>(?&textD0))\
.*?(?<tmax8>(?&tmax0))\
.*?(?<tmin8>(?&tmin0))\
#.*?(?<rainW8>(?&rainW0))\
.*?(?<rain8>(?&rain0))\
.*?(?<sunhour8>(?&sunhour0))\

attr bergfexInnsbruck get01URL https://www.bergfex.at/sommer/innsbruck/wetter/
attr bergfexInnsbruck get02Expr $val =~ /.*<p>([^<]+)/;; $val="$1";;
attr bergfexInnsbruck get02Name Wetter2
attr bergfexInnsbruck get02Poll 1
attr bergfexInnsbruck get02RegOpt smx
attr bergfexInnsbruck get02Regex (?'txtL0'<h2>[^>]+?<span\sclass='less-important'>[^>]+\/[^>]+>.<.h2>\n+<div\sclass="txt_markup"><p>[^<]+)<\
(?:.*?(?<txtL1>(?&txtL0)))?\
(?:.*?(?<txtL2>(?&txtL0)))?\
(?:.*?(?<txtL3>(?&txtL0)))?\
(?:.*?(?<txtL4>(?&txtL0)))?
attr bergfexInnsbruck get03Expr $val =~ /<p>([^<]+)</;; $val="$1";;
attr bergfexInnsbruck stateFormat condition bei temperature°C und chance_of_raining% Regenwahrscheinlichkeit
attr bergfexInnsbruck widgetOverride get01Regex:textField-long\
get02Regex:textField-long\
get01Expr:textField-long\
get02Expr:textField-long\
widgetOverride:textField-long

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7411
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #133 am: 29 November 2020, 17:35:02 »
@JoeALLb: schon mal besser, aber das Problem bei bergfex, ist dass je nach Stadt die Darstellung anders ist. Funktioniert es z.B. auch für Wien oder Salzburg? Sonst sehe ich die Interesse für ein template gering.

Siehe z.B.:
https://www.bergfex.at/sommer/innsbruck/wetter/
https://www.bergfex.at/sommer/wien/wetter/
https://www.bergfex.at/sommer/wien/wetter/stationen/wien-donaufeld/
https://www.bergfex.at/sommer/salzburg/wetter/

Oder wie muss man die richtige URL bestimmen?

EDIT: und devStateIcon und stateFormat funktionieren nicht



« Letzte Änderung: 29 November 2020, 17:44:53 von amenomade »
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline JoeALLb

  • Hero Member
  • *****
  • Beiträge: 1611
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #134 am: 29 November 2020, 17:54:23 »
Innsbruck, Wien und Salzburg funktionieren., Stationen nicht (müssen auch nicht!).

DevstateIcon einfach weglassen, das hatte ich mir lokal "gespiegelt".
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

 

decade-submarginal