abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

CAN Bus, Home Automation E3 Generation lokal und kostenlos

hier noch mal mein Beitrag aus 'Internet der Dinge', dem Offenen Brief an Max Viessmann, als neuer Thread - Diskussionen, Fragen etc. bitte hier 🙂

 

Moin Freunde!

 

Da Viessmann zwar ein wunderschöne Schnittstelle (UDS, ISO-TP oder DoIP) eingebaut hat, das aber nur eingeschränkt und für eine 4-stellige Summe (per WAGO Gateway) zur Verfügung stellt, haben wir uns bekanntlich dran gemacht, das selber offen zu legen. 🙂

 

Stand der Dinge ist:

 

- Wir haben eine MQTT fähige Lösung zum Anschluss an den externen CAN Bus ("Stecker 91"), die es erlaubt, E3 Geräte (Wärmepumpen, Gasgeräte, (PV Speicher gerade in der Testphase, BSZ brauchen wir noch Kandidaten)) in Home Automation Systeme einzubinden. ioBroker, mosquitto, Home Assistant, Node-RED und so weiter also alles einfach machbar und bei uns schon im dauerhaften Einsatz.

 

- Das Ganze läuft lokal, also ohne irgendeine Hersteller oder sonstwelche Cloud, ohne Internet! Bei der CAN Bus Kopplung kann die gleichzeitige Verbindung mit dem Viessmann Server zwecks Wahrung der Gewährleistungs- und Garantieansprüche aufrechterhalten bleiben.

 

Eine Anbindung über den WLAN Access Point ist auch möglich, damit aber keine parallele Viesmann-Server-Verbindung mehr.

 

- Aktuell ist nur das Auslesen von Daten weitergehend erprobt. Bei den wichtigen Daten haben wir auch schon die Formate zur Interpretation geklärt, wir arbeiten an einer vollständigen Klärung.

 

Das Schreiben ist bei einfachen Daten wie z.B. Warmwasser-Solltemperatur und so auch schon erprobt.

 

- In nicht all zu ferner Zukunft wird es eine einfache Windows Oberfläche zum Setzen der bisher den 'Fachpartnern' mit entsprechendem kostenpflichtigen Account vorbehaltenen Einstellungen wie zum Beispiel den "Energiespareinstellungen" bei den Gasgeräten geben.

 

und last not least: das Ganze ist natürlich kostenfrei und open source! im Sinne eins besseren Miteinanders 😉

 

Der laufend aktualisiert werdende Stand der Linux Lösung ist auf

https://github.com/open3e/open3e

verfügbar. Einen guten 'Leitfaden' für den Einstieg hat @Hotzen-Plotz hier zur Verfügung gestellt:

https://github.com/open3e/open3e/discussions/5

Eine Sammlung von nützlichen Informationen hat @TSG initiert:

https://github.com/TheSmartGerman/open3e/wiki

(werden wir bald auch unter das open3e Projekt migrieren) 

 

beste Grüße!

HerrP_2-1692095743490.png

 

Phil

 

zur Beachtung: Der Zugriff auf das Zielgerät mittels dieser durch Viessmann nicht vorgesehenen Lösung zieht möglicherweise den Verlust von Gewährleistungs-/Garantieansprüchen nach sich und kann unter Umständen zu GEFAHREN FÜR LEIBLICHE UNVERSEHRTHEIT ODER SACHWERTE führen! Die Autoren schliessen jegliche Haftung aus.

 

Beispiele aktueller Home Assistant Integrationen von Wärmepumpen:

 

HerrP_3-1692095743607.jpeg

 

HerrP_3-1697543763132.png

Vitocal 250 Kältekreisübersicht: View und Installationsanleitung gibt's hier: https://github.com/MyHomeMyData/iob.vis.vitocal250.git

 
Jürgen hat auch noch weitere schöne Sachen abgeleitet.

Einen Adapter für ioBroker:

https://github.com/MyHomeMyData/ioBroker.e3oncan

