Neue Version von HTTPMOD mit neuen Features zum Testen

Begonnen von StefanStrobel, 05 Dezember 2015, 08:31:32

Vorheriges Thema - Nächstes Thema

ares

MaxAge gefällt mir gut, wenn ein Device offline ist und nicht mehr aktualisiert.

Mein Miele@home Gateway XGW 3000 sendet nur die relevanten Daten. Hier z.B. das aktuelle Ergebnis für die Waschmaschine:
<?xml version="1.0" encoding="UTF-8"?>
<device>
<information>
<key name="Gerät" value="Waschautomat" />
<key name="Gerätestatus" value="Aus" />
</information>
<actions>
</actions>
</device>


Vor dem Ausschalten gab es noch andere Werte wie z.b. die Restzeit, die nun fehlen. Mit MageAge könnte ich diese nach 5 Minuten z.B. auf "-" setzen, jedoch werden dann vorübergehend falsche Werte angezeigt. Gibt es auch eine Variante, wie mit Regex nicht mehr gefundene Werte sofort ersetzt werden können? Ein Default-Regex-Wert würde helfen, keine Ahnung ob so etwas möglich ist. Hier ein Ausschnitt meiner akutellen Konfiguration:

attr K.Waschmaschine readingsName_Geraetestatus Geraetestatus
attr K.Waschmaschine readingsRegex_Geraetestatus "Gerätestatus"[^"]+"([^"]+)"
attr K.Waschmaschine readingsName_Restzeit Restzeit
attr K.Waschmaschine readingsRegex_Restzeit "Restzeit"[^"]+"([^"]+)"

StefanStrobel

Hallo ares,

wenn Du die Werte z.B. alle 60 Sekunden abrufst und MaxAge z.B. auf 50 Sekunden stellst, dann greift MaxAge sofort wenn die Werte nicht erfolgreich gelesen werden, nicht aber, wenn sie korrekt gelesen werden konnten.

Die MaxAge-Prüfung erfolgt in der Lese-Funktion, entweder nach einem Lesefehler oder nach dem Auswerten aller Readings...

Gruss
    Stefan

ares

Hallo Stefan,

damit ist MaxAge perfekt, danke für die Erklärung.

Viele Danke
ares

Cruiser79

Moin moin,

habe auch einmal die JSON Variante von HTTPMOD ausprobiert, aber bekomme es leider nicht hin.
Ich habe zuerst mit extractJSON mir die gesamten Daten in Readings packen lassen. Das hat auch gut funktioniert, ich habe viele Readings bekommen.
Nun wollte ich ein einzelnes eigenes Reading ausprobieren und habe mir eines der herausextrahierten als get01JSON und get02JSON definiert. Bei dem darauffolgenden Request kommt nur ein
JSON: Read response to update didn't match any Reading

Das definerte HTTPMOD lautet
define JSON HTTPMOD http://www.spritpreisrechner.at/espritmap-app/GasStationServlet 300
attr JSON userattr disable extractAllJSON get01Data get01JSON get01Name get02JSON get02Name getHeader1 getHeader2 requestData.*
attr JSON get01JSON 01_address
attr JSON get01Name 1_Adresse
attr JSON get02JSON 01_spritPrice_01_amount
attr JSON get02Name 1_Sprit
attr JSON getHeader1 Content-Type: application/json
attr JSON getHeader2 Accept: */*
attr JSON requestData.* data=["checked","DIE",15.414262484145,47.057105360725,15.494085024429,47.08048974931]


Der Response ist ein JSON Array und wird z.B. vom extractJSON mit
01_spritPrice_01_amount     0.909
extrahiert. Ein
attr JSON get02JSON 01_spritPrice_01_amount
zeigt aber keine Wirkung. Wo ist der Fehler? Kann ich die extrahierten Werte nicht einfach als getXXJSON nehmen? Wie bekomme ich dann JSON Arrays in die Abfrage? Das Beispiel im ersten Post ist ja nur mit JSON Objekten gemacht.

Gruß,
Tim
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

grooves

Hallo,

das MaxAge war genau wonach ich gesucht habe, :-)
leider passiert bei meiner config kein Replacement,
die alten Werte bleiben stehen,
auch wenn ich den Sensor offline setze.
was mach ich falsch.

Danke,
Micha

define ESP01 HTTPMOD http://192.168.5.128/stat.tpl 300
attr ESP01 userattr icon readingsExpr_S02 readingsExpr_S03 readingsExpr_S04 readingsName_S01 readingsName_S02 readingsName_S03 readingsName_S04 readingsRegex_S01 readingsRegex_S02 readingsRegex_S03 readingsRegex_S04 stateFormat
attr ESP01 group Plots
attr ESP01 icon icoKLIMA
attr ESP01 readingsExpr_S02 {sprintf("%.1f",$val)}
attr ESP01 readingsExpr_S03 {($val eq "+85.00") ? "": sprintf("%.1f",$val)}
attr ESP01 readingsExpr_S04 {($val eq "+85.00") ? "": sprintf("%.1f",$val)}
attr ESP01 readingsName_S01 Voltage
attr ESP01 readingsName_S02 Innen
attr ESP01 readingsName_S03 Balkon
attr ESP01 readingsName_S04 Aussen
attr ESP01 readingsRegex_S01 VDD33[: ]+([\d\.]+)
attr ESP01 readingsRegex_S02 Sensor 1[: ]+([+-][\d\.]+)
attr ESP01 readingsRegex_S03 Sensor 2[: ]+([+-][\d\.]+)
attr ESP01 readingsRegex_S04 Sensor 3[: ]+([+-][\d\.]+)
attr ESP01 readingMaxAge 310
attr ESP01 readingMaxAgeReplacement "--"
attr ESP01 readingMaxAgeReplacementMode text
attr ESP01 room Sensors
attr ESP01 stateFormat {sprintf("A: %.1f °C, I: %.1f °C, B: %.1f °C", ReadingsVal($name,"Aussen",0), ReadingsVal($name,"Innen",0), ReadingsVal($name,"Balkon",0))}


frank

ich versuche gerade aus einer liste von verfügbaren fw-dateien eine liste der betreffenden geräte zu erstellen. da die liste bei jedem abruf eine unbekannte anzahl an geräten beinhalten kann, würde ich gerne die readings automatisch anlegen lassen.

der gesuchte text (rot) ist immer folgendermassen gekennzeichnet:

Zitat<p>Kurz Bez.: HM-LC-Dim1T-Pl-3 </p>

und kann zb mit dieser regex ausgelesen werden:

(?s)<p>Kurz.Bez.:.([a-zA-Z0-9\-]+).</p>

wenn ich die regex quasi verdoppele, bekomme ich auch automatisch 2 readings für die 2 capture groups:

(?s)<p>Kurz.Bez.:.([a-zA-Z0-9\-]+).</p>.*?<p>Kurz.Bez.:.([a-zA-Z0-9\-]+).</p>

aber wie bekomme ich es hin, dass automatisch alle vorkommen gefunden werden, ohne zu wissen, wie oft der match existiert?

Internals:
   BUSY       0
   DEF        http://www.eq-3.de/db_action/download_suche.php 3600
   Interval   3600
   LASTSEND   1453192550.44278
   MainURL    http://www.eq-3.de/db_action/download_suche.php
   NAME       eq3
   NR         558
   STATE      ???
   TRIGGERTIME 1453195821.00521
   TRIGGERTIME_FMT 2016-01-19 10:30:21
   TYPE       HTTPMOD
   addr       http://www.eq-3.de:80
   buf        HTTP/1.1 200 OK

Date: Tue, 19 Jan 2016 08:35:50 GMT

Content-Type: text/html

Connection: close

Server: Apache

Cache-Control: max-age=86400

Expires: Wed, 20 Jan 2016 08:35:50 GMT



<div id="download_suchergebnis">
<p class="mystrong">20 Ergebnisse gefunden</p>

<div class="downloadliste_v2">


<div class="row head">

<div class="col col-1"><p>Name</p></div>
<div class="col col-2"><p>Notes</p></div>
<div class="col col-3"><p>Download</p></div>

</div><!-- ./row -->

<div id='page_1' class='page'>
<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=145">Funk-Dimmaktor 1-fach, Phasenabschnitt, Zwischenstecker Firmware V2.9.5</a>
</p>
<p>Kurz Bez.: HM-LC-Dim1T-Pl-3 </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 132087 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_HM-LC-Dim1T-Pl-3_update_V2_9_0005_160113.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>13.01.2016</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Dim1T-Pl-3_update_V2_9_0005_160113.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">58,56 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=146">Funk-Dimmaktor 1-fach, Phasenanschnitt, Zwischenstecker Firmware V2.9.7</a>
</p>
<p>Kurz Bez.: HM-LC-Dim1L-Pl-3 </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 132078 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_HM-LC-Dim1L-Pl-3_update_V2_9_0007_160113.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>13.01.2016</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Dim1L-Pl-3_update_V2_9_0007_160113.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">58,78 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=147">Funk-Dimmaktor 1-fach, PWM LED, Zwischendeckenmontage Firmware V2.9.5</a>
</p>
<p>Kurz Bez.: HM-LC-Dim1PWM-CV </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 99444 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelo_HM-LC-Dim1PWM-CV_update_V2_9_0005_160113g.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>13.01.2016</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Dim1PWM-CV_update_V2_9_0005_160113.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">56,18 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=148">Funk-Dimmaktor 1-fach für Markenschalter, Phasenabschnitt, Unterputzmontage Firmware V2.9.5</a>
</p>
<p>Kurz Bez.: HM-LC-Dim1TPBU-FM </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 103020 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_HM-LC-Dim1TPBU-FM_update_V2_9_0005_160113.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>13.01.2016</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Dim1TPBU-FM_update_V2_9_0005_160113.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">58,75 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=140">HM-CCU2 Firmware 2.15.5</a>
</p>
<p>Download-Art: Firmware </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.15.5/changelog.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>20.10.2015</p> <p><a href="/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.15.5/HM-CCU-2.15.5.tar.gz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">76,66 MB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=141">8-Kanal Empfangsmodul Firmware V1.2</a>
</p>
<p>Kurz Bez.: HM-MOD-Re-8 </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 132143A2 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_hm-mod-re-8_update_V1_2_150911.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>11.09.2015</p> <p><a href="/Downloads/Software/Firmware/hm-mod-re-8_update_V1_2_150911.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">76,07 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=139">Funk-Wandthermostat Firmware V1.3</a>
</p>
<p>Kurz Bez.: HM-TC-IT-WM-W-EU </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 132030 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_hm_tc_it_wm_w_eu_update_V1_3_002_150827.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>27.08.2015</p> <p><a href="/Downloads/Software/Firmware/hm_tc_it_wm_w_eu_update_V1_3_002_150827.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">70,12 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=115">HM-CCU1 Firmware 1.519</a>
</p>
<p>Kurz Bez.: HM-Cen-3-1 </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 76777/83355 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/HM-CCU1-Firmware_Updates/1.519/changelog.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>24.08.2015</p> <p><a href="/Downloads/Software/HM-CCU1-Firmware_Updates/1.519/hm-ccu-firmware-1.519.zip" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">9,33 MB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->

</div><!-- page_1 --><div id='page_2' class='page'>
<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=131">Funk-Rollladenaktor 1-fach für Markenschalter Firmware V2.8.2</a>
</p>
<p>Kurz Bez.: HM-LC-Bl1PBU-FM </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 103038 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_HM-LC-Bl1PBU-FM.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>12.08.2015</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Bl1PBU-FM_update_V2_8_2_150713.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">43,04 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=132">Funk-Schaltaktor 1-fach für Markenschalter Firmware V2.8.2</a>
</p>
<p>Kurz Bez.: HM-LC-Sw1PBU-FM </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 103029 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_HM-LC-Sw1PBU-FM.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>12.08.2015</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Sw1PBU-FM_update_V2_8_2_150713.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">44,46 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=130">HM-CCU2 Firmware 2.15.2</a>
</p>
<p>Download-Art: Firmware </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.15.2/HM-CCU2-Changelog-2.15.2.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>04.08.2015</p> <p><a href="/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.15.2/HM-CCU-2.15.2.tar.gz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">76,65 MB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=123">HM-CCU1 Firmware 1.518</a>
</p>
<p>Kurz Bez.: HM-Cen-3-1 </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 76777/83355 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/HM-CCU1-Firmware_Updates/1.518/changelog.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>14.04.2015</p> <p><a href="/Downloads/Software/HM-CCU1-Firmware_Updates/1.518/hm-ccu-firmware-1.518.zip" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">9,29 MB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=126">Funk-Bewegungsmelder mit Taster Firmware V1.1.2</a>
</p>
<p>Kurz Bez.: HM-Sen-MDIR-WM-55 </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 140848 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog-HM-Sen-MDIR-WM55.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>14.04.2015</p> <p><a href="/Downloads/Software/Firmware/HM-Sen-MDIR-WM55_update_V1_1_2_150413.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">50,36 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=120">HM-CCU2 Firmware 2.13.7</a>
</p>
<p>Download-Art: Firmware </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.13.7/HM-CCU2-Changelog-2.13.7.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>19.03.2015</p> <p><a href="/Downloads/Software/HM-CCU2-Firmware_Updates/HM-CCU2-2.13.7/HM-CCU-2.13.7.tar.gz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">76,39 MB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=110">HomeMatic Funk-Schaltaktor 1-fach mit Leistungsmessung, Zwischenstecker Firmware V2.5</a>
</p>
<p>Kurz Bez.: HM-ES-PMSw1-Pl </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 130248 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog-HM-ES-PMSw1-Pl.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>16.03.2015</p> <p><a href="/Downloads/Software/Firmware/HM-ES-PMSw1-Pl_update_V2_5_0009_150217.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">64,95 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=86">Funk-Heizkörperthermostat Firmware V1.4</a>
</p>
<p>Kurz Bez.: HM-CC-RT-DN </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 105155 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_hm_cc_rt_dn_update_V1_4_001_141020.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>20.10.2014</p> <p><a href="/Downloads/Software/Firmware/hm_cc_rt_dn_update_V1_4_001_141020.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">76,93 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->

</div><!-- page_2 --><div id='page_3' class='page'>
<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=101">Funk-Wandthermostat Firmware V1.2</a>
</p>
<p>Kurz Bez.: HM-TC-IT-WM-W-EU </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 132030 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog_hm_tc_it_wm_w_eu_update_V1_2_001_141020.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>20.10.2014</p> <p><a href="/Downloads/Software/Firmware/hm_tc_it_wm_w_eu_update_V1_2_001_141020.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">69,79 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=106">Funk-Regensensor Firmware V1.4</a>
</p>
<p>Kurz Bez.: HM-Sen-RD-O </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 130220 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/changelog-hm-sen-rd-o.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>18.09.2014</p> <p><a href="/Downloads/Software/Firmware/hm-sen-rd-o_update_V1_4_003_130930.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">38,47 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row even">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=102">Funk-Rollladenaktor für Markenschalter Firmware V2.3</a>
</p>
<p>Kurz Bez.: HM-LC-BI1PBU-FM </p> <p>Download-Art: Firmware </p> <p>Artikel-Nr.: 103038 </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Firmware/readme-hm-lc-bl1pbu-fm.txt" target="_Blank">ReadMe</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>15.07.2014</p> <p><a href="/Downloads/Software/Firmware/HM-LC-Bl1PBU-FM_update_V2_3_0002_131204.tgz" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">42,27 KB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->


<div class="row odd">

<div class="col col-1">
<p class="name">
<a href="/downloads.html?kat=download&id=21">HM-Sec-Cen Firmware 1.7</a>
</p>
<p>Download-Art: Firmware </p>
</div><!-- /.col-1 -->

<div class="col col-2">

<p><a href="/Downloads/Software/Alarmzentrale_HM-Sec-Cen/HM-Sec-Cen-1.7/HM-Sec-Cen-changelog-1.7.txt" target="_Blank">Changelog</a></p>

</div><!-- /.col-2 -->

<div class="col col-3">

<p class='datum'>21.03.2012</p> <p><a href="/Downloads/Software/Alarmzentrale_HM-Sec-Cen/HM-Sec-Cen-1.7/HM-Sec-Cen-1.7.exe" target="_Blank"><img src="img/download.png" alt="Download" title="Download"></a></p>
<p class="size">145,29 MB</p>

</div><!-- /.col-3 -->

</div><!-- ./row -->

</div><!-- page_3 --><div id='pageination'><p class='mystrong'>3 Seiten</p><a href='page_1' class='active'>1</a><a href='page_2' class=''>2</a><a href='page_3' class=''>3</a></div><!-- pageination -->   </div><!-- /.download_rubrik_wrap -->
</div><!- /#download_suchergebnis -->
   code       200
   conn
   data       suche_in=62&suchtext=&themenbereich_1=99
   displayurl http://www.eq-3.de/db_action/download_suche.php
   header
   host       www.eq-3.de
   httpheader HTTP/1.1 200 OK

Date: Tue, 19 Jan 2016 08:35:50 GMT

Content-Type: text/html

Connection: close

Server: Apache

Cache-Control: max-age=86400

Expires: Wed, 20 Jan 2016 08:35:50 GMT
   hu_blocking 0
   hu_filecount 3
   ignoreredirects 0
   loglevel   4
   path       /db_action/download_suche.php
   protocol   http
   redirects  0
   timeout    2
   url        http://www.eq-3.de/db_action/download_suche.php
   QUEUE:
   Readings:
     2016-01-19 09:30:26   LAST_ERROR      write to to http://www.eq-3.de:80 timed out
     2016-01-19 09:35:50   MATCHED_READINGS model
     2016-01-19 09:35:50   model           HM-LC-Dim1T-Pl-3
   Request:
     data       suche_in=62&suchtext=&themenbereich_1=99
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://www.eq-3.de/db_action/download_suche.php
   Defptr:
     Readingbase:
       model      reading
     Readingnum:
       model      01
     Readingoutdated:
     Readingsubnum:
       model
   Sslargs:
Attributes:
   enableControlSet 1
   event-on-change-reading .*
   reading01Name model
   reading01Regex (?s)<p>Kurz.Bez.:.([a-zA-Z0-9\-]+).</p>
   requestData.* suche_in=62&suchtext=&themenbereich_1=99
   room       eq3
   showError  1
   showMatched 1
   userattr   enableControlSet event-on-change-reading reading01Name reading01Regex requestData.* showError showMatched
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

StefanStrobel

Hallo Tim,

Mit get01Name und get01JSON definierst Du einen Get Befehl. Diese Anweisungen werden nicht für das Parsen der zyklischen Update Requests verwendet sondern nur für das Parsen der Antwort auf einen vom Get Befehl ausgelösten Request.
Mit reading01Name und reading01JSON sollte es klappen.

Gruß
    Stefan

StefanStrobel

Hallo Grooves,

Ich vermute das Problem liegt daran, dass Du noch die alte Syntax der Reading-Attribute verwendest.
(readingsNameXY statt reading01Name etc wie in der Doku und im Wiki beschrieben)
Poste doch mal einen Auszug aus dem Log mit Verbose 5.
Da sollte man sehen, was die MaxAge Funkktion macht.

Gruß
    Stefan

StefanStrobel

Hallo Frank,

Hast Du es mal mit XPath probiert?
Da führen mehrere Matches automatisch zu mehreren Readings.
Um das auch mit Regexes hinzubekommen müsste ich noch ein neues Attribut einbauen, das beim Matchen die /g Option aktiviert. Wäre kein großer Aufwand und ich packe das mal auf die Wunschliste :-)

Gruß
    Stefan

Bootscreen

Moin,

ich hab da mal ne Frage. Mit dem neuem JSON Feature ist es um etliches leichter geworden sich die Spritpreise zu holen.
Ich hab alles so gemacht wie oben Beschrieben und ansich funktioniert es auch, nur wie bekomm ich es jetzt hin das er die Preise selbständig alle paar Minuten holt?
Muss ich dazu ein extra at definieren der die get Befehle ausführt oder reicht es bei der definition statt der 0 zum Beipsiel 900 anzugeben?

Hiermal mein define und die List Ausgabe:
define Sprit.Jet_Goettingen.SuperE5 HTTPMOD none 0
attr Sprit.Jet_Goettingen.SuperE5 userattr extractAllJSON get01JSON get01Name get01Poll get01PollDelay get02JSON get02Name getData getHeader1 getHeader2 getURL stateFormat
attr Sprit.Jet_Goettingen.SuperE5 alias Jet - Goettingen - Super - (05:00-23:00)
attr Sprit.Jet_Goettingen.SuperE5 get01JSON station_e5
attr Sprit.Jet_Goettingen.SuperE5 get01Name SuperE5
attr Sprit.Jet_Goettingen.SuperE5 get01Poll 1
attr Sprit.Jet_Goettingen.SuperE5 get01PollDelay 900
attr Sprit.Jet_Goettingen.SuperE5 get02JSON station_isOpen
attr Sprit.Jet_Goettingen.SuperE5 get02Name Status
attr Sprit.Jet_Goettingen.SuperE5 getHeader1 Content-Type: application/json
attr Sprit.Jet_Goettingen.SuperE5 getHeader2 Accept: */*
attr Sprit.Jet_Goettingen.SuperE5 getURL https://creativecommons.tankerkoenig.de/json/detail.php?id=51d4b46c-a095-1aa0-e100-80009459e03a&apikey=
attr Sprit.Jet_Goettingen.SuperE5 group Spritpreise
attr Sprit.Jet_Goettingen.SuperE5 room Spritpreise
attr Sprit.Jet_Goettingen.SuperE5 stateFormat SuperE5

Internals:
   BUSY       0
   DEF        none 0
   Interval   0
   JSONEnabled 1
   LASTSEND   1453276422.15616
   MainURL
   NAME       Sprit.Jet_Goettingen.SuperE5
   NR         37
   STATE      1.249
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       HTTPMOD
   addr       https://creativecommons.tankerkoenig.de:443
   buf        <gekürzt>
   code       200
   conn
   data
   displayurl https://creativecommons.tankerkoenig.de/json/detail.php?id=51d4b46c-a095-1aa0-e100-80009459e03a&apikey=
   header     Content-Type: application/json Accept: */*
   host       creativecommons.tankerkoenig.de
   httpheader <gekürzt>
   hu_blocking 0
   hu_filecount 3
   ignoreredirects 0
   loglevel   4
   path       /json/detail.php?id=51d4b46c-a095-1aa0-e100-80009459e03a&apikey=
   protocol   https
   redirects  0
   timeout    2
   url        https://creativecommons.tankerkoenig.de/json/detail.php?id=51d4b46c-a095-1aa0-e100-80009459e03a&apikey=
   value      0
   QUEUE:
   Readings:
     2016-01-20 08:53:42   Status          true
     2016-01-20 08:49:51   SuperE5         1.249
   Request:
     data
     header     Content-Type: application/json Accept: */*
     ignoreredirects 0
     retryCount 0
     type       get02
     url        https://creativecommons.tankerkoenig.de/json/detail.php?id=51d4b46c-a095-1aa0-e100-80009459e03a&apikey=
     value      0
   Defptr:
     Readingbase:
       Status     get
       SuperE5    get
     Readingnum:
       Status     02
       SuperE5    01
     Readingoutdated:
     Readingsubnum:
       Status
       SuperE5
   Sslargs:
Attributes:
   alias      Jet - Goettingen - Super - (05:00-23:00)
   get01JSON  station_e5
   get01Name  SuperE5
   get01Poll  1
   get01PollDelay 900
   get02JSON  station_isOpen
   get02Name  Status
   getHeader1 Content-Type: application/json
   getHeader2 Accept: */*
   getURL     https://creativecommons.tankerkoenig.de/json/detail.php?id=51d4b46c-a095-1aa0-e100-80009459e03a&apikey=
   group      Spritpreise
   room       Spritpreise
   stateFormat SuperE5
   userattr   extractAllJSON get01JSON get01Name get01Poll get01PollDelay get02JSON get02Name getData getHeader1 getHeader2 getURL stateFormat
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

frank

Zitat von: StefanStrobel am 19 Januar 2016, 23:54:19
Hallo Frank,

Hast Du es mal mit XPath probiert?
Da führen mehrere Matches automatisch zu mehreren Readings.
Um das auch mit Regexes hinzubekommen müsste ich noch ein neues Attribut einbauen, das beim Matchen die /g Option aktiviert. Wäre kein großer Aufwand und ich packe das mal auf die Wunschliste :-)

Gruß
    Stefan
für xpath sind die tags im code wohl nicht geeignet. zumindestens habe ich das angenommen, nachdem ich die beispiele gesehen habe. ausserdem müsste ich wohl auch noch perl module laden, was ich meiner fritzbox ersparen möchte. deshalb wäre das neue attribut sehr schön. in einer eigenen sub mit HttpUtils_NonblockingGet funktioniert das sehr gut.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

Zitatnur wie bekomm ich es jetzt hin das er die Preise selbständig alle paar Minuten holt?
da hast du freie wahl. entweder in die definition, oder über ein eigenes at/notify/doif, oder was auch immer.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Cruiser79

Zitat von: StefanStrobel am 19 Januar 2016, 23:22:18
Hallo Tim,

Mit get01Name und get01JSON definierst Du einen Get Befehl. Diese Anweisungen werden nicht für das Parsen der zyklischen Update Requests verwendet sondern nur für das Parsen der Antwort auf einen vom Get Befehl ausgelösten Request.
Mit reading01Name und reading01JSON sollte es klappen.

Gruß
    Stefan

Moin Stefan,

super, damit funktioniert es. Es gibt nur noch ein Problem mit den Umlauten: Im Internal Feld buf werden die Umlaute korrekt dargestellt. In meinem herausextrahiertem Reading sehe ich dann aber z.B. anstatt "Kasernstraße 14" ein "Kasernstra�e 14".
Nochmal mein define:


define JSON HTTPMOD http://www.spritpreisrechner.at/espritmap-app/GasStationServlet 5
attr JSON userattr disable extractAllJSON get01Data get01JSON get01Name get02JSON get02Name getHeader1 getHeader2 reading01JSON reading01Name reading02JSON reading02Name requestData.* stateFormat
attr JSON getHeader1 Content-Type: application/json
attr JSON getHeader2 Accept: */*
attr JSON reading01JSON 01_address
attr JSON reading01Name 1_Adresse
attr JSON reading02JSON 01_spritPrice_01_amount
attr JSON reading02Name 1_Sprit
attr JSON requestData.* data=["checked","DIE",15.414262484145,47.057105360725,15.494085024429,47.08048974931]
attr JSON stateFormat 1_Adresse: 1_Sprit €



Hier auch noch eine Idee dazu, was ich falsch gemacht habe?

Gruß,
Tim
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

Bootscreen

#58
Zitat von: frank am 20 Januar 2016, 09:16:12
da hast du freie wahl. entweder in die definition, oder über ein eigenes at/notify/doif, oder was auch immer.

hmmm... ich habs mal mit der definition versucht nur leider bekomme ich im Log dann immer folgendes:
2016.01.20 09:26:44 3: Sprit.Jet_Goettingen.SuperE5: URL is none, no periodic updates will be limited to explicit GetXXPoll attribues (if defined)
2016.01.20 09:26:44 3: Sprit.Jet_Goettingen.SuperE5: Defined without URL and interval 900
und passieren tut leider nichts :(

Nachtrag: Hab grad die URL aus getData in die definition kopiert und nun geht es. Muss die URL dennoch in getData bleiben?
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

frank

Zitat von: Bootscreen am 20 Januar 2016, 10:13:32
Nachtrag: Hab grad die URL aus getData in die definition kopiert und nun geht es. Muss die URL dennoch in getData bleiben?
in meinem beispiel aus antwort 50 habe ich eine ähnliche url/php-anfrage. ich habe die url geteilt. den teil bis zum fragezeichen in die definition gesteckt und den teil nach dem fragezeichen ins attribut .*Data. in meinem fall requestData. ich brauchte eine post-anfrage, die nur mit data-anteil zu machen war.
httpmod setzt dann die beiden teile wieder zusammen und baut das fragezeichen ein.

ich denke das würde für deinem fall auch so funktionieren, habe aber die get-attribute noch nicht benutzt. wenn es auch anders geht, warum nicht. ich würde mit verbose4 oder 5 mal im fhem.log schauen, was httpmod beim abruf zeigt.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html