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

gutes Gelingen! 🙂

ps: hast du den AP Modus dazu überreden können, dauerhaft präsent zu sein?

Ja, es scheint, dass der 1x pro Stunde zugegriffen werden will. Nachdem ich einen entsprechenden Cronjob aufgesetzt hatte, blieb er aktiv. Im Moment schreibe ich sowieso alle 5 Minuten die Temperaturen raus, um ein Gefuehl zu bekommen, wie ich die minload setzen muss. Es ist naemlich tatsaechlich so, dass bei einer konstanten Vorlauftemperatur von 27 Grad die Raeume von 22 bis auf 20 Grad abkuehlen. Schalte ich hingegen die minload  adaptiv hoch, so dass der Vorlauf immer ≥ 30 Grad ist und aufgrund der Integrallogik abschnittsweise geheizt wird (ca. 1 Taktung pro Stunde), bleibt die Temperatur bei 22 erhalten. Das konnte ich an zwei windstillen, bedeckten Tagen mit mehreren Stunden konstanter AT nochmal gut vergleichen.

@FrankSteiner 

 

Dieses Kabel habe ich problemlos benutzen können, um damit ca. 5m zu überbrücken. Der CAN-Bus ist ziemlich störsicher.

 

Wenn ich die Störungen an meinem System (Homematic IP wird durch die USB2CAN-Konverter massiv gestört) beseitigt bekomme, werde ich mittels gemäß des Ratschlags von @Juergen-B  eines geschirmten CAT3-Kabel sowohl den externen als auch internen CAN-Bus über je zwei verdrillten Adern führen. Hierbei sind dann ca. 8m zu überwinden.

Dann probier's ich erstmal damit, denn das ist nicht ganz so fummelig wie die kleinen CAT-Adern. Mehr als 5 Meter brauch ich  in der Tat auch nicht. Vielen Dank!

oh mann, da schreibt man sich die Finger wund und macht schöne Zeichnungen und dann?!?

 

nimm das CAT Kabel und wickel den Draht am Ende um die Isolierung und klemm das unter die Schraubklemme! CAT Kabel hat verdrillte Paare, hat den nahezu optimalen Wellenwiderstand und hat super Schirmung und is vorhanden... Was will mann mehr??

 

Grüsse! 

zur Not nimm CAT Verlegekabel z.B. https://www.hb-digital.de/10m-Netzwerkkabel-CAT-7-LAN-Kabel-max-1000-MHz-S-FTP-AWG23-LSZH-orange wenn du unbedingt was kaufen willst. 0,56mm Drahtdurchmesser steht da - das wirst du doch handlen können?

das was ich oben mit der Einsteuung aufgemalt hatte gilt übrigens auch für die Aussendung - sowas wirkt immer in beide Richtungen...

Tschuldigung... 🙂

angenommen 😁

Hallöchen, ich muss nochmal mit einer Frage nerven.

Bisher habe ich den CAN-Bus nach jedem neustart immer manuell wieder angestartet mit

sudo ip link set can0 up type can bitrate 250000

Jetzt wollte ich es bequemer machen und bin den Befehlen im Wiki gefolgt: https://github.com/open3e/open3e/wiki/020-Inbetriebnahme-CAN-Adapter-am-Raspberry unter Canbus autoamtisch starten.

Leider geht jetzt gar nix mehr.

 

Einerseits bekomme ich nach einem neuen manuellen Aufruf den folgenden Fehler:

sudo ip link set can0 up type can bitrate 250000 ---> RTNETLINK answers: Device or resource busy

Da dachte ich mir, ok läuft also und will nur nicht doppelt laufen.

 

