-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verbindung über Netzwerk #597
Comments
Hallo Wolfgang, zuerst mal vielen herzlichen Dank für dein Lob und natürlich auch die "coffees" :-) Nö, dein beschriebener Eintrag ist eigentlich schon hier richtig im htheatpump Modul. Zu deinen Fragen: Werd ich mir mal anschauen! LG Daniel. |
Hallo Daniel, vielen Dank für deine schnelle Anwort. Das wäre natürlich super wenn man das auch über eine TCP Verbindung machen könnte. Da bin ich aber auf dich angewiesen, da ich in der Programmierung nicht wirklich drin stecke. Vielleicht findest du ja doch man etwas Zeit - wäre dir jedenfalls sehr dankbar. Ich wünsche eine schöne Zeit. |
Hallo Wolfgang, ich hab dir jetzt mal einen Prototyp für die Kommunikation zur Wärmepumpe per TCP-Verbindung gebaut. Auf Basis der letzten Release v1.3.2 hab ich einen neuen Branch erstellt: Dieser arbeitet jetzt mittels Socket-Verbindung, Hostname und Port sind dabei als String in folgender Form beim Init anzugeben:
Zum Übernehmen der Anpassungen am einfachsten in deiner Installation folgende beide Dateien
ersetzen und beim Aufruf der HtREST App im Service-File
LG Daniel. |
@innriver Bitte bei Gelegenheit mal testen ;-) |
@dstrigl Hallo Daniel, vielen Dank für Deine Arbeit. Ich habe heute mal getestet - und es läuft! Beim Start von HtRest wird sofort eine Verbindung zum Moxa hergestellt. Mit iobroker kann ich dann über ein java-script und mit http://IP-Adresse:8777/api/v1/param/ die Ausgabe als JSON weiter verarbeiten. Frage jetzt mal alle 30 Sekunden ab, dann bleibt die Verbindung offen. Im Moxa ist 60000ms Inactivity time eingestellt. Wenn dann keine Abfrage mehr kommt wird die Verbindung vom Modem getrennt. Ich bin mir aber nicht sicher, ob das ein sauberes logout ist. Bei einer erneuten Abfrage wird die Verbindung wieder hergestellt und Daten kommen an. Bei der Statusabfrage vom htrest.service ist dann aber eine Warnung vorhanden: LG Wolfgang |
Vielen Dank für das neue feature @dstrigl, das kann ich auch gut gebrauchen weil ich ebenfalls noch homeControl im Einsatz habe. Muss aber auf den nächsten Winter warten da meine WP schon im Sommerurlaub ist (für WW habe ich eine andere). |
@chrisch80 Hallo, bei mir läuft HomeControl unter Win10. Ich habe aber schon vor 10 Jahren, damals noch unter Win7 als hc nach einem Frameworks-Update nicht mehr lief, über direkten Kontakt mit Heliotherm eine neue Version erhalten. Die läuft bis heute auch unter Windows 10/64bit. Zu Win11 kann ich nicht sagen, da mein Rechner nicht den Anforderungen entspricht. Ich verwende hc auch nur noch ganz selten. WebControl funktioniert ja auch schon lange nicht mehr. Zur Zeit konnte ich die wichtigsten Daten mit einem leicht abgeänderten Python-Programm hier von github (Suchfunktion Heliotherm) auslesen und mit iobroker Parsen. Falls das Moxa Modem mal defekt sein sollte würde ich sicher dann auch direkt auf die serielle Schnittstelle gehen, aber auch nur lesend. Größere Sachen verstellen macht man ja doch dann am Gerät direkt bzw. sind nach jetzt im 13. Jahr Betrieb auch nicht mehr notwendig. LG Wolfgang |
@dstrigl Hallo Daniel, ich habe heute mal etwas getestet und dabei ist mir folgendes aufgefallen: LG Wolfgang |
@innriver Hallo Wolfgang, verstehe ich jetzt leider nicht ganz, was da abläuft. Kannst du es mir nochmal etwas erklären? Von welcher "anderen" Verbindung spricht du? |
@dstrigl Hallo Daniel, Nachtrag: LG Wolfgang |
@innriver Hallo Wolfgang, danke für deine Erläuterung. Jetzt - glaub ich mal - hab ich es verstanden ;-) PS: Und vielen lieben Dank für die "Coffees" :-) LG Daniel |
@dstrigl Hallo Daniel, vielen Dank. wenn es was zum testen gibt melde dich bitte. LG Wolfgang |
@innriver Hallo Wolfgang! Hatte wohl einen kleinen Denkfehler im Bei jedem Zugriff per Probier also bitte mal die folgende Zeile aus dem File
Damit sollte es - hoffentlich - gehen! LG Daniel. |
@dstrigl Hallo Daniel, vielen Dank! Habe jetzt folgenden Test gemacht: mit HomeControl eine Verbindung zur Wärmepumpe aufgebaut - Modem zeigt Verbindung an - HtRest-service gestartet - ein paar Sekunden gewartet - HomeControl beendet - diese Verbindung wird sofort geschlossen - jetzt verbindet sich HtRest mit der Wärmepumpe und wird auch angezeigt - setze im Browser http://192.168.2.xx:8777/api/v1/param/ ab - Datenpunkte werden abgerufen und angezeigt - HtRest-Server-Verbindung bleibt offen und wird nach 60 Sekunden vom Modem geschlossen (Timeout im Modem konfiguriert) - neuer Aufruf im Browser - Verbindung wird wieder geöffnet und bleibt nach Eingang der Daten wieder eine Minute offen. PS: Modem läuft im TCP-Server Modus. Ich kann das Modem umstellen auf Ethernet-Modem. Hier funktioniert der Start von HtRest bei gleichen Bedingungen wie oben auch einwandfrei nur bleibt jetzt die HtRest Verbindung, wenn einmal aufgebaut ständig bestehen. Wenn das so richtig ist kann ich auf jeden Fall damit leben! Habe aber noch nicht im Dauerbetrieb getestet weil ich die Datenpunkte und die Abfrage dazu erst in iobroker erstellen muss. Die utils.py sieht bei mir an der entsprechenden Stelle etwas anders aus: Einen schönen Feiertag und liebe Grüße Wolfgang |
@innriver Hallo Wolfgang! Zuerst mal vielen lieben Dank für deine Tests und die Ergebnisse. Und hier die gute Nachricht: Habe das eigentliche Problem zu deinem "connection not established" gefunden! War hier leider etwas blind und habe erst jetzt gesehen, dass ich in den ganzen Hab das jetzt mal in dem Branch socket-connection von Zu deiner Verständnisfrage "sollte nicht HtRest nach der Browserabfrage die Verbindung selbstständig schließen?": Ich hab dir das jetzt mal in einem eigenen Branch der Hier sind die beiden Files Überall wo in den obigen beiden Files ein Kommentar
Die Anpassungen von mir in den beiden Files siehst du auch schön hier: Changes Das mit dem "... utils.py sieht bei mir an der entsprechenden Stelle etwas anders aus" ist nur, weil ich das Ganze in einer neueren Version umgesetzt und rauskopiert habe, wo ich type-Hints verwendet habe. Kannst du derweilen getrost ignorieren. LG Daniel. |
@dstrigl Hallo Daniel, vielen vielen lieben Dank! Jetzt sieht alles sehr gut aus. Ich habe alle Möglichkeiten durchgespielt und es funktioniert nach meiner Ansicht richtig. Auch das automatische Schließen und wieder Öffnen funktioniert. Soweit ich das sehen konnte kommen auch alle Datenpunkte die ich in in der htparms.csv konfiguriert habe richtig zurück. Nur wenn ich die Softwareversion mit aufnehme wird eine Warnung ausgeworfen : "parameter name doesn't match with 'Softwareversion' ['2.06K']" brauch ich aber nicht. LG Wolfgang |
@innriver Hallo Wolfgang,
gern geschehen! Freut mich, wenn es jetzt funktioniert :-)
Das mit der Softwareversion ist etwas speziell, weshalb ich es im default-CSV auch auskommentiert habe: Die Softwareversion, welche unter dem Datenpunkt SP,NR=9 zu finden ist hat nämlich im Rückgabefeld NAME die eigentliche Versionsnummer und im Rückgabefeld VAL eine numerische Nummer (was auch immer genau, vielleicht Build-Nummer oder so) stehen:
Sprich unter NAME ist bei jeder WP je nach installierter Version ein anderer Text zu finden.
Ich hab das jetzt mal im LG Daniel. |
@dstrigl Hallo Daniel,
Ich bin zur Zeit mehr als zufrieden mit dem wie es jetzt ist. Ich habe ja nie damit gerechnet so schnell eine lauffähige Version mit socket-connection zu erhalten. Ich kann dir nicht genug dafür danken. Werde es in den nächsten Wochen dann in mein Produktiv-System einbauen. Dann wird auch wieder der "Kaffeedurst" gestillt werden. PS: ein Problem hab ich noch: Ich habe heute eine Neuinstallation auf einen anderen PI gemacht. Beim Start kommt: (htrest) pi@raspberry07:~ $ pip show werkzeug (htrest) pi@raspberry07:~ $ pip show flask Wenn ich Werkzeug 2.0.3 installiere funktioniert alles. Flask auf 3.0.3 hochziehen bringt auch nichts - htrest will 2.0.3. LG Wolfgang |
@innriver Hallo Wolfgang! Freut mich, wenn du mehr als zufrieden bist! Bin echt oft überwältigt wie viele Leute inzwischen auf meine Module zurückgreifen. Das mit dem ImportError ist ein bekannten Problem im Flask Modul mit einer inkorrekten Abhängigkeitsdefinition:
Da hilft aktuell nur, Werkzeug auf die funktionierende Version genau fix festzupinnen. Das sollte auch noch kompatibel sein:
LG Daniel. |
Hallo Daniel,
vielen Dank für das tolle Tool. Es funktioniert bei mir mit meiner 12 Jahre alten Heliotherm HP12S16W-S-M-WEB einwandfrei und ich bringe auch alle Datenpunkte nach iobroker. Das Programm läuft auf einem Raspberry 3b+ unter Bookworm und einer virtuellen Python 3.11.2 Umgebung. Da ich das System aus Sicherheitsgründen nur lesend betreiben möchte und für die Einstellung weiterhin Homecontrol verwende und daher das Moxa Modem benötige verwende ich socat zum Erstellen einer virtuellen USB-Schnittstelle. Socat wird als Dienst gestartet. Allerdings wenn jetzt bestimmte Zeit kein Datenverkehr mehr besteht oder ein Fehler auftritt wird socat beendet und die virtuelle Schnittstelle ist weg. Leider liefert nach einem Neustart von socat, der im Dienst auch eingestellt ist, htrest keine Daten mehr. Ich muss nach dem Neustart von socat auch den htrest-Server neu starten.
Was kann ich tun damit htrest die neu gestartete Schnittstelle wieder findet bzw. erkennt wenn die Schnittstelle geschlossen ist und einen Neustart ausführt wenn USB wieder vorhanden ist. Oder besteht die Möglichkeit htrest direkt über TCP-IP zu betreiben.
Vielen Dank und liebe Grüße
Wolfgang
Hab fürs falsche Programm gepostet 😁 wollte htREST. Das Problem ist aber auch hier vorhanden.
Das issue kann aber hier geschlossen oder gelöscht werden.
Ich habe es für htREST neu erstellt
The text was updated successfully, but these errors were encountered: