Hallo, bei mir hat es auf Anhieb funktioniert. Frage: Kann mal den Betriebszustand auch umschalten?
---- wer lesen kann ist klar im Vorteil. Läuft jetzt. ----
Ich habe einige Hex Adressen gesammelt aber noch viele Lücken.
Hast du eine komplette Liste und kannst diese zur Verfügung stellen?
Super!
ich habe das so gelöst:
select:
- platform: optolink
name: Betriebsart
address: 0x2323
bytes: 1
map:
- "0 -> AUS"
- "1 -> nur Warmwasser"
- "2 -> Heizung und Warmwasser"
- "3 -> dauernd reduziert"
- "4 -> dauernd normal"
ich habe einige, allerdings für eine Pelletheizung.
Muss aber noch eine Liste erstellen.
Ich hab eine Pelletheizung Vitoligno 300 P mit einer Vitotronic FO1.
Interessant für mich wäre auch ob er anheizt/heizt oder im Ruhezustand ist und Störungen angezeigt bekommen.
Den Grundaufbau habe ich, mir fehlen nur noch die richtigen Register.
Ich habe auch eine Vitoligno 300 P und habe folgende Adressen getestet:
die gelben habe ich noch nicht getestet.
Ich suche noch die Adresse an der die Störungsnummer ausgegeben wird.
Hast du diese oder noch weitere Adressen, die nicht auf dieser Liste stehen?
Ob der Kessel heizt oder im Ruhezustand ist, habe ich von der Kesselleistung abgeleitet und durch einen Helfer selber erstellt.
Danke Algie, genau so habe ich das auch gemacht. Deine Darstellung gefällt mir sehr gut, kannst Du bitte das file veröffentlichen? Bin absolut neu auf dem Gebiet.
Ich habe nur noch diese mehr:
Sensor:
## Gebläsedrehzahl Soll
- platform: vitoconnect
name: "Gebläsedrehzahl Soll"
address: 0x0B1C
length: 2
unit_of_measurement: "rpm"
accuracy_decimals: 0
## Gebläsedrehzahl Ist
- platform: vitoconnect
name: "Gebläsedrehzahl Ist"
address: 0x0B1E
length: 2
unit_of_measurement: "rpm"
accuracy_decimals: 0
wäre super wenn du sie Sensoren aus deiner yaml posten könnest, das würde mir viel arbeit ersparen. ![]()
Edit: Ah seh grad hast du auch!
Das sind die normalen Kacheln.
Hier die Yaml:
type: grid
cards:
- type: heading
heading: Steuerelemente
heading_style: title
- features:
- type: select-options
type: tile
features_position: bottom
vertical: false
entity: select.esphome_web_8f73b6_betriebsart
name: Betriebsart
hide_state: true
grid_options:
columns: full
- features:
- type: numeric-input
style: buttons
type: tile
features_position: bottom
vertical: false
entity: number.esphome_web_8f73b6_heizkurve_niveau
hide_state: true
name: Niveau
- features:
- style: buttons
type: numeric-input
type: tile
features_position: bottom
vertical: false
hide_state: true
name: Neigung
entity: number.esphome_web_8f73b6_heizkurve_neigung
- features:
- type: numeric-input
style: buttons
type: tile
features_position: bottom
vertical: false
hide_state: true
name: Nachtabsenkung
entity: number.esphome_web_8f73b6_reduzierte_temperatur
- features:
- type: numeric-input
style: buttons
type: tile
features_position: bottom
vertical: false
hide_state: true
name: Normaltemperatur
entity: number.esphome_web_8f73b6_normaltemperatur
Meine die yaml von deinem ESPHome Gerät.
Vermute deine geschickte yaml ist von der Home Assistant configuration yaml?
Sieht toll aus, ich muss noch viel lernen. Danke für die Anregung.
Ich habe noch folgende Adressen getestet:
Warmwasser Solltemperatur: 0x6300
Brennerstatus: 0x0962 (Brenner Ein/Aus)
Ich bleibe dran und suche/teste auch die nächsten Wochen weiter Adressen.
Habt ihr auch das Problem beim flashen
WARNING Using `sensor.SENSOR_SCHEMA` is deprecated and will be removed in ESPHome 2025.11.0. Please use `sensor.sensor_schema(...)` instead. If you are seeing this, report an issue to the external_component author and ask them to update it. https://developers.esphome.io/blog/2025/05/14/_schema-deprecations/. Component using this schema: vitoconnect
Ich habe diese Meldung auch. Wurde auch schon bei GitHub gemeldet.
Muss wohl der Entwickler von “Vitoconnect” beheben.
Weil ohne dieses Update wird das ganze Projekt unbrauchbar. Man kann das auch selbst ändern, aber das ist aufwendig und man muss wissen wie und was man tut.
Hab es jetzt selbst geändert. Für alle die es interessiert. Ihr müsst in eurer vitoconnect.yaml diese Github Adresse einfügen:
external_components:
- source:
type: git
url: https://github.com/Cupra85/esphome_vitoconnect
ref: master
refresh: 0s
Habe in meiner Repo die maximale Sensorzahl von 20 auf 40 Sensoren erhöht. Außerdem hab ich noch einige Adressen. Hier eine die einige interessieren könnte!
sensor:
# Rohwert digitale Ausgänge 2 [Roh]
- platform: vitoconnect
id: digitale_ausgaenge2_roh
name: "zzz Digitale Ausgänge 2 (Roh)"
address: 0x0B26
length: 1
internal: true
binary_sensor:
# Bit 0: Eintragmotor
- platform: template
name: "Eintragmotor aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x01) != 0;
device_class: power
internal: false
# Bit 1: Austragmotor Schneckenförderer
- platform: template
name: "Schneckenförderer aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x02) != 0;
device_class: power
internal: true
# Bit 2: Austragmotor Saugsystem
- platform: template
name: "Saugsystem aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x04) != 0;
device_class: power
internal: true
# Bit 4: Motor flexible Schnecke
- platform: template
name: "Flexible Schnecke aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x10) != 0;
device_class: power
internal: false
# Bit 5: Reinigungsmotor Heizflächen
- platform: template
name: "Reinigungsmotor aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x20) != 0;
device_class: power
internal: false
# Bit 6: Rostreinigung
- platform: template
name: "Rostreinigung aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x40) != 0;
device_class: power
internal: false
# Bit 7: Zündung
- platform: template
name: "Zündung aktiv"
lambda: |-
uint8_t val = (uint8_t)id(digitale_ausgaenge2_roh).state;
return (val & 0x80) != 0;
device_class: power
internal: false
Mit false oder true könnt ihr euch die entsprechenden Sensoren ein oder ausblenden.
Vielen Dank für das Beispiel. Ich habe mir den letzten Fehler als Text ausgeben lassen:
- platform: optolink
name: Fehlerhistorie 1
address: 0x7507
bytes: 1
icon: mdi:note-text-outline
type: MAP
filters:
- map:
- "0 -> kein Fehler"
- "15 -> 0F : Wartung durchführen"
- "16 -> 10 : Kurzschluss Außentemperatur"
- "24 -> 18 : Unterbrechung Außentemperatursensor"
- "32 -> 20 : Kurzschluss Vorlauftemperatursensor HK1"
- "40 -> 28 : Unterbrechung Vorlauftemperatursensor HK1"
- "48 -> 30 : Kesseltemperatursensor defekt"
- "56 -> 38 : Kesseltemperatursensor defekt"
- "57 -> 39 : Flammentemperatursensor defekt"
- "58 -> 3A : Unterbrechung Lambda-Sonde"
- "64 -> 40 : "
- "72 -> 48 : "
- "80 -> 50 : Kurzschluss Speichertemperatursensor"
- "88 -> 58 : Unterbrechung Speichertemperatursensor"
- "96 -> 60 : Kurzschluss Puffertemperatursensor oben"
- "98 -> 62 : Kurzschluss Puffertemperatursensor unten"
- "104 -> 68 : Unterbrechung Puffertemperatursensor oben"
- "106 -> 6A : Unterbrechung Puffertemperatursensor unten"
- "146 -> 92 : Kurzschluss Kollektortemperatursensor Solar"
- "147 -> 93 : Kurzschluss Temperatursensor Solar"
- "148 -> 94 : Kurzschluss Speichertemperatursensor Solar"
- "154 -> 9A : Unterbrechung Kollektortemperatursensor Solar"
- "155 -> 9B : Unterbrechung Temperatursensor Solar"
- "156 -> 9C : Unterbrechung Speichertemperatursensor Solar"
- "159 -> 9F : Fehler Solarregelung"
- "167 -> A7 : Bedienteil defekt"
- "170 -> AA : Konfigurationsfehler"
- "177 -> B1 : Kommunikationsfehler Bedieneinheit"
- "180 -> B4 : Interner Elektronikfehler"
- "181 -> B5 : Interner Elektronikfehler"
- "182 -> B6 : Falscher Kesselcodierstecker"
- "183 -> B7 : Kesselcodierstecker fehlt oder defekt"
- "185 -> B9 : Fehlerhafte Übertragung der Kesselcodierstecker-Daten"
- "186 -> BA : "
- "188 -> BC : Kommunikationsfehler Fernbedienung Vitotrol HK1"
- "189 -> BD : "
- "191 -> BF : Falsches Kommunikationsmodul LON"
- "194 -> C2 : Unterbrechung KM-BUS zur Solarregelung"
- "196 -> C4 : Kommunikationsfehler Funktionserweiterung 0-10V"
- "205 -> CD : Kommunikationsfehler Vitocom 100"
- "207 -> CF : Fehler Kommunikationsmodul LON"
- "212 -> D4 : Sicherheitstemperaturbegrenzer hat ausgelöst (Kesselwasser > 100°C)"
- "218 -> DA : Kurzschluss Raumtemperatursensor HK1"
- "219 -> DB : Kurzschluss Raumtemperatursensor HK2"
- "220 -> DD : Unterbrechung Raumtemperatursensor HK1"
- "221 -> DE : Unterbrechung Raumtemperatursensor HK2"
- "224 -> E0 : Fehler am LON-Teilnehmer"
- "240 -> F0 : keine Verbindung zur Feuerungsregelung"
- "241 -> F1 : Primärluftklappe defekt"
- "242 -> F2 : Sekundärluftklappe defekt"
- "243 -> F3 : Abgasgebläse defekt"
- "244 -> F4 : Aschetür geöffnet"
- "245 -> F5 : Pellets nicht gezündet (Flammentemperatur nicht erreicht)"
- "246 -> F6 : Interner Elektronikfehler"
- "247 -> F7 : Sicherheitskette unterbrochen"
- "249 -> F9 : Rostreinigung defekt. Rost geht nicht in Ausgangsposition zurück durch eingeklemmte Pellet"
- "250 -> FA : Reinigungsmotor Nachheizschaltfläche defekt"
- "251 -> FB : Fördertechnik defekt"
- "252 -> FC : Brennstoffmangel erkannt (Flammentemperatur nicht erreicht)"
Sehr gut, und Fehlerhistorie 2 = 0x7510, 3 = 0x7519, 4 = 0x7522, 5 = 0x752B, 6 = 0x7534, 7 = 0x753D, 8 = 0x7546, 9 = 0x754F, 10 = 0x7558 nach gleichem Schema.
Der Prozessstatus auf 0x0B11
sensor:
### Prozessstatus [Roh]
- platform: vitoconnect
id: prozessstatus_roh
name: "Prozessstatus (Roh)"
address: 0x0B11
length: 1
unit_of_measurement: ""
accuracy_decimals: 0
filters:
- multiply: 1
internal: true
text_sensor:
### Prozessstatus
- platform: template
name: "Prozessstatus"
lambda: |-
int val = (int)id(prozessstatus_roh).state;
if (val == 0) {
return std::string("Ruhezustand");
} else if (val == 1) {
return std::string("Anheizen");
} else if (val == 2) {
return std::string("Regelbetrieb");
} else if (val == 3) {
return std::string("Roh 3");
} else if (val == 4) {
return std::string("Ausbrandphase");
} else if (val == 5) {
return std::string("Roh 5");
} else if (val == 6) {
return std::string("Roh 6");
} else {
char buf[20];
snprintf(buf, sizeof(buf), "Code %d", val);
return std::string(buf);
}
icon: "mdi:state-machine"
update_interval: 2s
Das hilft mir weiter. Vielen Dank!
Hast du die Adressen für die Eingänge 1+2 herausgefunden?
Update:
ich habe die Adressen gefunden:
Eingangsbyte 1: 0x0B23
Eingangsbyte 2: 0x0B24
Ausgangsbyte 1: 0x0B26
Ausgangsbyte 2: 0x0B25
by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)




