Auslesen und Steuerung LWZ mit ioBroker

Netzwerk, Photovoltaik, Homeway, Multimedia...
Benutzeravatar
Dr. Bob
Ingenieur
Beiträge: 634
Registriert: Do 9. Nov 2017, 12:28
Wohnort: Pfalz

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von Dr. Bob » Sa 15. Dez 2018, 21:42

https://pastebin.com/cBa0rbYv

bitteschön. Ich wünsche gutes gelingen :-D
VIO450 mit 176qm Wohnfläche (190qm beheizte Fläche), voll Unterkellert
Beginn: 12/2016
Einzug 06/2017

CodeMasteR
Geselle
Beiträge: 139
Registriert: Mi 16. Nov 2016, 21:29

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von CodeMasteR » Sa 15. Dez 2018, 22:17

Hallo SaschaS,

Ja es gibt inzwischen einen eigenen Adapter der das ISG sehr gut auslesen kann. Das Script was ich benutze ist etwas betagter und setzt eine bestimmte Version des ISG voraus, da es bildlich gesprochen die Webseite an bestimmten Punkten versucht zu lesen und das klappt nur wenn dort auch genau das steht was es erwartet. Stiebel ändert gelegentlich die Reihenfolge der Felder, was ich im Script bis dato stets angepasst habe. Dem ISG Adapter hingegen ist die Reihenfolge oder Position ziemlich egal, er liest ein was er bekommt. :)

Wenn du auf wenig Bastelei stehst, dann nimm den Adapter, willst du mehr eingreifen, dann wird's Zeit zum JavaScript lernen :).

Das Schöne an ioBroker ist die Möglichkeit via Javascript nicht vorhandene Funktionen oder auch Werte zu ergänzen. In deinem Fall die gewünschte Spreizung:

Bitte in der Objekte Ansicht auf dem HEIZEN Knoten mit den Vorlauf und Rücklauftemperaturen mit dem Plus Button (oben) einen neuen State mit dem Namen SPREIZUNG und der Einheit °C anlegen.
Anschließend in der JavaScript Ansicht ein neues TypeScript anlegen mit folgenden Inhalt:


function update()
{
var volumenstrom = getState("stiebel-isg.0.Info.ANLAGE.HEIZEN.VOLUMENSTROM").val;

if (volumenstrom <= 0)
{ // pump not active, no valid temperatures
setState('stiebel-isg.0.Info.ANLAGE.HEIZEN.SPREIZUNG',0, true);
}
else
{
var s = getState("stiebel-isg.0.Info.ANLAGE.HEIZEN.VORLAUFTEMPERATUR").val -
getState("stiebel-isg.0.Info.ANLAGE.HEIZEN.RÜCKLAUFTEMPERATUR").val;

setState('stiebel-isg.0.Info.ANLAGE.HEIZEN.SPREIZUNG', s, true);
}
}

on ({id : "stiebel-isg.0.Info.ANLAGE.HEIZEN.RÜCKLAUFTEMPERATUR", change: "any"}, function(obj)
{
update();
});
on ({id : "stiebel-isg.0.Info.ANLAGE.HEIZEN.VORLAUFTEMPERATUR", change: "any"}, function(obj)
{
update();
});


// ---- das hier nicht mehr :)
Diese Script liest die Temperaturen ein und bildet die Differenz = Spreizung. Damit kannst du dann z.B. in flot das entsprechend ausgeben.

Viel Spass

Schöne Weihnachten

CodeMasteR
Wir bauten ein VIO 4xx im schönen Bayern

26.11.2015 Werkvertrag
25.04 Ausräumung Rücktrittsrecht
28/29.11 Bemusterung
01.02 Bodenplatte
09.03 Hausstellung
31.03 Estrich
01.06 Hausübergabe
21.06 eingezogen

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Mo 17. Dez 2018, 21:15

https://pastebin.com/cBa0rbYv

bitteschön. Ich wünsche gutes gelingen :-D
@Dr. Bob: Vielen Dank dafür! :-)
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Mo 17. Dez 2018, 21:23

Hallo CodeMasterR,

den verfügbaren Adapter habe ich bereits am laufen. Und der zeichnet auch fleißig auf (abgesehen von gelegentlichen Abbrüchen des admin.0). Von daher würde ich den natürlich auch weiterhin benutzen wollen.
Die Möglichkeit, den bestehenden Adapter um ein JavaScript zu erweitern klingt sehr gut. Ich hatte zwar mal Grundlagen der Programmierung an der Uni, aber mehr als hello world ist da nicht hängen geblieben. Deinen Codevorschlag kann ich dennoch recht gut lesen und interpretieren.
Eine Frage dazu hätte ich noch, bevor ich es einfach mal ausprobieren werde: Aktuell zeichne ich mit History Werte bei jeder Änderung der VL- bzw. RL-Temp auf. Woher weißt denn die Variable

Code: Alles auswählen

var s 
welche Temperaturen sie benutzen muss. Es ist ja nicht garantiert, dass zu einen gegebenen timestamp der VL-Temp auch eine RL-Temp vorliegt.
Das macht ja dann nur Sinn, wenn ich das Logging auf Intervalle einstelle.

Nochmals vielen Danke und ebenfalls Frohe Weihnachten!
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

CodeMasteR
Geselle
Beiträge: 139
Registriert: Mi 16. Nov 2016, 21:29

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von CodeMasteR » Mo 17. Dez 2018, 21:57

Hallo SaschaS,

ioBroker ist intern eine recht einfache Datenbank von Schlüssel-Werte Paare z.B.

Schlüssel "stiebel-isg.0.Info.ANLAGE.HEIZEN.VORLAUFTEMPERATUR" und ein Wert z.B. 32,4

Woher die Werte kommen oder was man damit tut, ist ioBroker eigentlich egal, es vermittelt nur zwischen den einzelnen Adaptern, welche Werte erstellen, schreiben und auch lesen können.

Der ISG Adapter fragt periodisch die ISG Seiten ab und speichert die gefundenen Werte. Damit stehen Sie zur Verfügung. Wie alt oder neu diese sind, ist erstmal nebensächlich. Das geniale ist nun, dass man selbst Code schreiben kann, der auf die Werte reagieren kann und auch eigene Werte setzen kann.

Das obige Script reagiert auf Änderungen der beiden Werte (durch die jeweiligen Schlüssel definiert) in Form der "on" Funktion und ruft bei Änderung die update Funktion auf, welche via Funktion "getState("key")" den aktuellen Wert ermittelt und damit die Spreizung berechnet. Anschließend in einen eigenen State (das Schlüssel-Werte Paar) schreibt.

Da das ISG Script sowohl Vorlauf als auch Rücklauf quasi in einem Rutsch schreibt (steht auf der ISG auf einer Seite) sind in ioBroker somit auch immer beide Werte vorhanden und somit kann die Spreizung ermittelt werden.

Ich hoffe das war verständlich :)

Ansonsten kann ich auch das ioBroker Forum empfehlen bzw. die Doku auf GitHub:

https://github.com/ioBroker/ioBroker.ja ... ascript.md
Wir bauten ein VIO 4xx im schönen Bayern

26.11.2015 Werkvertrag
25.04 Ausräumung Rücktrittsrecht
28/29.11 Bemusterung
01.02 Bodenplatte
09.03 Hausstellung
31.03 Estrich
01.06 Hausübergabe
21.06 eingezogen

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Di 18. Dez 2018, 17:53

Hallo @CodeMasterR,

ich würde gerne noch einmal deine Hilfe beanspruchen. Deine Anleitung habe ich befolgt, allerdings werden noch keine Werte für Spreizung geschrieben:
Hier einmal der IST-Zustand. Vielleicht fällt dir (oder den anderen etwas auf):
Bildschirmfoto 2018-12-18 um 16.43.26.png
In Objekte "Spreizung" angelegt
Bildschirmfoto 2018-12-18 um 16.45.17.png
In Skripte neues Skript angelegt
Wichtig: Hier habe ich im Gegensatz zu deinem Code die Objektbezeichnungen angepasst.
Bei dir: stiebel-isg.0.Info.ANLAGE.HEIZEN.VOLUMENSTROM
Bei mir: stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VOLUMENSTROM

