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 vielen Daten auch schon erprobt.
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!
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:
Vitocal 250 Kältekreisübersicht: View und Installationsanleitung gibt's hier: https://github.com/MyHomeMyData/iob.vis.vitocal250.git
Wer es ausprobieren möchte: Hier gibt es eine Anleitung.
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
hmmmm, zum Thema Ground Anschliessen habe ich Seiten zurück einen langen Sermon geschrieben, auch im Wiki zum Projekt steht was dazu. Um es kurz zu machen:
Bei einem isolierten CAN Adapter wie dem InnoMaker sollte der CAN Gnd angeschlossen werden!
Es stimmt zwar, dass es sich um ein differentielles Signal zwischen CAN_HI und CAN_LO handelt, ABER auch das kann gegen Gnd übersteuer/klippen! Der Gnd macht (bei isoliert) nichts anderes als ein Bezugspotential für die Signale herzustellen. Er 'endet' auf dem isolierten Teil des Adapters, es sind keine Schleifen zu befürchten.
Grüsse!
@Christopher66 >> Die Frage mit dem Abschlusswiderstand stellt sich mir auch, kann dies bitte noch jemand beantworten?
An beiden 'räumlichen' Enden des CAN Busses je einen Widerstand anschliessen/aktivieren. Es sollen immer 2 Widerstände vorhanden sein, nicht mehr und nicht weniger!
@HerrPEntschuldige bitte wenn ich die Information bisher uebersehen habe. Ich habe halt den speziellen Fall mit der Anschlussleiste der 252(251) weder im Wiki noch hier im Thread gefunden. Wobei ich sagen muss, die Forensoftware hat echt noch Luft nach oben. Nur in diesem Thread suchen zu koennen waere schon dufte, hatte vor ein paar Tagen jeden einzelne Seite nach 91 abgesucht, war aber nicht fuendig geworden.
Ich suche jetzt nochmal den von Dir erwaehnten "Sermon" zum Thema Ground und dann muss ich nochmal rausfinden wie der CANBUS bei mir ueberhaupt aufgebaut ist.
Danke
EDIT: fuer die Nachwelt, hier die beiden Links.
An beiden 'räumlichen' Enden des CAN Busses je einen Widerstand anschliessen/aktivieren. Es sollen immer 2 Widerstände vorhanden sein, nicht mehr und nicht weniger!
Bevor ich die hier vorgestellte e3oncan Lösung verwendete, hatte ich das völlig überteuerte und zu fast nichts zu gebrauchende WAGO Gateway in Betrieb. Bei dieser Lösung wurde an der Wärmepumpe von unserem Heizungsbauer kein Abschlusswiderstand installiert. Offenbar ist der CAN-Bus an der Wärmepumpe bereits terminiert. Daher war‘s für mich recht einfach: WAGO raus und USB2CAN-Converter rein.😄
@Ziegelhofer >> die Forensoftware hat echt noch Luft nach oben
da sagst du was! ich habe nach 'Ground' in allen Beiträgen von mir gesucht (ja, zumindest das geht tatsächlich) - der einzige Treffer ist angeblich dieser Thread. Wenn ich aber das Suchergebnis anklicke, lande ich im Eröffnungsbeitrag, 1. Seite. Na toll!
Ich glaube, bei dem 'Sermon' war eine Grafik des prinzipiellen Aufbaus eines CAN Transceivers mit bei, vielleicht hilft das beim Finden. Ich hab leider auch grad keine Zeit, weil ich meinen Vito Raspi zum Steuern der WW Erwärmung per PV umbauen muss. Das muss erstmal fertig werden 😉
Grüsse!
ha! Teil 1 vom Sermon schon mal gefunden (Goggel hat geholfen...):
Meiner Guete, es gibt nicht mal einen einfachen Weg den Link zum einem Post zu kopieren, oder ich bin blind.
Ich glaube hier ist der andere Post von Dir zu dem Thema.
So ganz steige ich allerdings noch nicht durch, bin grade aber auch nicht vor Ort. Werde die Tage nochmal mit dem Elektriker einen Blick drauf werfen und dann nochmal Bescheid geben wie es letztendlich geworden ist.
Nochmals vielen Dank fuer die Hilfe, ich melde mich wieder!
das sieht gut aus, danke! ich speicher mir jetzt diese beiden Links ab, weil das Thema immer wieder kommt (wodraus man niemandem einen Vorwurf machen kann in Anbetracht der inzwischen 46 Seiten...)
Wie hast du den Link 'herausgearbeitet'? ich benutze inzwischen 'RSS-Feed abonieren', such dann nach den ersten Worten im Beitrag und kopier den Link da drüber. Früher bin ich über 'Lesezeichen' gegangen, wo man aber dann erstmal das Lesezeichen wiederfinden muss... 😉
@HerrP schrieb:
Wie hast du den Link 'herausgearbeitet'?
Mein Vorgehen: Ich lege ein Lesezeichen an, in diesem steht der Link.
Bin ja neu hier, von daher war es mein erstes Lesezeichen. 😛 Aber selbst da musste ich dreimal schauen.
Den Beitrag habe ich uebrigens gefunden in dem ich bei google nach "CAN Ground (GND) nicht anschließen!" gesucht habe. Habe dann den Beitrag gefunden auf den Du geantwortet hast.
So, nochmal einen kurzen Zwischenstand von meiner Seite wie ich es fuer die vitocal 252 geloest habe. Nach Ruecksprache mit dem Elektrikter und Nachschlagen im Handbuch habe ich es nun wie folgt geloest.
- 3m Cat7 Kabel als CANBUS Verbindung
- den hier beschrieben CANBUS Adapter mit Signal und Stromtrennung
- ein verdrilltes Paar (blau/blau weiss) an PIN2/PIN7 am Adapter und CAN High und Low an der Waermepumpe (Anschlussleiste)
- kein ground angeschlossen
- abschlusswiderstand vom CANBUS Adapter entfernt da ich lediglich die Innen und Ausseneinheit per CANBUS verbunden habe und die Anschlussklemme in der Mitte vom Bus sitzt.
Die erste Woche habe ich die Daten per AccessPoint abgeholt, der hat sich nach einer Woche aber abgeschaltet und ein paar Tage spaeter kam ich gar nicht drauf. Das ist also keine dauerhafte Loesung mit dem AP.
Ich hatte ausserdem das Problem das eine der letzten Abfragen im script in einen Timeout gelaufen ist und das Script immer abgebrochen ist, mit Kabel laeuft es jetzt fehlerfrei durch. Fehler auf dem CANBUS Adapter sehe ich auch keine, das ist also alles fein. (ip -details -statistics link show can0)
Bis morgen oder Samstag laeuft noch das Estrichtrocknungsprogramm, danach werde ich das DepictSystem nochmal laufen lassen und dann schauen was dort im Vergleich zu 250 fehlt bzw zusaetzlich ist. Ersten Aufruf habe ich auch ueber den AP gemacht, will sicherstellen das wirklich alles dabei ist. Sobald ich da einen besseren Ueberblick ueber die Daten habe, schreibe ich hier nochmal eine kurze Zusammenfassung.
An dieser Stelle aber nochmal ein dickes Danke fuer open3e, wirklich ein fantastisches Stueck Software.
EDIT: Nicht gesehen, dass das Estrichprogramm insgesamt 30 Tage laeuft. Da wir nur 14 tage trocknen muessen, ist die WP jetzt erstmal wieder aus. Wird also noch einen Moment bis ich dazu komme mir die Daten anzusehen.
Hallo Frank,
ich habe eben den Datenpunkt 497 im Branch develop aktualisiert. Heißt jetzt "CyclesPerHour" statt "Unknown".
Danke für den Hinweis.
Gruß, Jürgen
Wie hast du den Link 'herausgearbeitet'?
Mein Vorgehen: Ich lege ein Lesezeichen an...
Hallo,
es geht viel einfacher: Oben rechts auf den Pfeil, dann auf "Kennzeichnen", dann den Link normal oben aus der Eingabeleiste kopieren.🙂
Hallo zusammen,
erstmal großes Kompliment an die Dev's die das Projekt aufgezogen und weiterentwickeln.
Ich für meinen Teil bin gerade an der Implementierung und Erprobung, komme aber irgendwie nicht so richtig voran.
Zur Anlage: PV 18,8KWp mit SMA Tripower + Vitocharge VX3 inkl. 15KW Batteriespeicher.
E-Meter E380CA
GridBox und Viessmann Cloud.
Nun da ich im Smart-Home noch mehrere Sachen vor habe, wo ich die Daten benötige bin ich auf das Projekt gestoßen.
Einige "übrige" Raspberry's hatte ich sowieso noch hier liegen. USB2CAN besorgt und alles laut Anleitung installiert. Bus-Cabel hängt direkt am zweiten "91"er Anschluss im VX3.
open3e_depictsystems zum scannen ausführen lassen und mir wurden 10 DataEndpoints erzeugt.
Der Aufruf (-dev vx3) und Übertragung per MQTT funktioniert auch.
Problem was ich habe, die wichtigsten Informationen habe ich bisher noch nicht finden können.
Ich benötige:
* Bezug/Einspeisung Netzseitig
* aktueller Verbrauch (Haus)
Hat jemand evtl. die 'read did's' dafür?
Oder sind diese Informationen nicht abrufbar?
Danke
Gruß
Nolli
Ich verwende folgende Dids:
1603: PointOfCommonCouplingPower => Netzbezug/Einspeisung
1690: ElectricalEnergySystemPhotovoltaicStatus => PV-Leistung
1836: ElectricalEnergyStorageCurrentPower => Batterie Lade-/Entlade-Leistung
Haushaltsverbrauch musst Du daraus berechnen.
Die Anbindung der E3-Geräte gibt es auch als Adapter für den ioBroker (incl. Energy Meter).
Gruß, Jürgen
Hallo Jürgen,
perfekt, danke. Genau das habe ich gesucht. Bei > 300 Dateneinträgen kann man schon mal den Überblick verlieren 😄
Berechnung daraus habe ich auch gemacht und stimmt überein mit dem der Gridbox.
Vielen Dank noch mal.
Ja den Adapter habe ich gesehen und finde Idee genial, macht bei mir in der Umgebung aber nicht soo viel Sinn, da IOBroker als VM im ProxMox läuft. Der Adapter sollte ja aber schon darauf laufen wo auch der CANBus dran hängt wie ich verstanden habe.
Danke und schönes Wochenende
Gruß, Nolli
Die Vitotrans 353 hat auch einen Can-Bus. Leider gibt sie darüber anscheinend nur relativ uninteressante Daten preis:
dataIdentifiers = {
"name": "FRIWASTATION",
"dids" :
{
256 : O3EComplexType(36, "BusIdentification", [O3EByteVal(1, "BusAddress"), O3EEnum(1, "BusType", "BusTypes"), O3EEnum(1, "DeviceProperty","Devices"), O3EEnum(1, "DeviceFunction","Devices"), O3ESoftVers(8, "SW-Version"), O3ESoftVers(8, "HW-Version"), O3EUtf8(16, "VIN")]),
377 : O3EUtf8(16, "ViessmannIdentificationNumber"),
580 : O3ESoftVers(8, "SoftwareVersion"),
581 : O3ESoftVers(8, "HardwareVersion"),
928 : O3EUtf8(16, "ElectronicTraceabilityNumber"),
961 : RawCodec(2, "SecurityAlgorithmNumber"),
962 : O3ESoftVers(8, "BootLoaderVersion"),
964 : O3EByteVal(1, "ActiveDiagnosticSession"),
1494 : O3ESoftVers(8, "OemProductVersion")
}
}
Hat jemand eine Idee, wie man die 353 dazu bringt, ihre Sensordaten zu publizieren?
LG, Sebastian
lass mal einen candump ungefiltert mitlaufen. vielleicht kommen die Daten in irgendwelchen nicht-UDS Frames...
@HerrP schrieb:lass mal einen candump ungefiltert mitlaufen. vielleicht kommen die Daten in irgendwelchen nicht-UDS Frames...
Ohne UDS-Abfrage kam gar nichts. Sobald ich ein zweites Can-Modul an meinem RasPi dran habe, werde ich noch einmal während der UDS-Abfrage mitschneiden.
Allerdings sendet meine Vitocal als Main-Ecu ja, soweit ich gesehen hatte, ständig auch nicht-UDS Frames (mit Ids 000, 701, 190, 1FD, 1FF und 701) aus. Eventuell provozieren die ja eine Antwort der Vitotrans, wenn man sie am externen Can-Bus der Vitocal anschließen würde?
LG, Sebastian
Und open3e_depictSystem liefert auch nicht mehr?
Ich habe mal ein Programm geschrieben, das nur auf dem Bus lauscht und alles dekodiert, was im bekannten Format kommt. Findest Du hier. Ich weiss aber nicht, ob die 353 überhaupt von sich aus was sendet und wenn ja, auf welcher CAN-Id. Vielversprechende IDs sind 0x451 und 0x693. Einfach mal ausprobieren, also z.B. mit
python3 E3onCANcollect.py -c can0 -canid 0x451 -v
wird alles ausgegeben, das auf ID 0x451 vorbei kommt und dekodierbar ist.
Falls Du eine ID findest, auf der die 353 plaudert, lass es mich bitte wissen.
Gruß, Jürgen
@Juergen-B schrieb:Und open3e_depictSystem liefert auch nicht mehr?
Das war alles, was open3e_depictSystem gefunden hat.
Falls Du eine ID findest, auf der die 353 plaudert, lass es mich bitte wissen.
Wie gesagt, sie scheint ohne Aufforderung nicht zu plaudern.
LG, Sebastian
Ohne UDS-Abfrage kam gar nichts. Sobald ich ein zweites Can-Modul an meinem RasPi dran habe, werde ich noch einmal während der UDS-Abfrage mitschneiden.
@Wangnick schrieb:Ohne UDS-Abfrage kam gar nichts. Sobald ich ein zweites Can-Modul an meinem RasPi dran habe, werde ich noch einmal während der UDS-Abfrage mitschneiden.
Verstehe ich nicht ganz. Du brauchst doch nur ein 2tes Terminal-Fenster und da candup starten, oder?
Allerdings sendet meine Vitocal als Main-Ecu ja, soweit ich gesehen hatte, ständig auch nicht-UDS Frames (mit Ids 000, 701, 190, 1FD, 1FF und 701) aus. Eventuell provozieren die ja eine Antwort der Vitotrans, wenn man sie am externen Can-Bus der Vitocal anschließen würde?
Ich habe eine Vitocal und eine VX3. Wenn man die einfach über CAN verbindet, beschweren sich die Geräte, dass es mehr als einen Master auf dem Bus gibt. Die Anlage musste dann durch den Service neu konfiguriert werden. Dabei wird die Vitocal zum Master, die VX3 zum Slave. Und dann fängt die VX3 an zu plaudern.
Ob das mit Vitocal und Vitotrans auch so ist, weiß ich aber nicht.
Gruß, Jürgen
@Juergen-B schrieb:@Wangnick schrieb:Ohne UDS-Abfrage kam gar nichts. Sobald ich ein zweites Can-Modul an meinem RasPi dran habe, werde ich noch einmal während der UDS-Abfrage mitschneiden.
Verstehe ich nicht ganz. Du brauchst doch nur ein 2tes Terminal-Fenster und da candup starten, oder?
Ich habe den Can-Bus der Vitotrans bisher nicht mit dem Can-Bus der Vitocal verbunden. Und zur Zeit hängt der RasPi mit genau einem Can-Modul nur an der Vitocal, und ich möchte den RasPi auch gerade nicht von der Vitocal abhängen, weil ich dort erste Daten der Anlage sammle.
Allerdings sendet meine Vitocal als Main-Ecu ja, soweit ich gesehen hatte, ständig auch nicht-UDS Frames (mit Ids 000, 701, 190, 1FD, 1FF und 701) aus. Eventuell provozieren die ja eine Antwort der Vitotrans, wenn man sie am externen Can-Bus der Vitocal anschließen würde?Ich habe eine Vitocal und eine VX3. Wenn man die einfach über CAN verbindet, beschweren sich die Geräte, dass es mehr als einen Master auf dem Bus gibt. Die Anlage musste dann durch den Service neu konfiguriert werden. Dabei wird die Vitocal zum Master, die VX3 zum Slave. Und dann fängt die VX3 an zu plaudern.
Ob das mit Vitocal und Vitotrans auch so ist, weiß ich aber nicht.
Weiß ich auch nicht. Allerdings scheint das Design der Vitotrans schon etwas älter zu sein. Und müsste ein Main-Ecu-Master sich nicht auf 0x680 melden, und nicht nur auf 0x6e7 antworten wie meine Vitotrans?
LG, Sebastian
hallo,
wie berechne ich daraus den Haushaltsverbrauch ?
Benutzer | Anzahl |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |