Replies: 4 comments 32 replies
-
|
Moin @Dreman65! Top Arbeit. Ich schaue mir mal Richtung nächste/übernächste Woche deine neuen Datenpunkte an und vergleiche die mit meiner Anlage. Bin aktuell noch im Urlaub und will dann meine open3e Installation umziehen und mal mit der iobroker Integration arbeiten bzw rumprobieren. Muss dafür aber erst ne neue iobroker VM in Proxmox aufsetzen und als Slave zu meiner Haupt-iobroker Instanz hinzufügen. Hat auch andere Gründe und muss für den HB Daten loggen. Hab Drucksprünge von 0,9-1,6 bar im Heizkreis und will mal schauen wann welcher Druck anliegt in welchem Zustand. Ist mit nem iobroker halt relativ easy über den History Adapter. Aber ist nen anderen Thema und ich schweife ab. Denke @philippoo66 wird da auch Interesse an den neuen Datenpunkten haben. Hab da mit ihm damals auch alles viel durchgearbeitet, aber die Integration ist nicht so einfach wegen der unterschiedlichen Anlagenkonfigurationen und das die Datenpunkte unterschiedlich sind. |
Beta Was this translation helpful? Give feedback.
-
|
Weiterführung der Diskussion wegen Unstimmigkeiten, siehe hier. Nach meine Analyse unterscheiden sich die Definitionen von 2086 von @Backes89 und in e3oncan/open3e:
Haben wir es mit verschiedenen ZigBee-Geräten zu tun oder ist die open3e-Tabelle nicht korrekt? |
Beta Was this translation helpful? Give feedback.
-
|
Vielen Dank für die detaillierte Analyse, @Backes89, und für die ergänzenden Testergebnisse! Fazit nach Auswertung: Definition B ist korrekt – die bisherige open3e-Definition ist fehlerhaft. Unabhängige Bestätigung durch ViGuide-Demo-App In der öffentlich zugänglichen ViGuide-Demo-App von Viessmann findet sich das Feature Analyse der Struktur Der Datenpunkt Korrekte Struktur (mit open3e-Feldnamen) O3EComplexType(68, "ZigBeeOneDeviceCurrentValues", [
RawCodec(2, "Unknown1"),
O3EInt8(1, "BatteryLevel"),
RawCodec(37, "Unknown2"), # war 38 – 1 Byte zu lang
O3EInt8(1, "SignalLevel", scale=2.55), # neu: LQI bei Offset 0x28
O3EEnum(1, "ViCareDevice", "ViCareDeviceTypes"),
O3EInt8(1, "ActualTemperature", scale=10),
O3EEnum(1, "CurrentWorkingMode", "CurrentWorkingModeLevels"),
O3EInt8(1, "Humidity"), # neu: bei Offset 0x2C
RawCodec(3, "Unknown3"), # war 4 – 1 Byte zu lang
O3EEnum(1, "DeviceDisplayTurned", "DeviceDisplayModeStates"),
RawCodec(5, "Unknown4"),
O3EEnum(1, "DeviceChildLockActive", "DeviceChildLockStates"),
O3EInt8(1, "DeviceTemperatureSetpoint"),
RawCodec(12, "Unknown5")], acc="ro")
# Summe: 2+1+37+1+1+1+1+1+3+1+5+1+1+12 = 68 ✓Zuordnung der Enum-Namen (Backes89 → open3e)
Geplante Änderungen in open3e
Zum Thema Kühlen: Falls sich aus dem e3oncan History Adapter brauchbare Werte ergeben, können wir |
Beta Was this translation helpful? Give feedback.
-
|
Ich habe die in dieser Diskussion erarbeiteten Vorschläge nun in den Branch Umsetzung der abgestimmten Vorschläge
Hinweis zu DID 2084Für die ZigBee Property DIDs (2084 ff.) gibt es zwei leicht abweichende Vorschläge:
Ich habe die Variante von Backes89 umgesetzt, da das Feld dort explizit als |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Anbei meine Erkenntnisse zur Einbindung des Viessmann Klimasensors (ohne zusätzliches Viessmann Thermostatventil) in die Vitodens 300-W-B3HG in das Gerät 0x6e0 (SMARTROOMCONTROL). Grundlage dafür sind die von @Backes89 an der Vitocal 252 gefundenen Parameter/Werte (siehe WIKI 070).
1884 : O3EComplexType(84, "RoomOneProperty", [RawCodec(1,“unknown“),O3EUtf8(39, "roomname"), RawCodec(3, "unknown1"), O3EInt8(1, "roomtype"), RawCodec(1, "unknown2"), O3EInt8(1, "temperature control"), RawCodec(29, "unknown3"), O3EInt8(1, "window open detection active"), RawCodec(8,"unknown4")]),2084 : O3EComplexType(84, "ZigBeeOneDeviceProperty", [RawCodec(8, "serialnumber"), RawCodec(1, "serialnumberpostfix"), O3EUtf8(39, "devicename"), RawCodec(36, "unknown")]),1886: O3EComplexType(46, "RoomOneCurrentValues",[O3EInt16(2, "ActualTemp", signed=True), O3EInt16(2, "MinimumTemp", signed=True), O3EInt16(2, "MaximumTemp", signed=True), O3EInt16(2, "AverageTemp", signed=True), O3EByteVal(1, "unknown1"), O3EInt8(1, "ActualHumidity"), O3EInt8(1, "MinimumHumidity"), O3EInt8(1, "MaximumHumidity"), O3EInt8(1, "AverageHumidity"), O3EByteVal(1, "unknown2"),RawCodec(32,"unknown3")]),2086 : O3EComplexType(57, "ZigBeeOneDeviceCurrentValues", [RawCodec(2, "unknown1"), O3EByteVal(1, "Battery Level"), RawCodec(37, "unknown2"), O3EByteVal(1, "Signal Level"), O3EByteVal(1, "Valve Type"), O3EInt16(2, "Temperature"),O3EInt8(1, "Humidity"), RawCodec(12, "unknown3")]),Achtung: 100% Signalstärke entspricht dabei einem Hex-Wert von FF!
Fazit: Die wesentlichen Parameter sind abrufbar aber: es gibt noch viele unknowns :-).
@MyHomeMyData Bei den ganzen Versuchen ist mir noch folgendes aufgefallen: liest man einen Textwert z.B. die ersten 40 Bytes in DID 1884
00576f686e7a696d6d65720000000000000000000000000000000000000000000000000000000000mit dem Encoder O3EUtf8 wie in DID 1884 und dieser Text startet mit Nullen, dann liefert open3E den String "Wohnzimmer", e3oncan jedoch nur """". Nur als Hinweis.
Update zu Punkt 2) am 14.05.25:
2084 : O3EComplexType(84, "ZigBeeOneDeviceProperty", [RawCodec(8, "serialnumber"), RawCodec(1, "serialnumberpostfix"), O3EUtf8(39, "devicename"), RawCodec(2, "unknown1"), O3ESoftVers(7, "Firmware-Version"), RawCodec(9, "unknown2"), O3EUtf8(16, "VIN"), RawCodec(2, "unknown3")]),Update zu Punkt 3) am 17.07.2025
Meine ursprünglich als 'AverageTemp' und 'AverageHumidity' interpretierten Werte sind zwar Temperatur- und Humidity-Werte, sind aber keine Mittelwerte. Da alle meine Interpretationsversuche bisher negativ waren, korrigiere ich zu 'unknown':
1886: O3EComplexType(46, "RoomOneCurrentValues",[O3EInt16(2, "ActualTemp", signed=True), O3EInt16(2, "MinimumTemp", signed=True), O3EInt16(2, "MaximumTemp", signed=True), O3EInt16(2, "unknown1", signed=True), O3EByteVal(1, "unknown2"), O3EInt8(1, "ActualHumidity"), O3EInt8(1, "MinimumHumidity"), O3EInt8(1, "MaximumHumidity"), O3EInt8(1, "unknown3"), O3EByteVal(1, "unknown4"),RawCodec(32,"unknown5")]),Beta Was this translation helpful? Give feedback.
All reactions