Da aber für stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG kein Wert geschrieben wird, habe ich eine zweite "einfachere Funktion" geschrieben (in der Hoffnung, dass die überhaupt stimmig ist). Aber auch hier kommt kein Wert bei der Spreizung an.
Bildschirmfoto 2018-12-18 um 16.48.26.png
Einfache Funktion SetzeSpreizung
Die Ausgaben aus dem Log machen mich auch nicht schlauer...
Bildschirmfoto 2018-12-18 um 16.49.32.png
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Di 18. Dez 2018, 17:59

Nachtrag:
Wenn ich nur
Bildschirmfoto 2018-12-18 um 16.58.15.png
ausführe, dann wird die Spreizung geändert. Das ja schon einmal positiv. Aber mit einer function funktioniert es noch nicht
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Di 18. Dez 2018, 18:14

Noch ein Nachtrag:
Wenn ich den Befehl aus dem vorherigen Post händisch ausführen, dann erhält das Objekt den Wert 5. Soweit so gut.
Lass ich dann noch das untenstehende Skript laufen, dann erhalte ich weder die Werte 55 noch 66 für die Spreizung, sondern er schreibt beim nächsten Update eine 0 in den Wert hinein. Wo kommt denn jetzt die 0 her? :-D

function update() {
var volumenstrom = getState("stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VOLUMENSTROM").val;

if (volumenstrom <= 0) { // pump not active, no valid temperatures
setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG',55, true);
}
else
{
var s = getState("stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP").val -
getState("stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.RÜCKLAUFTEMP").val;

setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG',66, true);
}
};

on ({id : "stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.RÜCKLAUFTEMP", change: "any"}, function(obj)
{
update();
});
on ({id : "stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP", change: "any"}, function(obj)
{
update();
});
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Di 18. Dez 2018, 19:23

Und noch einmal ich. Aber diesmal mit der Erkenntnis, das ich das Mysterium dann doch noch selbst mit Hilfe von https://github.com/ioBroker/ioBroker.ja ... d#getstate lösen konnte.

Zum einen müssen bei getState die "..." durch '...' ersetzt werden. Und das zweite Phänomen war die geschrieben 0. Aber zum aktuellen Zeitpunkt war die RL-Temp minimal größer als die VL-Temp. Negative Werte gibt die Funktion offenbar nicht her. Habs aber mit anderen Parametern testen können und sollte nun auch laufen, sobald die VL-Temp > RL-Temp ist.

function update() {
var volumenstrom = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VOLUMENSTROM').val;

if (volumenstrom <= 0) { // pump not active, no valid temperatures
setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG',0,true);
}
else
{
var s = getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP').val -
getState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.RÜCKLAUFTEMP').val;

setState('stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.SPREIZUNG',s,true);
}
};

on ({id : "stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.RÜCKLAUFTEMP", change: "any"}, function(obj)
{
update();
});
on ({id : "stiebel-isg.0.Info.IST_SOLLWERTE.HEIZUNG.VORLAUFTEMP", change: "any"}, function(obj)
{
update();
});
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

CodeMasteR
Geselle
Beiträge: 139
Registriert: Mi 16. Nov 2016, 21:29

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von CodeMasteR » Di 18. Dez 2018, 23:17

Hallo SaschaS,

etwas merkwürdig warum die Schlüssel bei dir eine andere Struktur aufweisen aber das mag auch mit der ISG Version zu tun haben. Anpassen und fertig, perfekt. Negativ liefert die Funktion schon, aber ich vermute der State SPREIZUNG mag das (noch) nicht. Bei jedem State kann mit dem Button "Stift" nachjustiert werden. Da dürfte als Minimalwert 0 drin stehen, das bitte auf sagen wir -100 ändern. Anschließend kann der State auch kleiner 0 sein.
Wir bauten ein VIO 4xx im schönen Bayern

26.11.2015 Werkvertrag
25.04 Ausräumung Rücktrittsrecht
28/29.11 Bemusterung
01.02 Bodenplatte
09.03 Hausstellung
31.03 Estrich
01.06 Hausübergabe
21.06 eingezogen

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Do 20. Dez 2018, 10:38