und noch ein paar andre Sachen, die aber in dem Adapter integriert sind. Schaut einfach mal sein Repo an...

https://github.com/MyHomeMyData

 

ps. wer uns unterstützen will und kann ist herzlich willkommen!

 

pps. und wir freuen uns über jedes 'like' (👍) - damit zeigt ihr deutlich, dass ihr eine offene und lokale Kommunikation mit den 'One Base' Geräten eigentlich von Viessmann erwartet

1.023 ANTWORTEN 1.023

mal abwarten, wenn ich wirklich alles neu machen muss ist das sicher eine Option!

@Bu-Na  das sieht gut aus! VL Temp müsste glaubich 28,4°C sein?

 

jedenfalls sind Abfrage und Antwort und Flow Control da. Es liegt also an einer der benannten Libs

Der candump sieht eigentlich schon recht gut aus … 

LG Jörg
Haus Baujahr 1995, Heizkörper, VC 250-A AWO-E-AC 251.16
Defekt seit Februar 2022 - Reparatur geplant Oktober 2023

@JörgWende  erinnerst du, ob wir schon eine Lösung oder zumin Ansätze für das Timeout Problem hatten? oder weitere Erkenntnisse?

Leider nicht. Ich habe heute einfach mal den raspberry durchgestartet. Bei manchen hat auch der Abruf des Datenpunktes 256 geholfen.

 

 

LG Jörg
Haus Baujahr 1995, Heizkörper, VC 250-A AWO-E-AC 251.16
Defekt seit Februar 2022 - Reparatur geplant Oktober 2023

war das nicht nur wenn überhaupt keine Antwort kam? oh mann, gut dass wir jetzt etwas strukturierter arbeiten können... 😁

diese ganzen 'System-abhängigen Unzulänglichkeiten' sind äusserst ärgerlich. vielleicht sollten wir mal ein Image machen mit open3E für einen dedizierten 3er Raspi mit dediziertem CAN Adapter, was dann garantiert läuft... ein 3er Raspi kostet nicht viel und ist eigentlich meist verfügbar.

Oder einen Docker Container mit einem Setup so dass der CAN Adapter im Container sichtbar ist. Dann sollte es allerdings ein 4er Raspi sein. Lass uns das mal durchspielen.

LG Jörg
Haus Baujahr 1995, Heizkörper, VC 250-A AWO-E-AC 251.16
Defekt seit Februar 2022 - Reparatur geplant Oktober 2023

ich glaube ich habe mein Timeout Problem gelöst,

dachte ich zumindest, aber nach 3 Stunden wieder abbruch, Fehler siehe uam Ende!

 

liegt einfach an euner unsauberen Installation.
deshalb hab ich zuerst pipe deinstalliert

 

sudo apt --purge remove python3-pip

 

dann in das Verzeichnis /home/user/Download wechseln und die neueste Version von pip3 runter laden

sudo wget https://bootstrap.pypa.io/get-pip.py

jetzt habe ich nach dieser Anleitung, How to create a Python virtual environment on Ubuntu 20.04,
https://www.arubacloud.com/tutorial/how-to-create-a-python-virtual-environment-on-ubuntu.aspx

leicht abeändert und angepasst.
$ sudo apt-get install -y python3-venv

im Verzeichnis /home/user/
$ mkdir directory_env
$ cd directory_env
$ sudo python3 -m venv envi1

$ source envi1 /bin/activate # das hat bei mir nicht funktioniert !

dann habe ich in Verzeichnis /home/user/Download mit folgendem Befehl Pip3 installiert.


sudo /home/user/directory_env/envi1/bin/python3 get-pip.py

 

sollte alles ohne Fehlermedung funktionieren!

danach ins Verzeichnis /home/user/open3e-master

sudo /home/user/directory_env/envi1/bin/pip3 install -r requirements.txt

auch wieder ohne Fehlermeldung!

