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

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

Vorheriges Thema - Nächstes Thema

ares

#15
Zitat von: oedvf am 02 April 2021, 15:56:40
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.

Nun ja, Tippfehler gibt's häufiger als man denkt... bitte ares anstatt arres.  ;)

Deine Seite für /?s=1,0 sieht wie erwartet komplett anders aus, da ich eine LWZ403 habe - siehe Screenshot im Anhang. Ich finde es aber interessant, dass trotz der Abweichungen doch so viele das Modul nutzen.

Der Name "1.0_12.Heizen.SOLLWERT_HK1" ist meiner Fantasie entsprungen und sollte nur helfen, die Werte in fhem zuordnen zu können:

  • "1.0" steht für die ISG-Seite "/?s=1,0"
  • "_12" für den zwölften Wert in meiner ISG-Anzeige
  • "Heizen" ist die Überschrift im ISG
  • "SOLLWERT_HK1" ist der Text im ISG
Da meine Frau nicht mit fhem arbeiten will, sieht sie die für sie relevanten Daten aufgehübscht in smartvisu und ist glücklich.

Der Sollwert meiner LWZ403

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

wär bei der 15ACS dann analog

ISGwebUtils_UpdNum($val, "SOLLTEMPERATUR HK 1", "1.0_14.Heizung.SOLLTEMPERATUR_HK1");

Damit sucht er den Text "SOLLTEMPERATUR HK 1" und speichert den numerischen Wert "1.0_14.Heizung.SOLLTEMPERATUR_HK1".

Versuch doch den Code mal an Deine Werte anzupassen.

  • '/?s=1,0' steht für die ISG-Seite "/?s=1,0"
  • "# 20x Info - Anlage" war nur eine Information für mich. Im fhem Reading ISGwebUtils steht dann "/?s=1,0 ► 20/20" nach dem Abrufen und zeigt mir, dass alle Werte im Modul gefunden wurden.
  • "# HEIZEN" ist auch nur ein Kommentar und entspricht der Überschrift im ISG
  • Und dann kommen die entsprechenden Werte aus meiner Anzeige, die Funktion am Anfang ist je nach Typ zu wählen. Numerische Werte werden z.B. alle mit ISGwebUtils_UpdNum ausgelesen. Ich würde einfach am Anfang jeder Zeile ein "#" davor setzen, dann ist das ein Kommentar und wird nicht mehr ausgeführt. Danach definierst Du Deine Werte aus der Anzeige und schaust nach, ob das funktioniert. Die Werte werden übrigens Reihum abgefragt und nicht alle auf einmal. Du kannst die Seite "/?s=1,0" aber sofort abholen, wenn Du in fhem oben auf den Button get klickst, nachdem Du "1.0_Info_Anlage" ausgewählt hast.

