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 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!

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

 
Visualisierung der Vitocal Energiematrizen zur monatlichen Energiebilanz für ioBroker:
HerrP_0-1728512769080.png

Wer es ausprobieren möchte: Hier gibt es eine Anleitung.

 

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.335 ANTWORTEN 1.335

vielen , vielen DANK euch beiden.

ich hatte den wert 005 bei 919

jetzt habe ich den wert b400  bei 919.

 

 

ich habe noch 2 probleme   freigabe sparfunktion aussentemp .  hk1 und   hk2

adresse  2426     raw wert     01a6ff00ecff      normaler wert soll 1 oder 0 sein ist aber  -9  hk1

adresse  2427     raw wert   010a00000a00    normaler wert soll 1 oder 0 sein ist 1  hk2

 

beide hätte ich gere auf 0

 

@Juergen-B  Der Default-Wert 1280 Minuten (= 21,3 Stunden) definiert die Zeitkonstante für die interne Berechnung der ATgedämpft bzw. ATgemischt bzw. ATgemittelt. Die Begriffe benutzt Viessmann leider ziemlich durcheinander. Fakt ist, es wird der Mittelwert über die AT der vergangenen 21,3 Stunden gebildet (in 10 Minuten-Abstand) und dieser Mittelwert geht dann mit dem Faktor 0,7 in die Berechnung der im Display der Vitodens angezeigten 'gedämpften Aussentemperatur' ein, also:

gedämpfte Aussentemperatur = Mittelwert * 0,7 + aktuelle AT * 0.3

 

Und dieser berechnete AT-Wert wiederum ist dann die Regelgröße für die Bestimmung der Soll-Vorlauftemperatur entsprechend der eingestellten Heizkurve.

 

Meine bisher gemessenen Werte für den Parameter 2457 (CalculatedOutsideTemperatur) bestätigen obige Berechnung-Methode.

 

übernimmt der vitodens die werte sofort, oder muss er ausgeschatet werden ?

Die Werte werden sofort übernommen.

Ok, aber wenn der Rohwert 1280 dem umgerechneten Wert 1280 Minuten entspricht, ist der Umrechnungsfaktor 1 und nicht 10, wie aktuell in der Datenpunktliste hinterlegt (es ist kein Faktor angegeben, dann gilt Defaultwert 10).

 

D.h. wir müssen das in der Datenpunktliste ändern auf

 

919 : O3EInt16(2, "OutsideTemperatureDampingFactor", scale=1.0)

 

Richtig?

Lt. Datenpunktliste ist für

 

2426 : O3EInt16(6, "MixerOneCircuitRoomEcoFunctionSettings", signed=True, offset = 1),
2427 : O3EInt16(6, "MixerTwoCircuitRoomEcoFunctionSettings", signed=True, offset = 1),

 

die Struktur nicht (vollständig) geklärt.

 

Hat da jemand weitere Infos?

@Juergen-B  Der Wert 128 kommt aus Unterlagen zu früheren Vitodens-Versionen, in denen die Zeitkonstante noch über Menü einstellbar war (cod 90) und das war nach meiner Kenntnis mit 128 bezeichnet (Einstell-Bereich 0 - 199). Da in den Unterlagen zu den neuen Versionen nichts mehr dokumentiert ist bezüglich der ATgedämpft: kann so oder so gemacht werden 😉.

Na gut, der (umgerechete) Wert hat also die Einheit "10 Minuten" und der interne Wert hat die Einheit "Minuten". Muss ich nicht verstehen, ist halt so.

@Juergen-B  Meine Erkenntnisse (nachträglich geändert, angepasst an die aktuellste Version der Service Anleitung, ohne Gewähr):

  1. das 1. Byte in 2426 entspricht 2426.0 in der Service Anleitung
    Byte1 (01) = Funktion EIN/AUS, EIN = 01, AUS = 00
  2. Byte 2/3 in 2426 entspricht 2426.1 in der Service Anleitung
    Byte 2/3 (0A 00) = +10 (also +1 °C)
  3. Byte 4 (00) unbekannt
  4. Byte 5/6 (0A00) entspricht 2426.3 in der Service Anleitung

2426 definiert HK1, 2427/2428/2429 entsprechen HK2/3/4. Die Werkseinstellung beträgt jeweils +1 °C. Vorsicht: 242x.1 und 242x.3 haben unterschiedliche Wertebereiche (siehe aktuellste  Service Anleitung), man sollte also schon wissen, was man tut 😉.

 

Warum bei @har1  für HK1 die Werte 2426.1 = -9 °C und für 2426.3 = -2 °C stehen: keine Ahnung.

das sind Energiesparen Einstellungen bei meiner vitodens 300 w.

