HTTPMOD -> ISG v8.2.0 mit LWZ403 (Stiebel Eltron)

Begonnen von ares, 11 Juni 2017, 12:02:42

Vorheriges Thema - Nächstes Thema

ares

Ich wollte meine LWZ403 (Stiebel Eltron) über HTTPMOD anbinden und aus Garantiegründen (Wartungsvertrag) keine nicht vom Hersteller abgenommenen Kabel an die Heizung anklemmen. Leider ist die Anbindung mit dem ISG von Stiebel Eltron nicht flexibel, da diese eventuell je nach Softwarestand des ISG (geänderter Aufbau der Webseiten) und angeschlossener Heizung (andere Einstellungen) angepasst werden muss. Auch die Fehlerliste ist offen, da ich "leider" noch keine hatte und beim Status hatte ich auch noch nicht alle Meldungen und vonStiebel Eltron gibt es leider keinerelei Informationen. Trotzdem poste ich meinen aktuellen Zwischenstand, eventuell hat jemand ähnliche Voraussetzungen und muss nur wenig anpassen. Eine Steuerung z.B. der Lüfterstüfen ist auch (noch) nicht implementiert, hier nutze ich die Web-Oberfläche des ISG.

Da mir die Konfiguration im Device schnell zu unübersichtlich war habe ich einen großen Teil in ein Modul 99_ISGwebUtils.pm ausgelagert und so meine ersten PERL-Erfahrungen gemacht. Das Modul bitte vor dem Anlegen des Device speichern.

In der Konfiguration sind mindestens die IP-Adresse 192.168.xxx.xxx, BENUTZERNAME und PASSWORT anzupassen:
define ISGweb HTTPMOD http://192.168.xxx.xxx/ 60
attr ISGweb DbLogExclude ISGwebUtils|state|LAST_ERROR|1.0.*HK2|1.0.*RAUMFEUCHTE.*|1.0.*LÜFTERDREHZAHL|1.1.*FORTLUFT.*|2.1.*LAUFZEIT.*|2.3.*DashboardLog.*|TEST.*
attr ISGweb event-on-change-reading .*
attr ISGweb event-on-update-reading 1.1_x.*VORTAG
attr ISGweb timestamp-on-change-reading .*(?<!ISGwebUtils)

attr ISGweb group StiebelEltron
attr ISGweb room Keller
attr ISGweb stateFormat 0.Betriebsart<br><br>0.Systemstatus<br>0.Systemstatus_Info

attr ISGweb reAuthRegex loginscreen
attr ISGweb sid1Data make=send&user=BENUTZERNAME&pass=PASSWORT
attr ISGweb enableCookies 1
attr ISGweb timeout 10
attr ISGweb showError 1
attr ISGweb removeBuf 1

attr ISGweb get10Name 1.0_Info_Anlage
attr ISGweb get10Poll 1
attr ISGweb get10URL http://192.168.xxx.xxx/?s=1,0
attr ISGweb get11Name 1.1_Info_Wärmepumpe
attr ISGweb get11Poll 1
attr ISGweb get11URL http://192.168.xxx.xxx/?s=1,1
attr ISGweb get20Name 2.0_Diagnose_Status
attr ISGweb get20Poll 1
attr ISGweb get20URL http://192.168.xxx.xxx/?s=2,0

attr ISGweb reading00MaxAge 150
attr ISGweb reading00MaxAgeReplacement ISGwebUtils_MaxAge
attr ISGweb reading00MaxAgeReplacementMode expression
attr ISGweb reading00Name ISGwebUtils
attr ISGweb reading00OExpr ISGwebUtils_OExpr($val);;
attr ISGweb reading00Regex (?s)(?:"sub_nav"|"werte")(.+)"footer"

attr ISGweb set00Name get_one
attr ISGweb set00TextArg 1
attr ISGweb set00IExpr ISGwebUtils_IExpr($val);;
attr ISGweb set00ParseResponse 1
attr ISGweb set00URL $val
#attr ISGweb set00IMap 2.1:Diagnose - Busteilnehmer (2.1), 2.3:Diagnose - Service (2.3)


Da die meisten Seiten sich nicht permanent ändern werden nicht bei jedem Durchlauf alle Seiten abgerufen. Die Seiten sind im Modul einstellbar und werden danach wie folgt angelegt:
{ ISGwebUtils_CreateIMap }

Für die Darstellung in smartVISU 2.8 habe ich noch einige SVG-icons erstellt.

Viel Spaß
Manfred

McJames

Dein Ansatz hört sich interessant an.
Welche DB verwendest Du zum Loggen der Events?

ares

Zitat von: McJames am 05 Februar 2018, 19:41:23
Dein Ansatz hört sich interessant an.
Welche DB verwendest Du zum Loggen der Events?

SQLite

McJames

Das ist gut, denn die nutze ich auch.  :)
Mittlerweile zeigt FHEM mir auch sämtliche Werte der LWZ als Readings an. Die ersten Plots funktionieren auch.
Jetzt kann ich damit ein wenig experimentieren.  8)

Wäre es möglich, dass Du ggf. Deine Smartvisu-Datei postest (natürlich ohne Passwort etc.) ?

gramels

Hallo,

ich habe angefangen das für ISG 8.5.6 mit meiner WPL 18 E zum laufen zu bekommen.
Nach einigem Gefriggel habe ich nun manche Werte.

Allerdings sind bei dieser ISG Version manche Felder identisch beschriftet:
Zb die Wärmemenge und die Leistungsaufnahme der Wärmepumpe sind beide mit
VD HEIZEN TAG
bennant.

Habt Ihr irgendwelche Ideen, wie man das unterscheidet?

Grüsse
gramels

<div class="span-11 prepend-1" style="float:right"><table class="info"><tr><th colspan="2" class="round-top">WÄRMEMENGE</th></tr>  <tr class="even">
    <td class="key">VD HEIZEN TAG</td>
    <td class="value">0,000 kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">VD HEIZEN SUMME</td>
    <td class="value">59,447 MWh</td>
  </tr>
  <tr class="even">
    <td class="key">VD WARMWASSER TAG</td>
    <td class="value">0,000 kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">VD WARMWASSER SUMME</td>
    <td class="value">3,347 MWh</td>
  </tr>
  <tr class="even">
    <td class="key">NHZ HEIZEN SUMME</td>
    <td class="value">0,000 MWh</td>
  </tr>
  <tr class="odd">
    <td class="key round-leftbottom">NHZ WARMWASSER SUMME</td>
    <td class="value round-rightbottom">0,000 MWh</td>
  </tr>
</table></div><div class="span-11 prepend-1" style="float:right"><table class="info"><tr><th colspan="2" class="round-top">LEISTUNGSAUFNAHME</th></tr>  <tr class="even">
    <td class="key">VD HEIZEN TAG</td>
    <td class="value">0,000 kWh</td>
  </tr>
  <tr class="odd">
    <td class="key">VD HEIZEN SUMME</td>
    <td class="value">19,605 MWh</td>

ares

Idee. die regex auf regex101.com testen und dann im Code anpassen?
(?s)>WÄRMEMENGE.+?VD HEIZEN TAG.+?>.+?>([0-9,]+)
(?s)>LEISTUNGSAUFNAHME.+?VD HEIZEN TAG.+?>.+?>([0-9,]+)

Chris46

Falls es jemanden etwas nützt, anbei meine angepasste ISGwebUtils.pm für ISG v4.0.0 mit einer WPF 7 basic. 2-3 vereinzelte statische Werte habe ich nicht implementiert.


ares

Nach dem letzten fhem-Update muss $path anders ermittelt werden:

sub ISGwebUtils_OExpr($)
{
use Switch;
my ($val) = @_;
#my $path = InternalVal('ISGweb', 'path', '');
my $path = $defs{ISGweb}{HttpUtils}{path};


Quelle: https://forum.fhem.de/index.php/topic,45176.msg1117717.html#msg1117717

McJames

Danke, dass Du Dich immer noch um dieses Modul kümmerst. Nachdem es vor Kurzem, sprich: nach dem letzten FHEM-Update, nicht mehr wollte, war ich kurz davor FHEM einzumottenda, die Heizungsauswertung ein wesentlicher Anteil meiner Installation ist.
Jetzt werde ich FHEM doch noch weiter einsetzen.  8)
Vielen Dank!!!  ;D

sonshine

Zitat von: ares am 04 Januar 2021, 18:04:49
Nach dem letzten fhem-Update muss $path anders ermittelt werden:

sub ISGwebUtils_OExpr($)
{
use Switch;
my ($val) = @_;
#my $path = InternalVal('ISGweb', 'path', '');
my $path = $defs{ISGweb}{HttpUtils}{path};


Quelle: https://forum.fhem.de/index.php/topic,45176.msg1117717.html#msg1117717


Gewaltig!!! Vielen Dank fürs Update und für die Lösung - bevor ich überhaupt das Problem erkannt hatte  ;D
Super!!! Weiter so!

Grüsse Sonshine

oedvf

Hallo kann mir bitte wer helfen!

Habe letztes Jahr mit dem Modul 99_ISGwebUtils meine Stiebel 15ACS mit ISG Gateway am laufen. Alles war wunderbar. Nach dem letzten Update (FHEM)
läuft meine Log über. $path habe ich angepasst.  Am ISG hat sich nichts geändert, Daten kommen in FHEM jedoch an.

Hat jemand einen Tip für mich?

Danke im voraus.



ares

Zitat von: oedvf am 02 April 2021, 10:39:23
Nach dem letzten Update (FHEM)läuft meine Log über.
Ich habe eben ein Update durchgeführt, bekomme die Fehler aber nicht in meinem Log um den Fehler weiter analysieren zu können.
Aufgrund des Fehlers MaxAge würde ich das ISG mal für 5 Sekunden stromlos machen. Falls der Fehler weiter auftritt, dann bleibt nur Log-Einträge einzubauen um den Fehler einzugrenzen (bei welcher ISG-Seite tritt das auf, was wurde gelesen, was wurde von HTTPMOD übergeben, ...).

oedvf

Hey,

Danke für die schnelle Antwort. Ja ein jeder boot tut gut - alles wieder bestens. Einzig 1.0_14.Heizen.SOLLTEMPERATUR_HK_1 liefert keinen Wert aber ich glaube das war schon immer so.

Vielen Dank und ein frohes Osterfest

ares

Zitat von: oedvf am 02 April 2021, 15:26:33
Einzig 1.0_14.Heizen.SOLLTEMPERATUR_HK_1 liefert keinen Wert.

Bei mir gibt's nur folgende beiden Werte, ich hoffe das war ein Tippfehler im Forum und keine Änderung der Source:

ISGwebUtils_UpdNum($val, "SOLLWERT HK1", "1.0_12.Heizen.SOLLWERT_HK1");
ISGwebUtils_UpdNum($val, "SOLLWERT HK2", "1.0_14.Heizen.SOLLWERT_HK2");


Falls auch bei Dir in der Source "SOLLWERT HK1" und "1.0_12.Heizen.SOLLWERT_HK1" steht, dann bitte am ISGWEB anmelden und prüfen, ob auf http://isgweb/?s=1,0 rechts unter HEIZEN eine Temperatur unter "SOLLWERT HK1" angezeigt wird. Für HK2 dann analog. Entweder fehlt das bei Dir, es steht an einer anderen Stelle oder im Modul ist etwas durcheinander.

oedvf

Hey arres,

das war kein Tippfehler bei mir ist 1.0_12.Heizen.AUSSENTEMPERATUR und die wird auch korrekt angezeigt. Bekomme mit /?s=1,0 die Seite im Anhang.

Nochmals Danke für die tolle Unterstützung.