case  '/?s=1,0'                 {# 20x Info - Anlage

# RAUMTEMPERATUR
ISGwebUtils_UpdNum($val, "RAUMISTTEMP. HK1",                   "1.0_01.Raumtemperatur.RAUMISTTEMP_HK1");
ISGwebUtils_UpdNum($val, "RAUMSOLLTEMP. HK1",                  "1.0_02.Raumtemperatur.RAUMSOLLTEMP_HK1");
ISGwebUtils_UpdNum($val, "RAUMFEUCHTE HK1",                    "1.0_03.Raumtemperatur.RAUMFEUCHTE_HK1");
ISGwebUtils_UpdNum($val, "RAUMISTTEMP. HK2",                   "1.0_04.Raumtemperatur.RAUMISTTEMP_HK2");
ISGwebUtils_UpdNum($val, "RAUMSOLLTEMP. HK2",                  "1.0_05.Raumtemperatur.RAUMSOLLTEMP_HK2");
ISGwebUtils_UpdNum($val, "RAUMFEUCHTE HK2",                    "1.0_06.Raumtemperatur.RAUMFEUCHTE_HK2");

# WARMWASSER
ISGwebUtils_UpdNum($val, "WW-ISTTEMP.",                        "1.0_07.Warmwasser.WW_ISTTEMP");
ISGwebUtils_UpdNum($val, "WW-SOLLTEMP.",                       "1.0_08.Warmwasser.WW_SOLLTEMP");

# WÄRMEERZEUGER
ISGwebUtils_UpdNum($val, "HEIZSTUFE",                          "1.0_09.Wärmeerzeuger.HEIZSTUFE");

# HEIZEN
ISGwebUtils_UpdNum($val, "AUSSENTEMPERATUR",                   "1.0_10.Heizen.AUSSENTEMPERATUR");
ISGwebUtils_UpdNum($val, "ISTWERT HK1",                        "1.0_11.Heizen.ISTWERT_HK1");
ISGwebUtils_UpdNum($val, "SOLLWERT HK1",                       "1.0_12.Heizen.SOLLWERT_HK1");
ISGwebUtils_UpdNum($val, "ISTWERT HK2",                        "1.0_13.Heizen.ISTWERT_HK2");
ISGwebUtils_UpdNum($val, "SOLLWERT HK2",                       "1.0_14.Heizen.SOLLWERT_HK2");
ISGwebUtils_UpdNum($val, "VORLAUFTEMPERATUR",                  "1.0_15.Heizen.VORLAUFTEMPERATUR");
ISGwebUtils_UpdNum($val, "RÜCKLAUFTEMPERATUR",                 "1.0_16.Heizen.RÜCKLAUFTEMPERATUR");

# LÜFTEN
ISGwebUtils_UpdNum($val, "ZULUFT IST LÜFTERDREHZAHL",          "1.0_17.Lüften.ZULUFT_IST_LÜFTERDREHZAHL");
ISGwebUtils_UpdNum($val, "ZULUFT SOLL VOLUMENSTROM",           "1.0_18.Lüften.ZULUFT_SOLL_VOLUMENSTROM");
ISGwebUtils_UpdNum($val, "ABLUFT IST LÜFTERDREHZAHL",          "1.0_19.Lüften.ABLUFT_IST_LÜFTERDREHZAHL");
ISGwebUtils_UpdNum($val, "ABLUFT SOLL VOLUMENSTROM",           "1.0_20.Lüften.ABLUFT_SOLL_VOLUMENSTROM");
ISGwebUtils_LUESTU("1.0_18.Lüften.ZULUFT_SOLL_VOLUMENSTROM",
                   "4.2.2_01.Lüften.LÜFTERSTUFE_ZULUFT_1",
                   "4.2.2_02.Lüften.LÜFTERSTUFE_ZULUFT_2",
                   "4.2.2_03.Lüften.LÜFTERSTUFE_ZULUFT_3",     "1.0_x1.Lüften.LÜFTERSTUFE");


Ach ja, beinahe vergessen. Nach dem Ändern und Speichern des Moduls bitte fhem mitteilen, dass sich etwas geändert hat. Dazu einfach oben in fhem folgendes nach jeder Änderung eingeben, ansonsten läuft noch die alte Version weiter. Falls gar nichts mehr funktioniert, kannst Du jederzeit die alte Version wiederherstellen, die Du hoffentlich gesichert hast.

reload 99_ISGwebUtils.pm


Damit solltest Du während der Osterfeiertage nun eine sinnvolle Beschäftigung haben, falls Dir bisher noch langweilig war.
Viel Spaß!

PS:Falls Dir irgendwann alle Werte angezeigt werden, stell die endgültige Version ins Forum, vielleicht benötigt sie ja irgendwann jemand und Du hast nebenbei eine Sicherungskopie.

oedvf

Hey Ares,

ja so ist das mit den Tippfehler, werde mich bessern. Danke für deinen wertvollen Beitrag werde es ausprobieren sobald ich wieder ein funktionierendes System habe. Am Freitag vor Ostern ist mein Windows-Rechner auf dem FHEM läuft krepiert. Ich dachte kein Problem da ich ein Backup von allen habe. Nun habe ich FHEM auf einem Raspberry pi4 laufen bekomme jedoch die Stiebel nicht mehr zum laufen. "99_ISGwebUtils" sowie "switch" installiert und die FHEM.CFG am Raspi installiert. Alles läuft Stiebel will nicht. Sehe das er das ISG über HTTPMOD abfragt, sehe sogar Temperatur usw. aber danach stehen keine Readings drinnen sondern nur (Reste von irgendeiner Website??? siehe Anhang) . Habe keine Ahnung was man unter Linux machen muss das es wieder funktioniert. Bin leider kein Linux Spezialist!!!

LG
Helmut 

ares

Jetzt noch ares mit einem kleinen "a", dann nähern wir uns meinem Namen immer mehr an.  :)
Bei mir läuft das auch unter Linux auf einem pi2. Der pi4 mit SSD in einem Argon M.2-Gehäuse steht aber schon am Schreibtisch, nur hatte ich noch nicht die Zeit für die Migration. Dieses mal möchte ich das gerne dokumentieren, damit ich später nichts vergesse.