durch die Einstellung schaltet die vitodens ab , wenn die Außentemperatur bestimmte werte hat.

die Parameter sind mit der neuen hmu dazugekommen.

ich hätte sie gerne beide auf null , also aus.

das interessante ist nur der hk1 schlägt quer, hat den Wert  - 9.

hk2 hat  wert 1.

beide sollen wert 0 haben.

 

 

 

Screenshot_2024-01-20-18-35-47-028.jpeg
Screenshot_2024-01-20-18-35-30-054.jpeg

Danke für die Info. Ich baue die Datenpunktbeschreibung entsprechend um. Müsste ja so aussehen:

 

2426 : O3EComplexType(6, "MixerOneCircuitRoomEcoFunctionSettings",[O3EBool(1,"State1"), O3EInt16(2, "Temperature1", scale=10.0, signed=True),O3EBool(1,"State2"), O3EInt16(2, "Temperature2", scale=10.0, signed=True)]),

 

Was schreibe ich denn statt "State1/2" und "Temperature1/2" sinnvolerweise rein?

@Juergen-B  Sorry Jürgen, hab die Byte-Definition oben nochmal geändert, entsprechend den Änderungen in der aktuellsten Service Anleitung.

@har1  ......ich hätte sie gerne beide auf null , also aus.

 

Ich verstehe den Sinn dahinter zwar nicht, aber dazu musst du nur jeweils das 1. Byte auf 00 setzen (statt 01). Nur zur Info: diese Schreibfunktionen sind von mir nicht getestet/überprüft.

@har1Würdest Du bitte einen Link zu obiger Anleitung posten? Mit den Screenshots komme ich nicht klar und Google findet das pdf nicht.

hier ist der Link     mont-/serv......pdf       ab Seite 81

 

https://www.viessmann.com/etapp/parts/de/0500/7956286

@har1Danke für den Link. Ich habe die Codec für 2426 bis 2429 angepasst. Verfügbar im Branch develop.

Schreiben im JSON-Format ist auch möglich. Dabei darauf achten, dass die JSON-Daten in Hochkommata eingeschlossen sind, also did='{"json":"data"}'

 

Sieht nun z.B. für 2426 so aus (Lesen, Schreiben, Lesen):

 

open3e $ python3 Open3Eclient.py -c vcan0 -dev vdens -v -r 2426
vdens 2426 MixerOneCircuitRoomEcoFunctionSettings {"State": "on", "OutsideTemperatureLimit": -1.0, "Unkown": 0, "RoomTemperatureLimit": 1.0}
closing 0x680 - bye!
open3e $ python3 Open3Eclient.py -c vcan0 -dev vdens -v -w 2426='{"State": "on", "OutsideTemperatureLimit": 3.0, "U
nkown": 0, "RoomTemperatureLimit": 1.0}'
write: 1664.2426 = {'State': 'on', 'OutsideTemperatureLimit': 3.0, 'Unkown': 0, 'RoomTemperatureLimit': 1.0}
success: True, code: 0
closing 0x680 - bye!
open3e $ python3 Open3Eclient.py -c vcan0 -dev vdens -v -r 2426
vdens 2426 MixerOneCircuitRoomEcoFunctionSettings {"State": "on", "OutsideTemperatureLimit": 3.0, "Unkown": 0, "RoomTemperatureLimit": 1.0}
closing 0x680 - bye!

Hat jemand schon die Parameter gefunden, die einmal den aktuellen Heizzustand anzeigt (Normal, reduziert, comfort oder aus) und mit welchen Parameter ich den Zustand umstellen kann? Ich schalte nämlich die Heizung über die Cloud api nachts ab und nur bei Bedarf ein. Das würde ich gerne auch lokal machen

ich würde mal vermuten es sind diese hier:

 