jetzt kann man open3e starten, aber wieder mit der Pfadangabe von python-virtual-environment-on-ubuntu
sudo /home/user/directory_env/envi1/bin/python3 Open3Eclient.py -d 192.168.0.1 -dev vdens -t 60 -r 271,274,284,318,331,364,365,396,424,545 -m 192.168.178.19:1883:vitodens_333_f -muser xxxxx -mpass yyyyy

 

bin jetzt nicht unbedingt der Linux Eperte, aber die lange Pfadangabe stört mich noch,
sollte auch noch machbar sein das man den Pfad irgend wo in eine Systemvariale schreibt?
muss ich noch mal googln!

 

nach 3 Stunden wieder Abbruch!
Meldung vom System,

2023-09-25 10:26:50 [ERROR] UdsClient: [TimeoutError] : ECU failed to respond in time
Traceback (most recent call last):
File "/home/walter/open3e-master/Open3Eclient.py", line 107, in <module>
response = client.read_data_by_identifier([did])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/udsoncan/client.py", line 174, in decorated
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/udsoncan/client.py", line 449, in read_data_by_identifier
response = self.send_request(req)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/udsoncan/client.py", line 2140, in send_request
self.conn.send(payload)
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/udsoncan/connections.py", line 65, in send
self.specific_send(payload)
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/doipclient/connectors.py", line 43, in specific_send
self._connection.send_diagnostic(bytearray(payload))
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/doipclient/client.py", line 716, in send_diagnostic
result = self.read_doip(timeout=(timeout - ellapsed_time))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/walter/directory_env/envi1/lib/python3.11/site-packages/doipclient/client.py", line 440, in read_doip
raise TimeoutError("ECU failed to respond in time")
TimeoutError: ECU failed to respond in time

 

wird leider hier nicht so richtig im Format angezeigt

 

Hi,

leider stecke ich hier fest.

Ich habe im iobroker den MQTT Client installiert und folgendermassen konfiguriert (der Raspi hat die lesbare IP und auf diesem Raspi läuft iobroker und open3e).

 

client.jpg

Wenn ich jetzt auf der Befhelszeile folgenden Befehl eingebe:

python Open3Eclient.py -c can0 -dev vdens -r 268,271,274,284,331,360,364,526,545,2457 -m 192.168.178.60:1883:open3e -t 20

Dann bekomme ich nur Fehlertext rund um "connection refused".

Traceback (most recent call last):
File "/opt/git/open3e/Open3Eclient.py", line 99, in <module>
client_mqtt.connect(mqttParamas[0], int(mqttParamas[1]))
File "/home/[username]/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 914, in connect
return self.reconnect()
File "/home/[username]/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1044, in reconnect
sock = self._create_socket_connection()
File "/home/[username]/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
File "/usr/lib/python3.9/socket.py", line 843, in create_connection
raise err
File "/usr/lib/python3.9/socket.py", line 831, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

 

Das gleiche passiert, wenn ich als IP 127.0.0.1 eintrage.

Ich hatte es auch mit User und Passwort auf beiden Seiten versucht, klappt aber auch nicht.

 

Immer "connection refused".

 

Ideen?

 

 

 

 

 

Noch eine Beobachtung. Ich habe auch den Shelly-Adapter am laufen, der ebenfalls MQTT spricht mit den Steckdosen. Dort ist Port 1822 konfiguriert.

Wenn ich nun open3e in der Befehlszeile statt Port 1883 den Port 1822 nutzen lasse, dann klappt zwar letztendlich auch nichts und nebenbei funktioniert der Shelly Adapter nicht mehr, weil er von der Seite Mumpitz Daten bekommt, aber der Open3e Befehl auf der Befhelszeile läuft ohne Fehler durch (kein Connection refused). Dann schreibt das Ding einfach kurz irgendwas von read dids.

Ich verstehe nix.

da stimmt was mit deimem MQTT Broker nicht,

müsste man mal wissen was steht in den Config Dateien vom MQTT Broker?

bei mir sind einmal in /etc/mosquitto/mosquitti.conf

und in /etc/mosquitto/conf.d/xxxxxx.conf