Die "Reste" sehen nach isgweb/?s=2,0 aus, damit ist ja zumindest schon irgendetwas aktiv.
Aus der Ferne lässt sich das immer schwer prüfen.
Steht was im Log? Vielleicht fehlt noch ein Modul, das Du unter Windows installiert hattest und das nun fehlt?
Lad mal Deine Raw definition (OHNE Passwort) hoch, vielleicht ist dort etwas zu sehen.

oedvf

Hey ares,

zumindest der Name passt jetzt. Im Log steht nichts nur kurz nach dem hochstarten die Zeile: "2021.04.12 15:33:14 3: ISGweb: Read callback: Error: read from http://172.30.1.220:80 timed out" jedoch danach kommt die Meldung nicht mehr. Kann mich auch nicht erinnern das ich außer den beiden Datein etwas installiert habe. Und nun die große Frage, was ist eine raw definition?? Bei der Abfrage sehe ich einen Bildschirm voll div. Zeichen siehe Anhang und zum Schluss steht anstatt den Readings der Rest von der Webpage.

LG
Helmut


ares

Das war nun die Seite http://isgweb/?s=0 und die vielen Zeichen sind die Befehle, um Internetseiten darstellen zu können. Du kannst Dir das auf jeder Website auch mit Rechtsklick/Seitenquelltext ansehen.
Ganz unten vom Device ist in der letzten Zeile als drittes Raw definition. Klickt man da drauf, dann sieht man alles (inklusive Passwort) zum ISGweb.
Wenn Du nichts im Log siehst, dann vielleicht verbose für ISGweb temporär auf einen höheren Wert setzen. Irgendetwas muss ja fehlen oder von der alten Installation abweichen. Aus der Ferne ist das leider ohne Fehler schlecht nachzuvollziehen.

Nochmal zur Sicherheit... fhem ist sicher aktuell und im Modul ist die Änderung zur Ermittlung $path auch angepasst?

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

oedvf

Hey ares,

vorerst herzlichen Dank für deine Geduld mit mir. Alle Tipps befolgt: Verbose 1 schreibt auch nichts in den Log. Path im 99_ISGwebUtils.pm kontrolliert und ist in Ordnung. Im Anhang nun noch RAW Device dann sind wir wohl am Ende?

LG
Helmut

ares

Das Raw hilft auf jeden Fall schon mal etwas. Mir fehlt dort z.B. das Attribut set00IMap, das in der Anleitung aus dem ersten Posting angelegt wird und die Seiten definiert, die abgeholt werden sollen:
{ ISGwebUtils_CreateIMap }

Versuch bitte mal nach dem ersten Beitrag alles erneut einzurichten, eventuell fehlt auch noch mehr wie z.B.:
attr ISGweb reAuthRegex loginscreen

Vielleicht hilft das, ansonsten bitte nochmal das RAW-Device, in dem ja dann set00IMap enthalten sein müsste.

ares

Hallo Helmut,

Zitat von: oedvf am 12 April 2021, 17:06:45
Im Anhang nun noch RAW Device dann sind wir wohl am Ende?

Hast Du versucht, die fehlenden Einträge anzulegen?
{ ISGwebUtils_CreateIMap }

Viele Grüße
ares