Zuerst einmal mein Eindruck nachdem ich nun seit einigen Wochen das ISG web habe. Was wird einem für 500 EUR geboten? Antwort: beschämend wenig. Wenn ich das Gerät nicht für meine PV benötigen würde, wäre es definitiv herausgeschmissenes Geld. Natürlich bekommt man eine schöne Oberfläche die einfacher zu bedienen ist als das normale WPMW, aber wie oft muss man da ran?
Was man bei einer Heizung einstellen kann habe ich im letzten Artikel beschrieben. Viel ist es nicht was man optimieren kann, dafür reicht das WPMW.
Was bietet es neben einer hübscheren Oberfläche für die Konfiguration noch? Statistik. Dies ist die Stärke als auch die Schwäche des Moduls. Hier ein Bild:
Die einzigen Statistiken die man bekommt sind über Außentemperatur, Heizenergie und Warmwasserenergie.
ABER: Das ISG web speicher nur 7 Tage!!!
Warum? Keine Ahnung, da ein kleiner Webserver auf einer SD-Karte integriert ist sollte es kein Problem sein die Daten in einer Datenbank vorzuhalten.
Ich wermute: Stiebel Eltron will seine Cloud-Anbindung verkaufen. In der günstigsten Version ISG Basis kostet sie 49 EUR im Jahr (Stand 2019).
Die Verbindung muss ich so oder so aufbauen um später das EMI Update für die Anbindung an die Photovoltaik zu bekommen. Der ISG Basis Tarif ist in den ersten 4 Wochen kostenlos zum Testen einrichtbar und wenn man einen Servicevertrag unterschreibt die ersten 2 Jahre kostenlos. Da man nach 2 Jahren kündigen kann habe ich diese Variante gewählt.
Nach dem Ausfüllen und Abschicken des Formulars dauert es ca. 24h bis man den Code für die Cloud bekommt.
Stiebel Eltron Servicewelt
Was erwartet einen dort? Kurzantwort: Nicht viel:
Nach nun ca. 2 Wochen Test sehe ich dort, dass zumindestens einen etwas größeren Verlauf als 7 Tage habe. Den aktuellen und den letzten Monat. Außerdem kann ich die Betriebsart, die Raumtemperatur und Warmwasser bearbeiten. Wow.
Was mir als ITler aufgefallen ist: Man bekommt einen Benutzernamen und Passwort zugeschickt. Das Passwort lässt sich jedoch nicht ändern!
Daher bin ich schnell dazu übergegangen mir zu überlegen: Kann ich mir die Daten aus meinem ISG web nicht selbst auslesen und in einer Datenbank speichern?
Hier mal ein interessanter Link wie man das Modul ausbauen und hacken kann: https://www.loxwiki.eu/pages/viewpage.action?pageId=24840008 Soweit bin ich aber nicht gegangen, da ich keine Garantie verlieren wollte.
ISG web auslesen: Konzept
Folgendes wird benötigt:
- Eine Fritzbox oder ein Router mit ähnlichen Funktionen
- Eine Website mit PHP und einer Datenbank (z.B. MySQL)
- Ein Cronjob (bieten viele Websitehoster an)
- ISG web Version 10.0.0 ODER ISG web mit EMI Update Version 2.2.0
- Grundlegende Webentwicklungskenntnisse / PHP Kenntnisse
Folgendermaßen bin ich vorgegangen:
Das ISG web habe ich in der Fritzbox über Fernzugriff frei gegeben. Dabei sollte man beachten, dass man im ISG web unter Profil > Sicherheit einen Passwort geschützten Zugang definiert, ansonsten kann jeder auf die Anlage zugreifen.
Als nächstes muss das Problem gelöst werden wie man eine statisch abrufbare Adresse bekommt, da sich die IP Adresse ja jeden Tag ändert. Dazu gibt es 2 Möglichkeiten:
1. Man legt sich ein MyFritz Konto an. Dort erhält man eine kryptische aber statische Adresse. Die Fritzbox meldet dann täglich die neue IP beim Fritzbox Konto.
2. Man Programmiert sich einen eigenen kleinen DynDNS service mit PHP. Dazu benötigt man nur eine eigene Website auf de man PHP ausführen kann. In der Fritzbox kann man unter Freigaben > DynDNS: DynDNS Anbieter Benutzerdefiniert nun im Feld Update-URL eine URL angeben die täglich die aktuelle IP übergeben bekommt.
Die fertigen Skripte befinden sich unten im Download, eine detailierte Anleitung dazu habe ich hier gefunden: https://www.just4it.de/dyndns-mit-php.html
Nachdem man nun eine URL hat ist benötigt man noch zwei weitere Skripte:
Eines welches täglich auf die ISG Web Seite geht, die Werte aus dem Quelltext ausliest (eine Schnittstelle konnte ich nirgends finden) und diese in die Datenbank schreibt. Dies geht recht einfach mit dem PHP Befehl curl. Alle Daten der Seite Info > Wärmepumpe http://127.0.0.1/?s=1,1 können so sehr einfach ausgelesen werden. Etwas komplizierter wird es mit den Daten aus den Grafiken der Startseite. Die stehen in einem JavaScript Array. Aber auch das konnte ich (etwas dirty und sehr statisch) auslesen. Dieses Skript ruft man dann täglich über einen Cronjob auf.
Mit einem zweiten Skript zeigt man die Daten aus der Datenbank dann an. Dies kann man sehr einfach mit Hilfe von Google Charts machen oder auch jedem anderen Bibliothek zur Chart Anzeige.
Fertig ist die eigene ISG web Cloud 🙂 Und so sieht meine Seite aus (ja, ich bin Entwickler, kein Designer, es ist eher pragmatisch dargestellt):
Die fertigen Skripte findet ihr hier:
DOWNLOAD: ISG web auslese Skript –> Siehe neue Version unten
Eine ausführliche Readme befindet sich hier: README.txt
Wichtig damit das Skript funktioniert: Es sollte die gleiche Software Version sein, da mit einer Layout Änderung auch das Skript nicht mehr funktionieren würde.
Das ISG web hat bei mir die Version 10.0.0 gehabt.
Mit dem neuen EMI Update zeigt er mir nun die Version 2.2.0 an.
Andere (neuere / ältere ) Versionen können funktionieren, müssen aber nicht.
UPDATE:
Ich habe die Skripte um neue Funktionen erweitert:
- Layout
- Es wird die Seite Sommerbetrieb ausgelesen und der Wert für die Umschaltung auf Sommerbetrieb in der Temperaturgrafik angezeigt
- Ein komplett neues Skipt welches regelmäßig (bei mir alle 15 Minuten) von der Startseite die Warmwassertemperatur liest und in die DB logged. Außerdem ein zweites Skript zum Anzeigen der Werte. So kann besser nachvollzogen werden warum die Luftwärmepumpe angesprungen ist.
UPDATE
Das Skript, welches alle 15 Minuten die Warmwassertemperatur ausliest wurde erweitert. Nun werden auch die Heizungstemperaturen ausgelesen.
UPDATE 11.03.2020
Nachdem es seitens Stiebel Eltron ein Update für das ISGweb auf die Version 10.2.0 gegeben hat musste auch mein Skript angepasst werden.
Zum einen wurden anscheinend leichte Änderungen an der HTML Struktur vorgenommen, so dass die Ausleselogik nicht mehr griff. Zum anderen hat sich der Link für die Wärmepumpen Infos von /?s=1,1 auf /?s=1,2 geändert.
UPDATE 19.05.2020 – Security Update
Das neue Skript findet ihr hier:
DOWNLOAD v1.3: ISG web auslese Skript
Eine ausführliche Readme befindet sich hier: README.txt
Hallo,
hab das hier gerade gefunden. Kann man die Daten auch nur abrufen und auf dem Rechner speichern,um sie dann vielleicht mit einem Tabellenprogramm zu visualisieren?
Viele Grüße
Sebastian
Hallo Sebastian,
möglich ist alles, die Frage ist was du möchtest. Die Problemstellung für mich war ja die folgende: Wie speichere ich die Daten TÄGLICH ab ohne dass ich meinen PC laufen lassen muss. Daher habe ich die Option gewählt, dass meine Website den Job übernimmt.
In meiner Lösung schreibe ich die Daten in eine Datenbank, man könnte sie auch per PHP in eine CSV Datei schreiben, damit man es mit Excel auswerten kann. Aber auch hierzu muss man eine Website besitzen die die tägliche Abfrage übernimmt.
Natürlich könnte man auch Konsolenanwendungen schreiben, die die Daten auslesen und in eine CSV speichert, aber ein solches Programm müsste man ja dann täglich manuell ausführen. Ich bin ITler, ich bin faul 😉
Hallo,
mir würde es reichen die Daten in eine CSV Datei zu schreiben (der Rechner ist eh täglich an). Das selbe macht bei mir auch ein Rechner der täglich die Daten der PV Anlage log.
Ich versuch mal den Weg mit der Fritzbox.
Viele Grüße
Sebastian
Dann würde es ausreichen sich eine Konsolenanwendung zu schreiben die dies erledigt, oder (bei einem Windows PC) ein PowerShell Script. Beides könnte mit dem Windows Scheduler regelmäßig gestartet werden. Eine Fritzbox benötigt man dafür nicht.
Genau das war mein Gedanke, leider kenn ich mich nicht im schreiben von solchen Scripten aus :/
Viele Grüße
Sebastian
Hallo Sebastian,
ich beschäftige mich zur Zeit mit dem Thema Raspberry PI als SmartHome Lösung. Dort habe ich den ioBroker installiert (ich habe mich dabei an die Anleitungen von haus-automatisierung.com gehalten, geht alles ganz einfach), für diese Software gibt es bereits ein Modul welches das ISG auslesen kann. Vielleicht wäre das eine Lösung für dich?
Hallo,
ich sehe deine Lösung als sicherheitstechnisch kritisch:
> Das ISG web habe ich in der Fritzbox über Fernzugriff frei gegeben. Dabei sollte man beachten, dass man im ISG web unter Profil > Sicherheit einen Passwort geschützten Zugang definiert, ansonsten kann jeder auf die Anlage zugreifen.
Bitte mach das nicht. Das ISGweb kann nur plain http, kein verschlüsseltes https. D.h. wenn du die Anlage einfach so über die Freigabe in’s Internet stellst und mit deinem PHP Skript darauf zugreifst, übermittelst du den user + passwort deiner Heizung unverschlüsselt im Klartext.
D.h., dass überall auf der Netzwerkstrecke von deinem Server bis zu deiner Fritzbox die Zugangsdaten einfach ausgelesen werden können und damit Fremde deine Heizung verstellen können.
Du könntest einen Webserver zwischen Fritzbox und ISG stellen, der dann die SSL-Verschlüsselung übernimmt – aber dann hättest du eh einen kleinen Rechner am laufen mit dem du die Daten auch gleich lokal holen kannst, ohne Umweg über das Internet.
Abgesehen davon – danke für dein Blog, sind einige Interessante Themen für mich dabei!
Vielen Dank für diesen Hinweis.
Beim Thema Sicherheit hast du wohl vollkommen Recht. Das ist der Kompromiss den ich wohl eingehen muss, entweder lokal mit eigenem PC oder mit potentiellem Sicherheitsrisiko.
Ich werde es aber (aus Bequemlichkeit) wohl erstmal so lassen, da ein Angreifer schon viel Aufwand betreiben muss und bis auf die Heizungseinstellung wenig Nutzen hat. Aber ja, Fremde sollten nicht in mein lokales Netzwerk hinein.
Hoi,
voher hast du die neue Version 10.2.0 ?
Updater software von stiebel-eltron sagt mir neuste ist 10.1.0
Danke
Ich habe noch den 2 Jahres Cloud Vertrag. Das Update wurde automatisch eingespielt, ich habe nichts aktiv getan.
Hoi, hättest du noch scripts von 10.1.0 ? Ich habe url’s angepasst aber kriege zur zeit :
Aussentemperatur_max | 2020-06-13 | | C | 2020-06-14 14:30:26 |
| Aussentemperatur_min | 2020-06-13 | | C | 2020-06-14 14:30:26 |
| Aussentemperatur_mittel | 2020-06-13 | | C | 2020-06-14 14:30:26 |
nicht in DB.
Mit parsing stimmt etwas nicht: INSERT INTO isgweb (Name, Datum, Wert, Einheit)
VALUES (‚Aussentemperatur_min‘, ‚20200613‘, “, ‚C‘)New record created successfullyPHP Notice: Undefined offset: 2 in /var/www/html/readisg.php on line 179
Danke
Ich habe nun die älteren Versionen 1.1 und 1.2 wieder veröffentlicht, bitte schauen welche Version du brauchst. Ich glaube Version 1.2.
–> Downloads
Hoi, Danke. War aber 1.3 noch besser. Problem war bei startseite je nach WP typ ist html anderes gebaut. Eventuell waere besser den server so anpassen das xml Objeckte liefert, so wie https://www.loxwiki.eu/pages/viewpage.action?pageId=24840008
Diese Modifikation führt, wie oben beschrieben, zum Garantieverlust. Das Skript erfüllt für mich seinen Zweck und wird daher nicht weiterentwickelt.
Script ist auch super (y). Ich würde erwarten von Stiebel-eltron das Sie etwas mehr anbieten bei isg Anbindung, den gerät ist schon etwas überteuert 😉 . Nochmals vielen Dank für dein Hilfe !
Eine Alternative zu meinem Skript findest du in meinem neuesten Blog über Smart Home mit ioBroker, dort gibt es ein Modul für das ISG web.
[…] gab, habe mich mich mit dem Thema Smart Home beschäftigt. Denn schon länger gab es den Plan mein Script, welches die Daten des ISG web ausliest, lokal laufen zu lassen. Außerdem hörte ich von Shelly, ein Modul, welches es ermöglicht sein […]
Moin, super script vielen Dank dafür! Es lief bei mir bis jetzt immer gut allerdings bekomme ich jetzt ein php fehler beim ausführen:
root@srv002:/var/www/html/isgweb# php readisg.php
Try to login to http://192.168.178.13
PHP Fatal error: Uncaught Exception in /var/www/html/isgweb/readisg.php:273
Stack trace:
#0 /var/www/html/isgweb/readisg.php(362): loginToServer(‚http://192.168….‘, ‚http://192.168….‘, ‚http://192.168….‘, ‚http://192.168….‘)
#1 {main}
thrown in /var/www/html/isgweb/readisg.php on line 273
Fatal error: Uncaught Exception in /var/www/html/isgweb/readisg.php:273
Stack trace:
#0 /var/www/html/isgweb/readisg.php(362): loginToServer(‚http://192.168….‘, ‚http://192.168….‘, ‚http://192.168….‘, ‚http://192.168….‘)
#1 {main}
thrown in /var/www/html/isgweb/readisg.php on line 273
kennt den jemand und kann helfen?
Fehler sagt „Try to login to #ip#“. Hast du in der Config die richtigen Login Daten für deinen ISG hinterlegt?
Hallo
ja ich habe die richtigen Logindaten eingetragen, auch wenn ich diese direkt in die Datei schreibe geht es leider nicht.
Für alle die den gleichen Fehler haben…….
Lösung: Keine „new Line/Enter/ \n“ in der IP Textdatei.
Danke für das Skript!
Sind bei ISGweb auch Stromverbrauchsdaten auslesbar (kWh) oder nur Wärmeenergie?
Danke!
Hallo Ben,
das Script liest nur die Werte aus, die das ISGweb auch anzeigt.
Das ISGweb wird bei mir im Sunny SmartHome Manager erkannt und dieser kann dann explizit den Stromverbrauch für dieses Gerät ausweisen. Dazu wird das ISGweb benötigt. Im ISGweb selbst kannst du den Stromverbrauch allerdings nicht ablesen sondern nur Heizungsdaten.
Hi,
ich persistiere relevanten daten des ISGs via MODBUS-IP per Openhab instanz welche auf Docker in meiner Synology diskstation läuft. Openhab nutze ich hier mit dem InfluxDB persistence layer und visualisiere das ganze mit Grafana. All das läuft auf kleinen Docker instanzen.
Da über modbus nicht alles abgreifbar ist, was auch auf den ISG Seiten Angezeigt wird (z.B.: Diagnose->Fachmann) nutze ich eine weiter Openhab http Bridge um diese sachen von der ISG webseite zu ziehen.
Meine Lösung ist komplett cloudless.
Cheers
Frank
Hallo
Vielen Dank für das Skript. Seit zwei Jahren wende ich dieses an. Nun habe ich seit dem 22. Nov. 2022 das Problem, dass die Werten nicht mehr korrekt ausgelesen und zwischen dem Wert und der Einheit getrennt werden können. Es gibt kein Lehrezeichen mehr zwischen dem Wert und der Einheit, das als Trennungszeichen erkannt werden kann.
ÖLSUMPFTEMPERATUR
55,7°C
DRUCK NIEDERDRUCK
8,39bar
DRUCK HOCHDRUCK
19,16bar
SPANNUNGSEINGANG DIFF DRUCK
0,00V
Kann die explode-Funktion mit mehreren Trennzeichen definiert werden?
Kannst du mir bitte einen Tipp geben, wie ich das anpassen muss.
Viele Grüsse
Markus
Hallo Markus,
wenn die Werte wirklich ohne Leerzeichen geliefert werden, dann würde ich individuell pro Einheit vorgehen. Mit str_ends_with kannst du das Ende auslesen, z.B.
if (str_ends_with($string, ‚bar‘)) {
$wert = substr($string, 0, -3);
}
if (str_ends_with($string, ‚°C‘)) {
$wert = substr($string, 0, -2);
}
if (str_ends_with($string, ‚V‘)) {
$wert = substr($string, 0, -1);
}
Vielen Dank.
Für die Funktion str_ends_with() muss min. PHP 8.0 installiert und aktiv sein. Bisher hatte ich 7.4 installiert.
Damit konnte ich die Werte korrekt generieren.
Aber dann wurden die Werte mit dem Skript show_lwp.php nicht mehr dargestellt.
Sobald ich wieder auf PHP 7.4 wechsle funktioniert die Darstellung im Skript.
Das Skript show_temp.php funktioniert bei PHP 7.4 und 8.0.
Nachdem ich in der Datei readisg.php die Funktionsdefinition für str_ends_with() eingetragen habe, hat alles auf PHP 7.4 wieder einwandfrei funktioniert.
if (!function_exists(’str_ends_with‘)) {
function str_ends_with($str, $end) {
return (@substr_compare($str, $end, -strlen($end))==0);
}
}
Moin,
kannst du kurz mal sagen, wo du die Funktionsdefinition eingefügt hast.
Danke.
Tipp:Mittlerweile unterstützt das ISG web standardmäßig die Abfrage von Werten per modbus (siehe hierzu https://www.stiebel-eltron.de/de/home/service/smart-home/modbus.html bzw. https://www.tecalor.de/de/produkte/smart-home/gebaeudeleittechnik.html).
Dadurch lassen sich bspw. per Node-Red sehr einfach Flows zusammenbauen, die die Werte per modbus vom ISG abfragen und bspw. in eine InfluxDB wegschreiben. Ich habe das bei uns über entsprechende Docker Container realisiert, die auf einem lokalen NAS von Synology laufen. So hat man auch kein Einfallstor über das Internet. Gesetzt den Fall, dass man Zugriff über das Internet haben möchte, dann lässt sich das natürlich leicht ergänzen.
Hoi Tobi,
Muss man eine bestimmte version von SW bei ISG haben, und wenn ja, wo bekommt man die. Danke