Aber auf python Open3Eclient.py -c can0 -dev vdens -r 268 -m 127.0.0.1:1883:open3e -t 20 -muser xxx:yyy gibts jetzt leider ein für mich kryptisches:
Traceback (most recent call last):
File "/opt/git/open3e/Open3Eclient.py", line 358, in <module>
showread(addr=ecudid[0], value=val, idstr=idstr, did=ecudid[1])
File "/opt/git/open3e/Open3Eclient.py", line 239, in showread
publishStr = args.mqttformatstring.format(
AttributeError: 'NoneType' object has no attribute 'format'

 

Und sudo systemctl status systemd-networkd wirft aus:

* systemd-networkd.service - Network Service
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2024-03-02 10:59:42 CET; 14min ago
TriggeredBy: * systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
Main PID: 195 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 8755)
CPU: 306ms
CGroup: /system.slice/systemd-networkd.service
`-195 /lib/systemd/systemd-networkd

Mr 02 10:59:42 iobrokerpi4b systemd-networkd[195]: Enumeration completed
Mr 02 10:59:42 iobrokerpi4b systemd[1]: Started Network Service.
Mr 02 10:59:44 iobrokerpi4b systemd-networkd[195]: can0: Link UP
Mr 02 10:59:44 iobrokerpi4b systemd-networkd[195]: can0: Gained carrier
Mr 02 10:59:44 iobrokerpi4b systemd-networkd[195]: can0: Cannot configure proxy NDP for the interface, ignoring: No such file or directory
Mr 02 10:59:50 iobrokerpi4b systemd-networkd[195]: wlan0: Link UP
Mr 02 10:59:53 iobrokerpi4b systemd-networkd[195]: eth0: Link UP
Mr 02 10:59:58 iobrokerpi4b systemd-networkd[195]: wlan0: Gained carrier
Mr 02 10:59:58 iobrokerpi4b systemd-networkd[195]: wlan0: Connected WiFi access point: Funknetz (00:00:00:00:00:00)
Mr 02 11:00:00 iobrokerpi4b systemd-networkd[195]: wlan0: Gained IPv6LL

 

ip -details link show can0 ergibt:
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE restart-ms 100
bitrate 250000 sample-point 0.875
tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
gs_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..1024 brp-inc 1
clock 48000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

 

Es wäre super, wenn mir jemand helfen könnte. Sei es auch nur mit einem weg, diesen Dienst mit Canbus wieder zu stoppen, so dass ich wenigstens wieder manuell arbeiten kann. Aktuell ist's halt ganz kaputt.

 

 

 

moin Hotzi!

 

ich hab zwar bekanntermassen auch keine Ahnung, aber ChatGPT sagt dazu

HerrP_0-1709376435634.png

wohlmöglich reicht das schon, ansonsten musst du wahrscheinlich die Änderungen in den Dateien auf gleichem Wege wieder rückgängig machen, wie du sie eingebaut hast.

 

Aber @Juergen-B  kennt sich viel besser aus und meldet sich vielleicht auch bald.

 

Grüsse!

Phil

STOP!! versuch's erstmal mit der Angabe eines mqtt format strings in dem open3eclient Aufruf. Es mäkelt ja, dass es den nicht findet ('NoneType' object)

-mfstr {didNumber:04d}_{didName}

 

eigentlich sollte es dafür einen default Wert haben, aber scheinbar hast du eine Version, wo dem nicht so ist. das gab's mal..

 

die Ausgabe von ip -details link show can0 sieht eigentlich sauber aus

Hm. Ich habe mit git pull mal ein update gezogen und auch nochmal die requirements installiert. Speziell letzteres hat anscheinend einiges neues nachgezogen.

Den Autostart habe ich mit disable ausgeschaltet.

Jetzt habe ich ein neues, noch weniger hilfreiches Fehlerbild.

Da ich sowieso am Ende iobroker nutze ist jetzt mein Gedanke, das ganze kaputte Gelumpe loszuwerden und nur den iobroker-Adapter (https://github.com/MyHomeMyData/ioBroker.e3oncan) auszuprobieren.

 

Fragen:

1) wie werde ich das ganze kaputte Zeugs am saubersten wieder los? Einfach Open3E Verzeichnis löschen und das wars?

2) Der iobroker Adapter verlangt als Voraussetzung "CAN adapter is up and visible in system, e.g. as "can0" (use ifconfig to check)." Wenn ich alles weglösche, wird das die Sichtbarkeit des Can0 verhindern?

3) Ich habe aktuell mal den iobroker Adapter gestartet. Da scheitert ein Scan daran, dass die folgende Fehlermeldung erscheint: "Could not connect to CAN-Adapter "vcan1" - err=Error while creating channel". Das gleiche mit vcan0.

 

ifconfig zeigt folgendes, was ich so interpretiere, dass eigentlich der can0 schon da ist:

can0: flags=193<UP,RUNNING,NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 4677 bytes 16583 (16.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

Aber ip -details link show can0 zeigt das Wort ERROR:
5: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE restart-ms 0
bitrate 250000 sample-point 0.875
tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
gs_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..1024 brp-inc 1
clock 48000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

 

Ich kenne mich mit Linux halt so gar nicht aus.

sorry, grad voll in Eile...

can state ERROR-ACTIVE heisst kein Fehler, alles gut

die Ausgaben sehen für mich alle gut aus, es wird halt nur empfangen und es antwortet nix.

 

den open3e Ordner brauchst du nicht mal löschen, einfach nur nix starten.

 

zum ioAdapter kann Jürgen was sagen, ich leider nicht

So, einen kleinen Erkenntnisfortschritt kann ich schon mal vermelden:

Im manuellen Kommandozeilengehampel bekomme ich jetzt einen Open3E Befehl erfolgreich durch, nachdem ich nochmal hier https://github.com/open3e/open3e/wiki/020-Inbetriebnahme-CAN-Adapter-am-Raspberry gestöbert habe und daraufhin zusätzlich zu

sudo ip link set can0 type can bitrate 250000
auch noch

sudo ifconfig can0 up
eingegeben habe. Letzteres habe ich vorher noch nie getan und es lief trotzdem. Potentiell ist das eine Neuerung.

Jetzt läuft die normale Version auf der Kommandozeile wieder, puh.

 

 

@Hotzen-PlotzIch war heute unterwegs, komme erst jetzt dazu, hier mal reinzuschauen.

 

Mein Eindruck ist, dass sieht bzgl. CAN alles gut aus.

Die Probleme bei open3e werden vermutlich durch mqtt verursacht.

Der ioBroker-Adapter meldet korrekt, dass er nicht zu vcan0 und vcan1 verbinden kann. Das bezeichnet üblicherweise virtuelle CAN-Busse, die man zu Testzwecken einrichtet. Du hast ja einen physischen CAN mit der Bezeichnung can0 - ohne "v" am Beginn.

 

Versuche mal, den Adapter auf can0 zu konfigurieren (als externen CAN Bus). Falls Dein CAN-Bus noch läuft, sollte das funktionieren.

Danke Dir. Jetzt ist der Adapter schon mal grün. Ich hatte die Bezeichnungen nicht angerührt, weil ich dachte, dass sind adapterinterne Bezeichnungen.

Freut mich, dass es funktioniert. Zumindest die Verbindung zum CAN-Bus sollte also ok sein. Ich hoffe, es kommen auch plausible Daten.

 

Das "vcan0" und "vcan1" ist dem Beta-Status des Adapters geschuldet. Ich möchte damit sicherstellen, dass der Anwender bewusst die Konfiguration zu seinem CAN herstellt. Am Anfang ist das aber schon alles recht verwirrend.

 

Da es bisher keinerlei Meldungen zu Stabilitätsproblemen mit dem Adapter gibt, werde ich das wahrscheinlich mit dem nächsten Update auf "can0" und "can1" umstellen.

 

Wenn Du Rückmeldungen oder Wünsche zum Adapter hast, gerne hier kommunizieren.

Vielen Dank, macht Sinn. Wie es ausschaut, landen defaultmäßig alle Datenpunkte mit dem Zustandstyp "json" in den Daten. Es scheint so, als ob ich die alle einzeln auf sowas wie "number" umstellen muss, u.a. weil sonst auch Folgeadapter wie der "Statistics" nichts damit anfangen können.

Anregung wäre, das Zahlen auch als Zahlen ankommen, weil das eine Menge Geklicke spart.

Ich stelle gerade fest, dass diese "Zahlen" aus dem Objektbaum im Bereich "Tree" anscheiend wirklich Strings oder sowas sind. Jedenfalls funktionieren sie in einigen Widgets gar nicht, vermutlich weil sie Zahlen erwarten.

Beispiele sind Aussentemperatur (274) und Wasserdruck. Die kann ich so aktuell gar nicht nutzen z.B. im "ListTemp"- und "ListPressure"-Widget. Gibts da eine Lösung für? Die Daten aus Open3E selbst wurden bisher stressfrei angezeigt.

Kurioserweise scheint eCharts mit der Temperatur umgehen zu können.

 

Ja, das sind Strings, da ja alle möglichen Infos angkommen können, nicht nur Zahlen.

 

Da ich mit vis und Widgets nicht (viel) arbeite, kann ich dazu nichts beitragen.

Was aber auf jeden Fall funktionieren sollte: Lege ein Alias für den Datenpunkt an und weise dem Alias den Typ "Zahl" zu. Das Alias sollte auch in den Widgets als Zahl angezeigt werden.

@Hotzen-Plotz 

>> ... auch noch  sudo ifconfig can0 up eingegeben habe. Letzteres habe ich vorher noch nie getan und es lief trotzdem.

 

ich vermute mal, dass du früher den Command aus der ReadMe benutzt hattest ?

sudo ip link set can0 up type can bitrate 250000

da ist das 'up' mit drin, der kombiniert beide Befehle...

 

Hallo,

ich würde eigentlich ganz gerne an die Gas-Jahresverbräuche, die von der Heizung mitgeschnitten werden, kommen.

e3oncan.0.HMUMASTER_0x680.tree.1343_GasConsumptionCentralHeatingYearMatrix

e3oncan.0.HMUMASTER_0x680.tree.1345_GasConsumptionDomesticHotWaterYearMatrix

 

Über die API kommen hierzu ja type, unit, value01 und value01 zurück, also relevant eigentlich der Jahresverbrauch=value01 und der Letztjahresverbrauch=value02 jeweils in:

viessmannapi.0.xxx.0.features.heating.gas.consumption.heating.properties.year

viessmannapi.0.xxx.0.features.heating.gas.consumption.dhw.properties.year

 

Im Objektbaum gibts dazu nur eine Zahlenkette. Kann man da irgendwie an die "menschenlesbaren" beiden Werte kommen?

Top-Lösungsautoren