xxxxxxx.conf den richtigen Namen muss man im Verzeichnis nachschauen.

 

ist der Broker mit oder ohne Passwort configuriert?
da gibt es aber im Netz gute Anleitungen.

bei mir ist in der xxxxxxx.conf zB. nur folgendes drin

 

listener 1883 0.0.0.0
password_file /etc/mosquitto/conf.d/010-access-list
allow_anonymous false

 

ist mit Passwort!

 

Inhalt von mosquitto.conf

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

 

habe zwar kein iobroker sondern openhab, aber bin der Meinung beim Mosquitto Broker ist das egal!

am besten kann man mit dem MQTT Explorer sehen ob da Daten ankommen,

der muss ja auch als Client eingerichtet sein, aufpassen das der Client Name ein ander ist, kann irgend ein x-beliebiger Name sein!

@Bu-Na Tipp: wenn du oben rechts auf den Pfeil im kleinen Kreis bei deinem Beitrag klickst, kannst du Beiträge bearbeiten und auch die vielen Doppelposts löschen. Das wird sonst unübersichtlich.

Gruß
Heizing

Danke Dir.

 

Tatsächlich habe ich es jetzt zum Laufen bekommen. 😀

 

Der Schlüssel war, dass ich einen anderen iobroker Adapter nutzen musste und in dem dann nicht "client" sondern "server/broker" als Modus wählen.

Dann war nix mehr mit connection refused und die Daten fliessen super.

Ich werde dazu noch mal einen längeren Text schreiben, welche Schritte ich so machen musste.

Schwere Geburt, aber jetzt ist ja gut. Puh.

 

Danke an alle hier.

 

@wamo   das mit dem timeout nach 3 Stunden ist (wieder) ärgerlich! um da weiter zu kommen, wäre der erste Schritt auf dem CAN Bus zu schauen, ob es wohmöglich wirklich auf der Ebene Probleme gibt oder es weiterhin dadrüber geschieht. Dazu müsstest du glaubich einen candum mitlaufen lassen (umgeleitet in eine Datei...)

 

vielen Dank für die Unterstützung von Hotzen-Plotz!

Gut das es jetzt funktioniert aber trotzdem sehr verwunderlich. Hattest du wirklich bereits einen Mqtt Broker? Ich schaue mir das mit dem anderen Connector heute Abend noch mal an.

LG Jörg
Haus Baujahr 1995, Heizkörper, VC 250-A AWO-E-AC 251.16
Defekt seit Februar 2022 - Reparatur geplant Oktober 2023

Was meinst Du genau mit "Hattest du wirklich bereits einen Mqtt Broker?"

Buchstäblich gedeutet, würde ich antworten "nein, habe ich nie behauptet". Ich wüsste nicht mal genau, was das ist oder macht.

Ich habe einen Raspi mit einem iobroker drauf, sonst nix. Und den bestücke ich halt mit Adaptern.

Soweit ich das aus den Posts ableiten kann, hat @wamo sowas. Ich aber nicht.

 

@HerrPIch habe nochmal eine Grundsatzfrage:

Wie es mir scheint, läuft das open3e zwar schön, nachdem ich den Befehl dazu gegeben habe und sendet daten per MQTT, aber das Kommandozeilenfenster hängt dann auch an der Stelle nach "Read dids and publish to mqtt..." fest. Mehr Befehle kann ich da nicht mehr eingeben.

Weiterhin scheint der Datenstrom sofort abzubrechen, sobald ich das Kommandozeilenfenster zumache.

Natürlich will ich, dass das Progrämmchen non-stop Daten sendet, auch wenn ich das Fenster auf dem PC zumache.

Kann es sein, dass ich dazu denselben Befehl mit "nohup" davor absende und dann kann ich das Fenster zumachen?

 

tante Google hat mir erzählt am Ende der Zeile ein & anhängen

 

@Hotzen-Plotz ich hoffe ich habe Dich nicht verstimmt. 
MQTT ist eine Client/Server Architektur - oder besser Client/Broker. Die Clients senden (publish) und empfangen (subscribe) Nachrichten über einen Server (Broker). Dass heißt ohne Server geht gar nichts (normalerweise). 
Auf Linux installiert man typischerweise einen Mosquitto Server mittels:

sudo apt install mosquitto mosquitto-clients

Danach wird er als Service konfiguriert und gestartet. Die Konfiguration steht in einer .conf Datei - dort werden die Netzwerkschnittstellen (0.0.0.0 default) und Ports (1883 default) angegeben.

Mehr Details sind hier:

https://www.elektronik-kompendium.de/sites/raspberry-pi/2709041.htm

Der von Dir im zweiten Versuch verwendete IoBroker Adapter installiert seinen eigenen Server (vermutlich auch Mosquitto). Also bist du jetzt auf der hellen Seite … 

Perfekt.

 

LG Jörg
Haus Baujahr 1995, Heizkörper, VC 250-A AWO-E-AC 251.16
Defekt seit Februar 2022 - Reparatur geplant Oktober 2023

@Hotzen-Plotz  >> Grundsatzfrage ... aber das Kommandozeilenfenster hängt dann auch an der Stelle ... fest. Mehr Befehle kann ich da nicht mehr eingeben.

 

das mit den angehängten "&" a la @wamo  sollte das Festhängen lösen, "nohub" wohl das Beenden bei Schliessen des Consolen-Fensters. Laut wiki wird es oft sogar zusammen angewandt.

$ nohup foo &
$ exit

keine Ahnung, ob mit "&" das "nohub" noch nötig ist. Hast du es schon mal probiert?

 

Nebenbei kannst du natürlich auch jederzeit ein weiteres Consolenfenster aufmachen, und dadrin das machen, was du willst.

 

Es gibt natürlich auch noch Möglichkeiten, das Programm (mit entspr. Parametern) gleich bei Gerätestart zu 'auto-starten'. Dazu können dir aber besser Leute was sagen, die das machen (wie gesagt - ich darf überhaupt nicht mitspielen mit meiner Opto-Link Therme...)

 

Grüsse!

Hallo HerrP,

Wie ist der aktuelle Stand für den PV-Wechselrichter VX3 mit Speicher standalone.

Ich stehe hierzu gerne zum Testen zur Verfügung.

Welche Hardware/Interface wird hierfür benötigt.

Beste Grüße

 

Nein, um Himmels Willen, Ihr seid super und ich danke Euch für die Hilfe. 👍

Ich wollte nur ausdrücken, dass ich so einen MQTT-Broker echt nicht (bewusst) installiert habe und das m.E. auch nie sagte. Sorry, wenn das doof rüberkam.

 

 

Hallo,

 

ich habe mal für mich alles so zusammengeschrieben, dass ich es irgendwann leicht wiederholen könnte. Für mich war das nämlich schon ein mittleres Abenteuer. 😁

Vielleicht hilft das ja auch wem anders mal, daher hier der Text als Bilderchen:

 

Seite 1Seite 1Seite 2Seite 2Seite 3Seite 3Seite 4Seite 4Seite 5Seite 5Seite 6Seite 6

Wenn man es mal gemacht hat und alles funktioniert, wirkt es simpel. Wer sowas zum ersten mal macht und von den Themen eigentlich so gar keinen Schimmer hat, wie ich, für den ist das echt eine Herausforderung.

 

Aber es hat sich gelohnt.

 

Grosses Lob an alle, die hier so selbstlos helfen und speziell an die Entwickler von Open3E.

 

Gut zusammengestellt! Danke. 
Kannst Du das Dokument auch in das GitHub Projekt einstellen - oder zur Verfügung stellen, dass es ein Admin in Deinem Namen einpflegen kann ?

ggf. könnte man es auch in ein online editierbares Format bringen 

 

LG Jörg
Haus Baujahr 1995, Heizkörper, VC 250-A AWO-E-AC 251.16
Defekt seit Februar 2022 - Reparatur geplant Oktober 2023
Top-Lösungsautoren