1415 : O3EComplexType(2, "MixerOneCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1416 : O3EComplexType(2, "MixerTwoCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1417 : O3EComplexType(2, "MixerThreeCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1418 : O3EComplexType(2, "MixerFourCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1419 : O3EComplexType(2, "MixerFiveCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1420 : O3EComplexType(2, "MixerSixCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1421 : O3EComplexType(2, "MixerSevenCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),
1422 : O3EComplexType(2, "MixerEightCircuitOperationState",[O3EByteVal(1,"Mode"),O3EByteVal(1,"State")]),

 

die zugehörigen Werte sind vermutlich diese:

 

"OpModes" : {
0: "Off",
1: "Heating",
2: "Parallel Operation: Heating HotWater",
3: "Parallel Operation: Heating Cooling",
4: "TestMode",
5: "Cooling",
255: "Automatic",
},

 

"OpStates" : {
0: "Current",   <-- ?? Wert doppelt vergeben?
0: "ShutDown",
1: "Reduced",
2: "Normal",
3: "Comfort",
5: "Fixed Value",
6: "Antifreeze protection",
7: "Energy Save: reduced",
8: "Energy Save: normal",
9: "Energy Save: comfort",
10: "Cooling: normal",
11: "Cooling: comfort",
12: "No request",
},

 

(# Source: Datenpunktliste Modbus und KNX Betriebsprogramm HK, s. Open3Eenums.py)

 

Du müsstest es mal über die App ein wenig umschalten und dabei auslesen.

 

Wäre schön, wenn du Rückmeldung gibst, ob es passt, dann arbeiten wir es ein.

 

apropos Rückmeldung... bezüglich der geforderten Abschaltung des Home Assistant Plugins und der angedrohten Rechtsmittel hat Haier bei ca.1.700 Forks und wahrscheinlich ähnlich vielen eMails einen Rückzieher gemacht und behauptet, es wäre ein Versehen gewesen bzw. automatisiert geschehen (wer's glaubt...). Jetzt schleimen sie rum sie suchen die Zusammenarbeit mit dem Entwicker und wollen den Service für die Community noch besser machen. Hier der org. Text.

 

Also ein 'Sieg' des open Source Gedankens innerhalb von gut einem Tag und ein Beleg, dass wir nicht machtlos sind gegenüber Konzernen, wenn wir nur zusammen an einem Strang ziehen.

 

Was bleibt ist ein richtig fetter Image Schaden für Haier und jede Menge schlechte Presse / Social Media. Haier US hat sich übrigens von vornherein von der Sache distanziert und gesagt, dass sie die HA Integration und OPEN IOT weiterhin unterstützen.

 

Grüsse!

Phil

Ja, stimmt. Den hatte ich wohl auch in Fokus, aber da habe ich mich von der OneBase Serviceanleitung in die Irre leiten lassen.

Bei abgeschalter Heizung kriege ich den Staus: Modes 0 und States 5

Reduziert: M 1 S 1

Normal: M 1 S 2

Bei  aktiver WW Erwärmung ändert sich der Status auch nicht. Wenn du noch mehr Infos brauchst, dann melde dich einfach.

 

Aber den Modus umschalten klappt noch nicht über Iobroker. Liegt es am Iobroker Adapter oder wohl an dem Parameter?

@jokermicWas meldet denn der Adapter beim Schreibversuch im Log?

@jokermic  Wenn du die Vitodens meinst, bei mir funktioniert 1415 so:

Abfragen (read) von Mode (Heizung Ein/Aus) und Status (reduziert, normal, comfort):

  • 00 00: Heizung Aus, 01 0x): Heizung Ein
  • 01 01: Heizung Ein/reduziert
  • 01 02: Heizung Ein/normal
  • 01 03: Heizung Ein/comfort

Schreiben (write 1415) funktioniert identisch, wobei der mitgeschriebene Status (Byte 2) nur kurz Einfluss auf den Status hat, der wird sofort durch den aktuellen Status des eingestellten Zeitprogramms überschrieben.

Dreman Guru, Juergen-B Experte II      

 

 

Noch mal vielen Dank  für eurere Hilfe und Unterstützung.

 

 

 

ich habe probiert  den Parameter   2426  01a6ff00ecff  die 01(am Anfang) in 00 zu ändern und damit den Sparmodus auszuschalten.

 

python3 Open3Eclient.py -d 192.168.0.1 -dev vdens -raw -w 2426=00a6ff00ecff

write 1664.2426 = 00a6ff00ecff

success: True, code: 0



python3 Open3Eclient.py -d 192.168.0.1 -dev vdens -raw -w 2426=000a00000a00

write 1664.2426 = 000a00000a00

success: True, code: 0

 

Das ging nicht.

 

 

Dann habe ich Parameter   2426  einfach den wert vom Parameter 2427 010a00000a00 gegeben.

 

Das hat funktioniert.

 

 

Jetzt kann ich wieder wie vorher meine Raum Temperatur Werte einstellen, ohne dass der Sparmodus immer die Anlage ausschaltet.  Das habe ich getestet.

 

 

 

 

 

 

jokermic_0-1705857078295.png

 

Ich kriege die folgende Meldung:

 

User command UDS WriteByDid on VC252A_HPMUMASTER_0x680.1415: Writing not allowed on this did. Pls. refer to README for further informations.

@Dreman 

 

Danke für den Hinweis. Ich habe eine Vitocal 252-A und bei mir ist es ja fast gleich. Nur Heizung aus verhält sich anders

Top-Lösungsautoren