Hallo CodeMasterR,
Bei jedem State kann mit dem Button "Stift" nachjustiert werden. Da dürfte als Minimalwert 0 drin stehen, das bitte auf sagen wir -100 ändern. Anschließend kann der State auch kleiner 0 sein.
Manchmal kann es so einfach sein... :D Danke :-)

Ich habe die Möglichkeit neue Werte aufzuzeichnen direkt weiterverwendet um auch noch die oberen und unteren Hysteresewerte zu loggen. Das klappt aber nur bedingt. Die Objekte für Hysteresewerte sind zwar auch als Zahl angelegt, allerdings werden die Werte für Hysteresen im Format "2,0 K" gespeichert. Der Value ist dann ebenfalls "2,0" (Komma). Die ganzen Temperaturwerte werden als "28.7" (Punkt) gespeichert. Addiert man nun Temperatur + Hysterese, dann wird 28.72,0 protokolliert. :joke
Gibts ne einfache Möglichkeit mit Bordmitteln das Dezimaltrenner-Problem zu umgehen?
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

CodeMasteR
Geselle
Beiträge: 139
Registriert: Mi 16. Nov 2016, 21:29

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von CodeMasteR » Fr 21. Dez 2018, 00:29

Hallo SaschaS,

probier mal bitte die Funktion parseFloat bei allen States, welche ein Komma anstelle dem Punkt haben.

parseFloat( getState(....HYSTERESE KEY....) )
Wir bauten ein VIO 4xx im schönen Bayern

26.11.2015 Werkvertrag
25.04 Ausräumung Rücktrittsrecht
28/29.11 Bemusterung
01.02 Bodenplatte
09.03 Hausstellung
31.03 Estrich
01.06 Hausübergabe
21.06 eingezogen

SaschaS
Azubi
Beiträge: 72
Registriert: Mo 5. Feb 2018, 17:33

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von SaschaS » Do 3. Jan 2019, 19:45

Hallo SaschaS,
probier mal bitte die Funktion parseFloat bei allen States, welche ein Komma anstelle dem Punkt haben.
parseFloat( getState(....HYSTERESE KEY....) )
Hallo CodeMasterR,
zunächst noch ein frohes neues Jahr!
Danke für den parseFloat-Befehl. Funktioniert :-)
Frei Planung mit Windfang und Keller im Enzkreis
175m2 Wohnfläche (beheizt) + 60m2 Keller (unbeheizt)
LWZ 304 Trend, ISG, PV-Anlage, Sunny Home Manager

Benutzeravatar
Jens.Little
Ingenieur
Beiträge: 260
Registriert: Fr 21. Jul 2017, 11:47
Wohnort: Pohlheim / Holzheim
Kontaktdaten:

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von Jens.Little » Mi 17. Apr 2019, 15:43

Moin Zusammen,

egal ob ISG web oder ISG plus, beide müssen via RJ45 verkabelt werden, sprich es gibt keine WLAN Funktionalität, korrekt?
Kann Jemand kurz und knapp die Unterschiede und grobe Preise beider Lösungen nennen?

Besten Dank vorab und Gruss Jens
08-07-2017: Werkvertrag
24-11-2017: Finanzierungszusage
24-11-2017: Vorbehalt ausgeräumt
24-11-2017: Notartermin
20-02-2018: Planungsgespräch
12-06-2018: Vorabzug
09-08-2018: Baugenehmigung
10-10-2018: Bemusterung

BigNose82
-Moderator-
Beiträge: 3823
Registriert: Fr 31. Jul 2015, 17:40
Wohnort: Arnsberg

Re: Auslesen und Steuerung LWZ mit ioBroker

Beitrag von BigNose82 » Di 23. Apr 2019, 05:49

Kein WLAN, korrekt.
ISG plus hat Sonderfunktionen zum PV-Management.
Freie Planung mit Keller auf Basis irgendeines Medleys
167 m², WiGa, 2,15 m Kniestock und Garagen im Keller
LWZ 304 Trend, nichts solares und kein Ofen
Automatisiert mit z-wave und dem HC2
Unsere Grundrisse und andere Impressionen (Update 9.9.17)

Antworten