NEWS
Test Adapter luxtronik2 v0.4.x
-
@unclesam said in Test Adapter luxtronik2 v0.2.x:
@lessthanmore sagte in Test Adapter luxtronik2 v0.2.x:
Hab jetzt mal den Lux-Port entfernt und bislang sieht es sauber aus. Keine neuen Logs und die Leistung ist weiterhin da.
Ja, das hätte ich dir jetzt auch vorgeschlagen. Wenn du den Port entfernst, wird er diese Daten nicht mehr abfragen. Es kann sein, dass bei dir der Luxtronik Port anders ist als hier eingestellt (z.B. 8888). Dummerweise fällt mir gerade keine einfache Art ein, das rauszufinden.
Beim Port 8888 geht er direkt auf die Bretter:
(23206) Luxtronik read error, will retry later: Error: connect ECONNREFUSED xxxx:8888
-
@lessthanmore Dumme Frage (und auch etwas eine gefährliche): hast du mal die WP neu gestartet? Eventuell hängt bei dir die Applikation, die Port 8889 bedienen sollte. Und wenn das auch nicht hilft: dann halt wirklich den Port ausschalten. Sollte ja dann zumindest der WebSocket Teil einwandfrei gehen. Einige Einstellungen wirst du halt nicht machen können.
-
@unclesam said in Test Adapter luxtronik2 v0.2.x:
@lessthanmore Dumme Frage (und auch etwas eine gefährliche): hast du mal die WP neu gestartet? Eventuell hängt bei dir die Applikation, die Port 8889 bedienen sollte. Und wenn das auch nicht hilft: dann halt wirklich den Port ausschalten. Sollte ja dann zumindest der WebSocket Teil einwandfrei gehen. Einige Einstellungen wirst du halt nicht machen können.
Hab sie gerade neugestartet, gleiches Ergebnis:
host.raspberrypi 2021-05-20 18:46:43.619 error instance system.adapter.luxtronik2.0 terminated with code 6 (UNCAUGHT_EXCEPTION) luxtronik2.0 2021-05-20 18:46:43.077 warn (4467) Terminated (UNCAUGHT_EXCEPTION): Without reason luxtronik2.0 2021-05-20 18:46:43.076 info (4467) terminating luxtronik2.0 2021-05-20 18:46:43.057 error (4467) Exception-Code: ERR_OUT_OF_RANGE: The value of "offset" is out of range. It must be >= 0 and <= 4. Received 8 luxtronik2.0 2021-05-20 18:46:43.057 error at TCP.onStreamRead (internal/stream_base_commons.js:188:23) luxtronik2.0 2021-05-20 18:46:43.057 error at Socket.Readable.push (_stream_readable.js:213:10) luxtronik2.0 2021-05-20 18:46:43.057 error at readableAddChunk (_stream_readable.js:272:9) luxtronik2.0 2021-05-20 18:46:43.057 error at addChunk (_stream_readable.js:297:12) luxtronik2.0 2021-05-20 18:46:43.057 error at Socket.emit (events.js:314:20) luxtronik2.0 2021-05-20 18:46:43.057 error at Luxtronik.<anonymous> (/opt/iobroker/node_modules/luxtronik2/luxtronik.js:480:41) luxtronik2.0 2021-05-20 18:46:43.057 error at Buffer.readInt32BE (internal/buffer.js:478:5) luxtronik2.0 2021-05-20 18:46:43.057 error at boundsError (internal/buffer.js:82:9) luxtronik2.0 2021-05-20 18:46:43.057 error (4467) RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 4. Received 8 luxtronik2.0 2021-05-20 18:46:43.056 error (4467) uncaught exception: The value of "offset" is out of range. It must be >= 0 and <= 4. Received 8
Passt aber bei mir soweit. Da die WP eh nur bei Anforderung läuft, macht es bei mir keinen Sinn die Werte zu schreiben oder zu setzen. Will nur den Verbrauch im SHM 2.0 von SMA sehen und das funktioniert einwandfrei. Danke nochmal.
-
@unclesam Mal noch ein kleines Update.
Habe gerade rausgefunden, dass ich die Parameter lediglich über den luktronik Port schreiben kann. Das funktioniert auch ohne Probleme. Obwohl mein Log nun überläuft.
Alles sehr merkwürdig.
Evtl. ist die FW noch relevant: V3.82.5 (r3553). -
@lessthanmore da ich nicht weiß wie/ob man hier private Nachrichten schreiben kann:
ich habe das gleiche Setup: WP mit Luxtronik und eine PV mit SMA SHM 2.0 und nen SAE.
Ich war bisher immer der Meinung, dass ich die WP nur einbinden kann, wenn ich denn Zähler an die WP angebunden habe (also entweder über S0, Modbus oder wie auch immer). Ich verstehe daher nicht ganz wie du das mit diesem Adapter löst?
Ihren eigenen Stromverbrauch kennt die WP doch nicht und hat diesen daher auch nicht als Wert abgelegt? -
@unclesam kann ich die neue Version irgendwie drüber installieren? Oder geht nur alten Adapter löschen und dann neu installieren?
-
@chrid88 said in Test Adapter luxtronik2 v0.2.x:
@lessthanmore da ich nicht weiß wie/ob man hier private Nachrichten schreiben kann:
ich habe das gleiche Setup: WP mit Luxtronik und eine PV mit SMA SHM 2.0 und nen SAE.
Ich war bisher immer der Meinung, dass ich die WP nur einbinden kann, wenn ich denn Zähler an die WP angebunden habe (also entweder über S0, Modbus oder wie auch immer). Ich verstehe daher nicht ganz wie du das mit diesem Adapter löst?
Ihren eigenen Stromverbrauch kennt die WP doch nicht und hat diesen daher auch nicht als Wert abgelegt?So sieht es momentan bei mir aus:
Ich habe den Luxtronik Adapter mit zwei Instanzen laufen, einmal über den websocket und einmal über den luxtronik Port. Vom ersten lese ich und auf den zweiten schreibe, auch wenn der ständig neugestartet wird wegen Fehlern.
Die WP gibt mir die aktuelle Leistung (also Verbrauch) über den Parameter luxtronik2.0.Informationen.Anlagenstatus.Leistung-Ist aus.Zusätzlich habe ich den Adapter Smart Appliance Enabler laufen und bekomme somit die WP als Verbraucher im Sunny Home Manager 2.0 angezeigt.
Über SMA-EM bekomme ich die Werte vom SHM 2.0 in den ioBroker.Mit Blocky habe ich mir die drei folgenden Skripte erstellt:
Soll-Temp der WP rauf:
Sobald also WW angefordert wird (Soll-Wert - Hysterese; bei mir im Standard 48° - 6.0 K) und dementsprechend der Betriebszustand sich ändert (1. Instanz vom luxtronik Adapter), prüfe ich, ob die PV Einspeisung größer 2000 ist. Ich versuche dann den Wert der WP auf 62 zu schreiben. 12 Mal mit einer Verzögerung, da es teilweise so lange dauert, bis die Instanz am luxtronik Port neugestartet ist. 62, weil mein Ziel 60 sind. Über den Parameter luxtronik2.1.parameters.warmwater_temperature kann man ja eigentlich nur die Deckung einstellen.Soll-Temp wieder runter:
Ändert sich erneut der Betriebszustand (z. B. wenn die WP fertig mit WW ist), so prüfe ich, ob das WW über 54° liegt und wenn ja, setze ich die neue Soll-Temp auf 48°, also zurück auf meinen Standard.Prüfung:
Da natürlich die Sonne weiterscheinen kann, prüfe ich nochmal, sobald die Temp unter 55 fällt, sich also 60 - 6.0 K nähert - denn bei 54 würde die Pumpe ja erneut WW anfordern wenn nicht auf 48 gestellt - ob weiterhin genug Energie erzeugt wird. Wenn ja, setze ich den Wert erneut auf 62 (-2.0 K, wegen Deckung; zumindest glaube ich das irgendwie aus der Anleitung verstanden zu haben), so dass die Pumpe ab 54° wieder auf 62 bzw. 60 hochheizt.ABER, ich hab das vorgestern bzw. gestern erst alles eingerichtet und es sollte noch ausgiebig getestet werden.
Ich schaue mal, ob oder wie man private Nachricht schreib und schreibe dich an.
-
@unclesam Ist es eigentlich möglich den watchdog für den Luxtronik Port zu deaktivieren?
-
@lessthanmore danke für die ausführliche Rückmeldung. Die Regelung habe ich etwas simpler gelöst.
Das Leistung-ist Feld gibts leider bei meiner wp nicht.
Daher muss ich wohl dann doch über s0 gehen. -
@lessthanmore welche Version des Adapters hast du? Der Fehler sollte behoben sein.
-
@chrid88 Sollte wie bei jedem anderen Adapter auch gehen mit drüber installieren.
-
@unclesam Mal wieder ein kleines Update. Hatte den watchdog für den LuxPort deaktiviert, aber gesehen, dass der config.luxPort gar nicht gesetzt wird und es auch kein "Connected to" - Statement gibt.
Hab es nun wie folgt geändert:... createLuxtronikConnection(host, port) { if (!this.config.luxPort) } <-- Geändert return; } this.log.info(`Connecting to ${host}:${port}`); this.log.info(`Connected to ${host}:${port}`); <-- Hinzugefügt; sieht besser aus wenn auch nur als Info. Für alles andere reicht mein "Wissen" nicht -.- ...
Etwas weiter später ist mir aufgefallen, warum der Adapter ständig neustartet für den LuxPort.
Der Failcounter wird nicht zurückgesetzt.
Habe es wie folgt geändert:... requestAllContect() { this.wsFailCounter = 0; this.luxFailCounter = 0; <-- Hinzugefügt ...
Watchdog läuft nun für beide Ports, ich kann direkt auf den luxport schreiben bzw. auf dessen Parameter, da die Instanz nicht ständig neustartet. Läuft prima.
So sieht mein Log aus nach guten fünf Minuten:
luxtronik2.0 2021-05-23 20:54:30.653 info (14926) Connected to 10.0.1.23:8889 luxtronik2.0 2021-05-23 20:54:30.653 info (14926) Connecting to 10.0.1.23:8889 luxtronik2.0 2021-05-23 20:54:29.451 info (14926) Connected to ws://10.0.1.23:8214 luxtronik2.0 2021-05-23 20:54:29.440 info (14926) Connecting to ws://10.0.1.23:8214
Jetzt kann ich die Wiederholungen in Blocky endlich entfernen
Und nur noch eine Instanz aktiv.Wundert mich aber, warum ich der einzige bin, der die restarts hatte und Meldungen bekommen hat.
/edit: Gerade deine Frage gesehen. Adapterversion 0.2.0.
-
@chrid88 Darf ich fragen wie du die Regelung bei dir hast?
Habe eben nochmal getestet und gesehen, dass ich mit dem Warmwasser nicht höher als 59° komme, da vorher die max. Vorlauftemperatur von 66° erreicht wird.
Habe die WW-Temperatur jetzt bei 55° wenn die Sonne scheint. Sollte auch passen.
Welche Firmware hast du auf der WP (habe meine gerade eben auf den neusten Stand gebracht)?
Ich sehe bei mir die Leistung auch im Webinterface. -
@lessthanmore sagte in Test Adapter luxtronik2 v0.2.x:
@unclesam Mal wieder ein kleines Update. Hatte den watchdog für den LuxPort deaktiviert, aber gesehen, dass der config.luxPort gar nicht gesetzt wird
Was meinst du mit "gar nicht gesetzt wird"? Das ist die Konfigurationsvariable, die aus dem Admin-GUI kommt.
und es auch kein "Connected to" - Statement gibt.
Hab es nun wie folgt geändert:... createLuxtronikConnection(host, port) { if (!this.config.luxPort) } <-- Geändert return; } this.log.info(`Connecting to ${host}:${port}`); this.log.info(`Connected to ${host}:${port}`); <-- Hinzugefügt; sieht besser aus wenn auch nur als Info. Für alles andere reicht mein "Wissen" nicht -.- ...
Lustige Lösung: wenn die Verbindung nicht klappt, dann schreibe ich einfach mal ein Log, dann sieht es so aus, als würde die Verbindung klappen...
Etwas weiter später ist mir aufgefallen, warum der Adapter ständig neustartet für den LuxPort.
Der Failcounter wird nicht zurückgesetzt.
Habe es wie folgt geändert:... requestAllContect() { this.wsFailCounter = 0; this.luxFailCounter = 0; <-- Hinzugefügt ...
requestAllContent()
fragt nur die Daten über den WS-Port ab. Wenn ich da den Watchdog für den Luxtronik-Port zurücksetze, dann wird der natürlich nie zuschlagen. Aber dann müsste ich gar keinen Watchdog haben!Der
luxFailCounter
wird sehr wohl zurückgesetzt:
https://github.com/UncleSamSwiss/ioBroker.luxtronik2/blob/e4048aeec8e024ee47cb5b1a130ece3de2a9acd6/src/main.ts#L183Watchdog läuft nun für beide Ports, ich kann direkt auf den luxport schreiben bzw. auf dessen Parameter, da die Instanz nicht ständig neustartet. Läuft prima.
Nein, der Watchdog für den Luxtronik Port ist nun nicht mehr aktiv. Mag prima laufen, ist aber leider überhaupt nicht die Lösung.
So sieht mein Log aus nach guten fünf Minuten:
luxtronik2.0 2021-05-23 20:54:30.653 info (14926) Connected to 10.0.1.23:8889 luxtronik2.0 2021-05-23 20:54:30.653 info (14926) Connecting to 10.0.1.23:8889 luxtronik2.0 2021-05-23 20:54:29.451 info (14926) Connected to ws://10.0.1.23:8214 luxtronik2.0 2021-05-23 20:54:29.440 info (14926) Connecting to ws://10.0.1.23:8214
Jetzt kann ich die Wiederholungen in Blocky endlich entfernen
Und nur noch eine Instanz aktiv.Wundert mich aber, warum ich der einzige bin, der die restarts hatte und Meldungen bekommen hat.
Weil bei dir etwas nicht richtig funktioniert und du nun einfach den Watchdog unterdrückst. Bei dir gibt es ein Problem mit dem Luxtronik-Port und das muss gefixt werden, nicht einfach den Watchdog unterdrücken.
/edit: Gerade deine Frage gesehen. Adapterversion 0.2.0.
OK, danke.
-
@unclesam
Ich habe ja geschrieben, dass es nicht korrekt ist, aber für mich besser aussieht. Ich hatte kein Statement gefunden "connected to" falls die Verbindung zum luxPort steht. Habe ich die übersehen?
Beim Websocket kommt ja die Meldung nach der erfolgreichen Prüfung.
https://github.com/UncleSamSwiss/ioBroker.luxtronik2/blob/e4048aeec8e024ee47cb5b1a130ece3de2a9acd6/src/main.ts#L98Das mit dem Zurücksetzen des Failcounter hatte ich übersehen, sorry.
So ganz verstehe ich es nicht, da es jetzt bei mir einwandfrei läuft. Die Verbindung zum luxPort steht ja und ich kann problemlos darauf zugreifen.
Die Frage ist nur, warum die Instanz alle paar Sekunden neustartet weil der watchdog sagt, dass die Verbindung nach drei Versuchen nicht hergestellt werden konnte (obwohl sie aktiv ist).Hatte jetzt bei requestAllContent() den luxFailCounter wieder auskommentiert und direkt geht die Instanz wieder in den Fehler und startet alle paar Sekunden neu.
Eine Idee, wie ich rausfinden kann warum?
/edit: Softwarestand meiner WP V3.85.7 (r6978)
-
@lessthanmore Ich hab das ganze sehr simpel gelöst. Ich habe aber bei dem schwankenden Wetter im Mai gemerkt, dass ich dadurch auch fast 100 Verdichterimpulse im Monat mehr hatte als sonst. Daher habe ich (weil momentan keine Zeit zum Grübeln) das Abfrageintervall einfach auf alle 60min gelegt.
Psurplus_float ist der gleitende Mittelwert über die letzten 15min des PV Überschusses.
Der Rest sollte sich eigentlich so verstehen lassen
Softwarestand ist V3.85.0 (r5663)
@UncleSam drüber installieren hat geklappt! -
@chrid88 Vielen Dank.
Habe mein Skript in den letzten Tag auch vereinfacht bzw. auf ein Skript gekürzt.
Das mit den VD-Impulsen hat mich erst hierher gebracht, da unser Heizungsbauer die WP unsauber eingestellt hatte und wir nach nun fast 3 Jahren uns schon der 30.000er Marke an Impulsen nähern.
Deswegen hatte ich auch im Skript darauf geachtet. Ich prüfe ausschließlich wenn Warmwasser gemacht wird, ob die PV Leistung ausreicht und nur dann erhöhe ich; sprich wenn die WP eh schon dabei ist WW zu machen. Andernfalls ist die WP gerade fertig mit dem Standard-Warmwasser und bekommt dann vom Skript erneut eine neue Solltemperatur und fährt wieder an.
Über was liest du Float aus? Im SMA-EM Adapter finde ich den Wert nicht.
Lese bei mir mittlerweile den Wechselrichter direkt per Modbus aus und da auch nur die aktuelle Erzeugung unabhängig davon ob ich gerade etwas einspeise oder beziehe.
Als Ziel habe ich mir jetzt gesetzt dass die WP morgens beim WW und genug PV-Energie auf den erhöhten Wert geht und dort so lange bleibt bis die Energie nicht mehr ausreicht. -
Ich habe leider auch das Problem, dass der Watchdog in der v0.2 im Schnitt alle 5 Minuten den Adapter neu startet, da er 3x in Folge keine Antwort bekommen hat.
Am Netzwerk kann es nicht liegen. Habe sogar einen neuen Switch und ein neues CAT 6 Kabel eingebaut. Keine Änderung in der Häufigkeit der Neustarts.
Port 8889 stimmt auch laut Log.
Ich glaube nicht, dass der Watchdog erst dann zuschlägt, wenn sich die Verbindung zur Luxtronik komplett aufgehängt hat. Vor dem Einbau des Watchdog lief der Adapter in der Regel mehrere Wochen problemlos. Warum soll sich das mit Watchdog auf 5 Minuten reduzieren.
Vielleicht braucht die Luxtronik manchmal etwas länger bis eine Antwort kommt und der Watchdog interpretiert das als dauerhafte Unterbrechung und veranlasst einen Neustart des Adapters.
@UncleSam Vielleicht kannst du einen Parameter einbauen mit dem man den Timeout setzen kann und die Anzahl der missglückten Abfragen bevor der Watchdog einen Neustart auslöst.
Im Ergebnis ist es nat. besser, wenn der Adapter nicht alle paar Wochen komplett hängt, aber ein Adapter der alle 5 Minuten neu startet, füllt sich für mich auch nicht gut an.
-
Soeben habe ich Version 0.3.0 veröffentlicht. Sie hat zwar keine funktionale Änderungen, aber die neue Sentry Integration erlaubt mir, sehr schnell alle Details zu euren Fehlern zu sehen.
Wer also immer noch Verbindungsabbrüche und/oder Adapter-Neustarts sieht, bitte unbedingt die neuste Version installieren. Damit erhalte ich wertvolles Feedback, was schief gehen könnte.
Damit hoffe ich, bald einen offiziellen Release des Adapters zu machen und ihn auf den "Beta" Channel zu stellen.
-
@unclesam Vielen lieben Dank. Muss ich die Instanz neu installieren oder reicht ein Update des Adapters?