mikrocontroller.net

Forum: Haus & Smart Home KWB Kessel RS485 Protokoll


Autor: tomtrath (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

habe das Prtokoll des RS485 Schnittstelle der KWB Pelletsheizung zu 
dekodieren begonnen. Anbei die bisher Ergebnisse zusammengefasst.

Autor: ein anderer Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

leider hast Du keine Email-Adresse hinterlassen...
Habe auch einen KWB Kessel mit Comfort 3 Steuerung und bin an einem 
Gedankenaustausch interessiert.

Viele Grüße,
ein anderer Gast.

Autor: Thomas T. (thomas_t33)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du kannst mich unter tomtrath at gmx.at erreichen.

VG Thomas

Autor: Bodo (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Halol Thomas, leider bist du nicht ehr unter der angegeben Adresse 
erreichbar.
Mich würde mal der aktuelle Stand deines Projektes interessieren.
cu
Bodo

Autor: Thomas T. (thomas_t33)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Habe inzwischen eine Platine mit AT90CAN und Ethernetanbindung laufen 
mittels der ich den KWB Kessel auswerte und die Daten an meinen Hausbus 
(openHAB) weiterleite.
Zusätzlich steuere ich über die Platine mittels digitalen Potios den 
Status der Heizkreise, dies entspricht der Funktion der analogen 
Raumbediengeräte von KWB.

Anbei der Schaltplan, sowie die C-Routinen zum auslesen.

Grüße Thomas

Autor: eb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

da auch ich unseren Kessel in den Hausbus einbinden will bin ich sehr an 
deinen Erkenntnissen interessiert.

Ich bin noch nicht dazu gekommen mit deinen Code zu lesen. Welche Werte 
kannst du aus dem Bus auslesen?

Autor: Thomas T. (thomas_t33)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgende Informationen werden ausgelesen:
Status Störung
Status Ascheaustragung
Status Reinigung
Status Hauptrelais
Status Raumaustragung
Status Pumpe Boiler
Status Pumpe Heizkreis 1
Status Punpe Heizkresi 2
Temperatur Vorlauf Heizkreis 1
Temperatur Vorlauf Heizkreis 2
Temperatur Boiler
Temperatur Kessel
Temperatur Rücklauf
Temperatur Rauchgas
Temperatur Außensensor

Aus dem  Status Raumaustragung berechne ich auch noch die verbrauchte 
Menge an Pellets.

Grüße Thomas

Autor: Bodo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Thomas.
Muss sagen saubere Arbeit. Ich will eigentlich meine Easyfire mit meinem 
FHEM Projekt verheiraten, aber so wie ich das jetzt sehe, werde ich wohl 
nicht in der Lage sein, deinem Schaltplan in eine Platine umzuwandeln. 
Hab zwar schon kleinere Projekte mit Eagle umgesetzt, aber hier werde 
ich wohl passen müssen. mich würde mal interessieren, wie du den 
Verbrauch ermittelst. Ich habe bei mir eine Saugpumpe zum Befüllen und 
messe derzeit die Laufzeit der Pumpe. Über mehrere Monate hab ich mir 
einen kg/s Wert ermittelt, den ich dann hochrechnen kann.

Autor: eb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Halo Thomas,

hört sich echt super an! Das sind genau die Werte die ich auslesen 
wollte.

Entweder ich verstehe deinen Code nicht oder es fehlt ein Teil. Ich komm 
nicht drauf wie du welche Temperatur ausliest.
Wäre super wenn du noch ein paar Kommentare in deinen Code schreiben 
könntest.

Hast du eventuell noch eine Dokumentation des Aufbaus der KWB 
Nachrichten.

Autor: Thomas T. (thomas_t33)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
anbei der Letztstand der Protokollanalyse.

Grüße Thomas

Autor: eb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

vielen Dank für die super Dokumentation!

Autor: Bodo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
auch von mir ein Dankeschön für deine Doku.
Kannst du uns noch beschreiben, mit welchen Pins des Bedienterminals die 
RS485 Schnittstelle verbunden wird ?
Vorab vielen Dank.

@EB: da wir beide scheinbar die gleichen Interessen haben und wir uns im 
gleichen Stadium befinden, wollte ich dich mal fragen, ob wir das 
gemeinsam angehen können. Wir könnten uns dann ev. direkt austauschen 
und nur die Ergebnisse posten.

cu
Bodo

Autor: Markus Heberling (markus_h62) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine KWB Classicfire. Das Protokoll scheint das selbe zu sein, 
die Nachrichtenlängen unterscheiden sich jedoch. Ich habe auch mehr 
Temperaturen in der SenseMessage und die Positionen sind auch andere. 
Ich habe mir die Bitfelder in der CtrlMessage noch nicht angeschaut, ob 
da Ähnlichkeiten sind. Meine CtrlMessages sind auch kürzer (13 Byte 
anstatt 16).

Angehängt ist ein kleines Python Script, das den jetzigen Wissenstand 
den ich habe widerspiegelt.

Viele Grüße
Markus

Autor: Keith Sauvant (ksau)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

auch ich versuche, meiner Easyfire ein paar Daten zu entlocken... Ich 
habe am Bedienteil auf die RS485 A- und B-Ader zusätzlich einen 
RS485/USB-Konverter angeschlossen. Die andere Seite steckt in einem 
Raspberry pi und liest die Kommunikation momentan über PHP mit. Leider 
finde ich die von Thomas so schön dokumentierten Präambeln da nicht 
wieder :-( Habe ihn mal angeschrieben und werde auch selber noch ein 
wenig forschen, weiß aber gerade nicht so recht weiter...

Ich hänge einen Mitschnitt (enthält Zeilenumbrüche, evtl. in Wordpad 
oder ähnlichem öffnen, wenn sie nicht angezeigt werden) und das 
erzeugende Script mal hier an, vielleicht hat jemand eine Idee!?

Viele Grüße aus Aachen
Keith

: Bearbeitet durch User
Autor: Markus Heberling (markus_h62) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Es gibt RS485 Adapter, bei denen A und B vertauscht ist. Das sieht bei 
dir so aus. Es gibt bei dir Häufungen von 191 191. 191 ist 10111111 
binär, invertiert 01000000 und dann noch die Richtung umgedreht 00000010 
und damit dezimal 2. Damit hättest du den 2 2 Protokoll-Header.

Ich garantiere aber für nichts. :)

Viele Grüße
Markus

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

danke fürs Mitdenken :-)

Über eine Verpolung habe ich auch schon einmal nachgedacht... Würde sich 
das so äußern? Bitweise invertieren und die Richtung drehen?

2, 2, 51, 16 würden ja erwartet, müssten nach der Logik also:
191, 191, 51, 247 auftauchen. Tatsächlich finde ich:
191, 191, 97, 247 häufig. Danach sollte allerdings ein Zähler 
hochgezählt werden, ist aber so auch nicht feststellbar...

Gruß aus Aachen
Keith




Markus Heberling schrieb:
> Hallo,
>
> Es gibt RS485 Adapter, bei denen A und B vertauscht ist. Das sieht bei
> dir so aus. Es gibt bei dir Häufungen von 191 191. 191 ist 10111111
> binär, invertiert 01000000 und dann noch die Richtung umgedreht 00000010
> und damit dezimal 2. Damit hättest du den 2 2 Protokoll-Header.
>
> Ich garantiere aber für nichts. :)
>
> Viele Grüße
> Markus

Autor: Markus Heberling (markus_h62) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe keine Ahnung, ob das so aussehen würde... Da aber das eine 
Kabel die Investierung vom anderen ist, könnte ich mir das schon 
vorstellen.

Ich persönlich würde es einfach ausprobieren, kann dir natürlich nicht 
garantieren, dass du damit nichts kaputt machst. Meine Classicfire hat 
sich in der Hinsicht aber als sehr robust erwiesen :)

Ansonsten hatte ich Probleme als ich den Bus direkt am Bedienteil 
abgelesen hatte. An der Classicfire ist an der Seite eine Abdeckung wo 
die ganzen Kabel reingehen, da war bei mir ein freier RS485 Anschluß. Da 
ist jetzt mein USB Adapter dran und ich habe keine Probleme. Ich weiß 
allerdings nicht ob die Easyfire sowas auch hat.

Viele Grüße
Markus

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus und alle Mitleser,

Heureka, es tut! War wohl tatsächlich verpolt, danke für den Tipp!
Ich werde berichten, wie es sich weiter entwickelt...

Beste Grüße
Keith

Autor: B.Bonny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Keith,
da auch ich meine Easyfire auslesen will und mir erst noch einen RS485 
Adapter besorgen muss, wollte ich mal anfragen, welchen du eingesetzt 
hast. Da ich sowieso FHEM auf dem Pi laufen habe, würde mir die USB 
Variante am besten zusagen.
Vielleicht kannst du auch mal bitte posten, wo die beiden Datenleitungen 
an der Console abgegriffen werden.
Noch ne Frage zu deiner Anlage: hast du die Zuführung über Schnecke oder 
Sauger?
Lg
Bodo

Autor: Markus Heberling (markus_h62) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bodo,

ich habe folgenden USB Stick: 
http://www.amazon.de/gp/product/B00BGZT04K/ref=wms...

Der funktioniert bei mir auch mit dem Pi. Für FHEM habe ich angefangen 
ein Modul zu schreiben. Es unterstützt allerdings im Moment nur die 
ClassicFire. Vielleicht kannst du aber von da aus weitermachen für die 
EasyFire. Zum benutzen muss das in die fhem.cfg:
define Heizung KWB /dev/ttyUSB0@19200

Bei der ClassicFire gibt es an der Seite eine Abdeckung wo die ganzen 
Kabel rein gehen, da gab es bei mir auch direkt einen freien Anschluß 
für RS485. Ansonsten kann man auch direkt am Bedienteil abgreifen, bei 
mir war das alles beschriftet. Vielleicht ist das bei dir ja ähnlich.

Viele Grüße
Markus

: Bearbeitet durch User
Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Markus Heberling schrieb:
> ich habe folgenden USB Stick:
> http://www.amazon.de/gp/product/B00BGZT04K/ref=wms...

Witzig - ich auch :-)

> Bei der ClassicFire gibt es an der Seite eine Abdeckung wo die ganzen
> Kabel rein gehen, da gab es bei mir auch direkt einen freien Anschluß
> für RS485. Ansonsten kann man auch direkt am Bedienteil abgreifen, bei
> mir war das alles beschriftet. Vielleicht ist das bei dir ja ähnlich.

Bei der Easyfire:

- Deckel aufstellen
- Vorsichtshalber Heizung stromlos schalten (Schalter rechts vorne)
- Platte mit Bedienteil nach oben und vorne abziehen
- Die beiden Muttern an der Abdeckklappe unten abdrehen
- Abdeckklappe abziehen

Auf der dahinterliegenden Platine ist ein mit "RS485" beschrifteter 
Anschluss. Das Kabel kann man schön unten rausführen, wo auch die 
anderen langlaufen sollten.

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bodo,

B.Bonny schrieb:
> da auch ich meine Easyfire auslesen will und mir erst noch einen RS485
> Adapter besorgen muss, wollte ich mal anfragen, welchen du eingesetzt
> hast. Da ich sowieso FHEM auf dem Pi laufen habe, würde mir die USB
> Variante am besten zusagen.
> Vielleicht kannst du auch mal bitte posten, wo die beiden Datenleitungen
> an der Console abgegriffen werden.

s. meinen Beitrag von heute.

> Noch ne Frage zu deiner Anlage: hast du die Zuführung über Schnecke oder
> Sauger?

Ich habe eine Schneckenzuführung.

Beste Grüße
Keith

: Bearbeitet durch User
Autor: B.Bonny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi markus, hi Keith,
Danke für die schnelle Reaktion. Voll witzig, aber das war genau der 
gleiche Adapter, den ich auch schon im Warenkorb liegen hatte. Jetzt hab 
ich ihn bestellt.
Mal ne Frage so nebenbei: Seht ihr da keine Probleme wg. der Garantie? 
Ich mein aus meiner Sicht, hätte ich da keine Bedenken, aber ich weiß 
noch nicht wie mein Installateur darüber denken wird. Mit dem hab ich ja 
einen Wartungsvertrag.
So, jetzt erst mal abwarten, bis das Teil angekommen ist.
cu
Bodo

Autor: Bodo Bonny (gelbwichtel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Markus, hi Keith,
mein Adapter ist heute gekommen. Das war eine der minimalistischsten 
Lieferungen, die ich je bekommen habe. Adapter und lediglich die 
Rechnung. Der Pi erkennt das Teil, die Initialisierung in Fhem 
funktioniert auch schon mal. Zum Verbinden mit der KWB hätte ich noch 
ein paar Fragen, da ich unmittelbar nach dem Verbinden entweder eine 
Störung Rauchgasmelder oder Netzwerkfehler bekomme, je nachdem wie ich A 
bzw. B auflege. (also entweder A<->A B<->B oder A<->b B<->A). Den 
Anschluss hab ich am Bedienteil abgegriffen.
Habt ihr den Jumper zum Durchschleifen der Masse im Status open oder 
closed ?
Muss der Bus terminiert werden ? Wenn ja wie ? Wenn ich mich recht 
erinnere waren da 120 Ohm zwischen A und B zu schalten.
Vorab vielen Dank für eure Unterstützung.
Bodo

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bodo,

anschließen musst Du A-A und B-B. Ich hab's nicht am Bedienteil sondern 
an der Platine angeklemmt wie oben beschrieben, ist evtl. wegen der 
Terminierung relevant. Jumper habe ich alle drauf gelassen. Eine 
Terminierung hat der Adapter meiner Meinung nach an Board. Die Fehler 
hatte ich auch - allerdings nur beim Einschalten, nicht im laufenden 
Betrieb. Ich weiß noch nicht, wo die herkommen...

Gruß
Keith

Bodo Bonny schrieb:
> Hi Markus, hi Keith,
> mein Adapter ist heute gekommen. Das war eine der minimalistischsten
> Lieferungen, die ich je bekommen habe. Adapter und lediglich die
> Rechnung. Der Pi erkennt das Teil, die Initialisierung in Fhem
> funktioniert auch schon mal. Zum Verbinden mit der KWB hätte ich noch
> ein paar Fragen, da ich unmittelbar nach dem Verbinden entweder eine
> Störung Rauchgasmelder oder Netzwerkfehler bekomme, je nachdem wie ich A
> bzw. B auflege. (also entweder A<->A B<->B oder A<->b B<->A). Den
> Anschluss hab ich am Bedienteil abgegriffen.
> Habt ihr den Jumper zum Durchschleifen der Masse im Status open oder
> closed ?
> Muss der Bus terminiert werden ? Wenn ja wie ? Wenn ich mich recht
> erinnere waren da 120 Ohm zwischen A und B zu schalten.
> Vorab vielen Dank für eure Unterstützung.
> Bodo

Autor: Markus Heberling (markus_h62) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Netzwerkfehler etc. bekomme ich wenn der Adapter an der KWB 
angeschlossen ist, aber nicht im USB steckt. Hat bei mir bis zur 
Sicherheitsabschaltung geführt. Auch wenn ich direkt am Bedienteil 
abgegriffen habe, gab es Fehler, aber nicht so schlimme.

Terminiert habe ich nichts, ich habe irgendwo gelesen dass das bei 
Direktverbindung nicht nötig wäre, sondern nur wenn man mehrere RS 485 
Geräte hintereinanderschaltet. Das würde dann auch die Probleme 
erklären, wenn ich am Bedienteil anschließe. Ich bin mir da aber nicht 
sicher.


Viele Grüße
Markus

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

alles äußerst interessant hier alles.

Ich habe seit November 2013 eine KWB Easyfire.
Mein Plan ist mir für die Easyfire die Intercom Schnittstelle zu holen, 
und die Heizung via Fhem über Netzwerk mit Modbus aus zu lesen und zu 
steuern.

Hat das zufällig auch schon mal jemand getestet oder in Betracht 
gezogen?

Grüße
Daniel

Autor: Marco O. (marco_o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Daniel,

ja, in Betracht hatte ich das schon mal gezogen, allerdings waren die 
bei KWB an der Hotline nicht sehr auskunftsfreudig. Der Techniker meinte 
da haben sich schon andere dran versucht. Eigentlich schade, dass die 
nicht an einer offenen Kommunikation interessiert sind.

Aktuell versuche ich die Daten über den Adapter auszulesen den Keith 
auch verwendet hat.
Sieht ziemlich erfolgsversprechend aus, allerdings ist es bestimmt ein 
hartes Stück Arbeit auch da an mehr Informationen zu kommen.

Am Besten wäre wenn sich KWB nicht so geheimnisvoll anstellen würde und 
eine Schnittstelle per TCP/IP und REST-Webservices zur Verfügung stellen 
würde :-)

Grüße
    Marco

Autor: Pellet (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

für die KWB Kessel gibt es auch ein Optionsmodul mit Ethernet 
Schnittstelle. Kommunikation läuft über Modbus TCP. Kostet gut 100€, 
wenn ich mich recht erinnere.
Im Lieferumfang ist dann eine CD mit der Protokollbeschreibung und div. 
Testtools.

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pellet schrieb:
> Hallo,
>
> für die KWB Kessel gibt es auch ein Optionsmodul mit Ethernet
> Schnittstelle. Kommunikation läuft über Modbus TCP. Kostet gut 100€,
> wenn ich mich recht erinnere.
> Im Lieferumfang ist dann eine CD mit der Protokollbeschreibung und div.
> Testtools.

DAS klingt natürlich super interessant, höre ich zum ersten Mal. Kannst 
Du da noch mehr zu sagen? Wie heisst das Ding?

Autor: Pellet (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirklich viel kann ich im Moment noch nicht berichten. IBN wird wohl 
erst in 3 Monaten sein, dann weiß ich mehr. Die CD habe ich im Büro, nur 
komme ich dort so schnell nicht wieder hin.

Wie das Ding heißt, weiß ich grad nicht. Aber da sollte Google ein 
Helfer sein.

Das Modul wird auf die Rückseite vom Bediendisplay aufgesteckt und auch 
darüber mit Strom versorgt. IP wird über das Display eingestellt.

Der Techniker, der die Kessel aufstellte, berichtete, dass die Kunden 
sehr zufrieden mit dieser Kommunikationslösung waren (Einbindung in 
Gebäudeleittechnik).

Zu den interessanten Sachen:
Schreibzugriff hat man auf Sollwertparameter und Kessel ein/aus.
Gelesen werden können unglaublich viele Status- und Störmeldungen. 
Wahrscheinlich alle, die der Kessel zu bieten hat.

Ich hatte mir den Inhalt der CD mal flüchtig angesehen. Es sind 
allerhand Excel Tabellen mit den Registerbeschreibungen für verschiedene 
Kesselmodelle enthalten. Weiterhin einige Kesselgrafiken und 
Diagnosetools für die Kommunikationsverbindung.

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du sprichst aber nicht von der "KWB Comfort Intercom", oder? Das Ding 
scheint deutlich teurer zu sein:

http://knx-user-forum.de/53714-post49.html

Autor: Pellet (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß es nicht. Es ist einfach eine Karte, die an das Display 
angesteckt wird. Der Vertreter hatte mir damals den Preis genannt. Über 
100, aber keine 150 Euro. Mit der Beschaffung hatte ich dann aber nichts 
zu tun.

Autor: Marco O. (marco_o)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also ich hatte vor nem guten Monat ein paar mal mit ein diversen 
Technikern bei KWB telefoniert, aber von der 100 Euro Lösung hatte mir 
dort keiner was gesagt. Nur von der 250 Euro Intercom-Karte wo man dann 
noch mal Geld für ne Visualisierungssoftware ausgeben sollte, weil man 
das Protokoll nicht hat. O-Ton: "Das rentiert sich nur für große 
Wohnanlagen"

Wenn es also eine Karte mit ner Protokollbeschreibung gibt würde ich die 
direkt bestellen, bevor ich mich da nächtelang zur Protokollanalyse 
hinsetze :-)

Autor: ksau (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco O. schrieb:
> Hi,
>
> also ich hatte vor nem guten Monat ein paar mal mit ein diversen
> Technikern bei KWB telefoniert, aber von der 100 Euro Lösung hatte mir
> dort keiner was gesagt. Nur von der 250 Euro Intercom-Karte wo man dann
> noch mal Geld für ne Visualisierungssoftware ausgeben sollte, weil man
> das Protokoll nicht hat. O-Ton: "Das rentiert sich nur für große
> Wohnanlagen"
>
> Wenn es also eine Karte mit ner Protokollbeschreibung gibt würde ich die
> direkt bestellen, bevor ich mich da nächtelang zur Protokollanalyse
> hinsetze :-)

me too :-)

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also ich meine die InterCom Schnittstelle das ist die die Modbus über 
TCP spricht.

Kostet bei meinem Monteur 450€
Ist bestellt und wird hoffentlich bald eingebaut.
Dann mehr dazu :-)

Grüße
Daniel

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

habe gerade einmal das Angebot raus gesucht.

Hier die Infos:
KWB Comfort InterCom ist eine Schnittstelle für den Datenaustausch
zwischen der Regelung KWB Comfort 3 und Fremdsystemen wie zB Regelungs- 
oder Visualisierungssystemen. Alle Kesselbetriebszustandsparameter
sowie einzelne Alarme können von der Regelung KWB Comfort ausgelesen 
werden. Zusätzlich können folgende Parameter vom Fremdsystem in der 
Regelung KWB Comfort verändert werden:
- Anlage Aus/Ein
- Kesseltemperatur Soll
- Alarme beheben
- Laufzeit Mischer Rücklaufanhebung
- Stehzeit Mischer Rücklaufanhebung
- Puffer 0 Temperatur Maximum
- Puffer 0 Temperatur Minimum
- Puffer 0 Programm
Als Kommunikationsprotokoll wird bei seriellen Verbindungen das
Modbusprotokoll "Modbus RTU" und bei Netzwerkverbindungen das
Modbusprotokoll "Modbus TCP" verwendet. Folgende Befehle des 
Modbusprotokolles werden von der KWB Regelung unterstützt:
- Read Holding Registers
- Write Single Register
- Write Multiple registers
Systemvoraussetzungen:
- Fremdsystem modbusfähig (Modbus-Client)
- Netzwerk-, serielle oder Modem-Karte
- Verkabelung muss bauseits durchgeführt werden
- nicht kombinierbar mit KWB Comfort Visio und KWB Comfort SMS
KWB Comfort InterCom ist für KWB Easyfire, KWB Multifire und KWB
Powerfire erhältlich.

Grüße
Daniel

Autor: Thomas T. (thomas_t33)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wird interessant, was die Intercom wirklich kann. Vor allem welche 
Parameter wirklich verändert werden können, mir wurde von KWB bisher 
immer gesagtr, dass nur sehr wenige Parameter von extern veränderbar 
sind. Die von Dir aufgezählten sind auch nicht gerade die erste Wahl die 
mir vorschweben würde. Hast Du eine Dokumentation wo die Intercom 
angeschlossen wird? Am digitalen Bedienteil, oder an der Kesselplatine?

Bei meiner Lösung habe ich die vorhandenen Schnittstellen am Kessel 
genutzt. Dabei sind vorallem die Heizkreise interessant. Man kann die 
analogen Bedienteile von KWB anschließen, diese sind nicht viel mehr als 
ein geschaltener Widerstand und ein Temperatursenor. Man kann also ein 
digitales Potio an diesen Stchnittstellen anschließen und damit den 
Modus der Heizkreise steueren (Tag/Nacht/Aus/Auto) bzw könne man die 
Raumtemperatur dem Kessel mitteilen.

VG Thomas

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also was ich schon mal sagen kann, ist das es an der Kesselplatine 
angeschlossen wird.

Doku habe ich zwar angefragt aber leider noch nicht bekommen.
Ich hoffe ich bekomme die Sachen noch dann kann ich mehr Informationen 
liefern.

Grüße
Daniel

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also so wie es aussieht ist das Teil das Geld nicht wert.
Es kann wirklich nur die oben beschriebenen Sachen.

Alternativen:
- So wie ihr es gebaut habt. Mit Anschluss an die analoge Schnittstelle.
- Aktor mit Widerstand zwischen Heizung und Außenfühler. So das der 
Heizung vorgegaukelt wird es wären 25°C draußen. Somit schaltet sich der 
Heizkreis ab.

- Austauschen der Heizungssteuerung:
Hierzu etwas mehr. Alle Fühler und Steuerungselemente der Heizung werden 
von der Standard Steuerung entfernt und an eine andere Steuerung 
angeschlossen.
Diese übernimmt dann vollständig die Steuerung der Heizung. Die 
Steuerung der Heizung wird so zu sagen verdummt.
Getauscht wird das ganze durch diese:
http://ta.co.at/de/produkte/uvr1611/frei-programmi...

Frei Programmierbar, bis zu 60 Fühler Sollten diese nicht ausreichen, 
kann das ganze entsprechend erweitert werden. Mein Heizungsbauer hat 
diese schon öfters verbaut.
Bis zu 10h Programmieraufwand von ihm selbst. Jedoch kann man damit dann 
allen Schabernack treiben.
Diese ist dann wie man sieht KNX/EIB fähig.
Kaufpreis liegt bei rund 550€ mit dem Bootloader:
http://ta.co.at/de/produkte/pc-anbindung/bootloade...

Grüße
Daniel

Autor: unterwurzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

Ich habe mir das Visio Interface gegönnt. (inkl. dongel - den man nicht 
braucht :-( )
Man kann per TCP/Modbus die Register auslesen.
Hier ein Beispiel:
http://www.cloudshark.org/captures/d36760e896a2?fi...
Derzeit versuche ich von der Visualisierung auf die Register rück zu 
schließen.
Für Intercom wurden sind die Hold Register bekannt.

lg

Autor: unterwurzer (Gast)
Datum:
Angehängte Dateien:
  • preview image for 1.JPG
    1.JPG
    207 KB, 1172 Downloads
  • preview image for 2.JPG
    2.JPG
    136 KB, 1069 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Intercom - Modbus

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag zusammen,

den Thread finde ich sehr interessant, da ich grade dabei bin,
eine Easyfire 12kW zu bestellen und sehr gerne Daten auslesen möchte.

Das Comfort Visio Ding ist natürlich preislich jenseits von Gut und 
Böse,
und im Prinzip brauche ich das auch nicht. (Würde ~€2000,- kosten!)

Das Comfort InterCom wäre für mich mit ~€640,- preislich grade noch
akzeptabel, wobei ich noch versuche zu verhandeln.

(Preise jeweils brutto und bei ersterem mit 'Installation'.)

Nach obiger Lektüre stellt sich mir aber die Frage, ob ich nicht mit 
einem
USB-Interface auskommen kann? Einen Raspberry Pi hätte ich grade eh' 
über.

Kann ich also mit dem rs-458-USB-Interface und einem Pi im Prinzip 
dasselbe
erreichen wie mit dem Comfort InterCom?

Ich will im wesentlichen regelmäßig Daten auslesen und speichern.

Über Feedback würde ich mich sehr freuen!

Viele Grüße
Matthias

Autor: Leo Betz (limats)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

kannst du bitte kurz schreiben, welches digitale Poti du für die 
Steuerung verwendest und wie du es ansteuerst?
Hab die Info nicht in deinem Schaltplan gefunden.

Aus irgendeinem Grund kommt mit meinem RS-458-USB-Adapter von meiner 
Easyfire nur Schrott an, der nichts mit euren Protokollbeschreibungen 
gemeinsam hat.
Hab mir deshalb vorerst 1-wire-Temperatursensoren neben die Fühler der 
KWB geklebt. Zusätzlich zähle ich mit einem Reedkontakt die Umdrehungen 
der Förderschnecke. Mit diesen Werten und den Ein-/Ausgängen (Leistung, 
Urlaubsmodus, ...) der Steuerung hab ich das wichtigste für die 
Protokollierung in meinem FHEM.

Aber das Umschalten von Nacht/Tag/Auto würde ich sehr gern noch vom FHEM 
aus machen können.

Viele Grüße
Leo

Autor: alex h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel schrieb:
> .... Mein Heizungsbauer hat
> diese schon öfters verbaut.
> Bis zu 10h Programmieraufwand von ihm selbst. Jedoch kann man damit dann
> allen Schabernack treiben.
> Diese ist dann wie man sieht KNX/EIB fähig.
> Kaufpreis liegt bei rund 550€ mit dem Bootloader:
> http://ta.co.at/de/produkte/pc-anbindung/bootloade...
>
> Grüße
> Daniel

Hallo Daniel,
ist dein Heizungsbauer zufälling im Raum Frankfurt am Main tätig?
Meine Regelung der Solaranlage und des Kaminofens hat den Geist 
aufgegeben und da ich sowieso eine neue dafür brauche hatte ich gedacht 
die KWB Pelletheizung und evtl. die Paul Lüftungsanlage mit einbinden zu 
lassen.
Doch dafür brauche ich einen Profi.

Grüße Alex

Autor: Thomas T. (thomas_t33)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leo,

ich habe den MCP4651 mit 10kOhm eingesetzt. Ist ein Dualpotiometer mit 
I2C Interface.

Grüße Thomas

: Bearbeitet durch User
Autor: eb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei uns im Keller steht eine KWB Easyfire Anlage die ich gern über 
Modbus (Ethernet oder RS232) in meinen Hausbus einbinden würde.

Hat einer von euch versucht die von unterwurzer genannten Register zu 
lesen oder zu schreiben? Wenn ja, bei welchem Brenner und mit welche 
Firmwareversion?

@unterwurzer
Vielen Dank für die genannten Register. Bei welcher Anlage sind diese 
Register gültig? Passen sie zu einer Easyfire?
Konntest du mittlerweile noch mehr Register zuordnen?

@Bodo
Tut mir leid, dass ich dir nicht geantwortet habe. Ich war schon lang 
nimmer hier und hab deine Antwort überlesen. Nach dem was ich hier noch 
so gelesen hab, ist die Modbus Variante für mich um einiges 
interessanter.

Autor: Leo Betz (limats)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

reicht dir die Auflösung des digitalen Potis, um die tatsächliche 
Temperatur an die Heizung zu übermitteln oder verwendest du das Poti 
nur, um den Modus (Nacht, Tag, auto) einzustellen? Wenn man die 
Temperatur auf 0,1 Grad genau übergeben möchte, braucht man je schon 
eine sehr feine Auflösung.

@alle:
Bekomme immer noch Schrott, wenn ich auf den Bus zugreife. Verwende 
einen DIGITUS DA-70157. Hat irgend jemand zufällig Erfahrung mit dem 
Adapter?
Was für Kommunikationsparameter (Baud, Parity, ...) verwendet ihr genau?

Gruß
Leo

Autor: Anton (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich besitze und Kwb Classicfire 30 kwh und einen Powerdog LPR der Firma 
Eco Data.
Da ich jetzt gerne die Leistungskurve meines Boilers, Puffer etc. 
angezeigt und aufzeichnen wollte habe ich mich gefragt ob ich nochmal 
sensoren brauche, oder obs schon was fertiges gibt um es aus der Heizung 
direkt auszulesen.

Je mehr man auslesen kann umso besser!

Hat es jemand geschafft was brauchbares zu entwickeln oder hat sich das 
alles im Sand verlaufen?

Lg Anton

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab eine KWB Easyfire im Keller. Wie ich aus den vorhergehenden 
Posts entnehmen kann sollte ein Anbindung bzw. ein Auslesen der 
Parameter über den Raspi möglich sein.

Hat jemand von euch das schon am laufen? Wenn ja würde mich brennend 
Interessieren wie das ganze auf den Raspi eingerichtet wird. Die 
grundsätzliche Anbindung via USB-Converter etc. ist mir klar.

LG

Autor: joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Alles sehr interessant!

Ich hab ein Ethernet-Modul bei meinem KWB-Kessel dabei, kann damit aber 
nix anfangen!! Hab's mal mit einem Ethernet-Sniffer probiert.. von der 
IP des Kessels bekomme ich gar nix!!

Was mache ich falsch?

Gibts bez. Raspi schon was Neues?

LG joe

Autor: Unterwurzer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Vielleicht hilft es jemanden weiter.
Ich bin im Besitz einer Visio und habe einen Mitschnitt der 
Kommunikation gemacht. (Wireshark)

Mir gefällt die Idee mit dem Respi. Die Daten noch rein in die Synology 
(SQL) - das wäre dann Supi.

Naja - ein Ziel braucht der Mensch :-)


Sollte ich euch helfen können mit irgendwelchen Logs - gern :-)

By the way: Visio ist nicht besonders stabile....

Autor: Martin Leitner (martinleitner75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Kollegen,

wir besitzen einen Firefox ENP15, der offensichtlich auf dem selben 
Protokoll basiert - leider aber nur der Frame. Da die Firma dieses 
Frühjahr in Konkurs ging, werde ich wohl nicht umhin kommen, das 
Protokoll selber zu entschlüsseln.

Vielleicht gibt es ja noch jemanden, der daran gern mitarbeiten würde?
Der ENP15 verfügt genau wie der KWB-Kessel über eine RS485, Datenrate 
ist ebenfalls 19200, 8bit, no parity.

In der Protokollbeschreibung von Thomas T. fehlt jedenfalls noch das 
Längenbyte: Das zweite Byte (bzw. bei dem was ihr als "Sense-Frame" 
bezeichnet, das dritte) enthält die Anzahl der Bytes in einem Frame 
inkl. den führenden 0x02 und dem Längenbyte selbst, aber ohne die 
Stuffingbytes.

Markus Heberling hat dies in seiner Version aber schon berücksichtigt.

lg,
Martin

Autor: Martin Leitner (martinleitner75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fortschritt beim Protokoll dekodieren:

Inzwischen kann ich etliche Temperaturwerte auslesen, allerdings kann 
ich einige aufgrund ähnlicher Werte zum Messzeitpunkt (Heizung ist ca. 
250 km weg; ich arbeite derzeit nur mit geloggten Daten) nicht 
auseinanderhalten.

Die Temperaturwerte berechnen meine Vordenker hier etwas "kompliziert" 
und mit leichtem Fehler. Offensichtlich handelt es sich um einen 
2-Byte-Integer im Big-Endian-Format (High-Byte kommt zuerst):
   Temperatur = (signed short)( data[n] * 256 + data[n+1] ) // in Zehntel Grad

Das Ganze dividiere ich dann noch durch 10.0. Das sollte auch für 
negative Temperaturen richtig funktionieren, derzeit habe ich aber keine 
zum Testen.

Ebenfalls kann ich fast immer die Checksumme richtig berechnen.
"fast" heißt von 9600 getesteten waren 10 nicht übereinstimmend. Es 
schaut nach einem systematischen Fehler aus: Checksumme im Frame bei 
allen zehn Fehlerfällen 253, meine berechnete 2.

Und hier der Algorithmus:
Berechnet wird über den ganzen Frame inkl. dem 0x02 am Anfang (bei 
Frames mit 0x02 0x02 nur einmal), length ist gleich der Framelänge exkl. 
Checksumme.

int Checksum(unsigned char* data, unsigned char length)
{
    int i;
    unsigned char crc = 0;

  crc = data[0];   // = 0x02
  for (i = 1; i < length; i++)
  {
    crc = rotl(crc, 1);
    if (crc + data[i] > 255)
    {
      crc = crc + data[i] + 1;
    }
    else
      crc = crc + data[i];

  }
  return crc;
}

: Bearbeitet durch User
Autor: Hanesch Kim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wollte nochmal hierrein werfen ob schon lauffähige Lösungen entstanden 
sind ?

Besitzte auch eine KWB Easyfire 25 und wäre an einer Lösung zum Auslesen 
interessiert ?

mfg

Autor: Martin Leitner (martinleitner75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hanesch,

meine Lösung funktionert seit ca. einem Jahr sehr brauchbar. Anfang des 
Jahres hatte ich mal mit Keith Sauvant Kontakt. Bei ihm dürfte es 
seitdem auch ganz gut laufen.

lg,
Martin

Autor: Hanesch Kim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie genau funktioniert deine Lösung ?

Auch gerne per Mail : hanesch.kim at gmail.com

mfg

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

hier meine Lösung live im Betrieb:
http://eosl.de:808/kwb_log.php

Bei Interesse kann ich sie gerne mal zum Nachbau dokumentieren.

Viele Grüße aus Aachen
Keith

Autor: Hanesch Kim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie genau hast du dein Projekt aufgebaut ?

Sind die angezeigten Daten alles was möglich ist ? Wie schauts mit 
Alarms aus ?
Bin jedoch sehr interessiert an deinem Projekt.
mfg

Autor: Keith Sauvant (ksau)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist alles, worauf ich Zugriff habe. Martin, hast Du darüber hinaus 
gehende Daten?

Alarme habe ich noch nicht eingebaut. Ich nutze derzeit eine externe 
Lösung, die auf das hier zugreift und mich benachrichtigt, wenn die 
Kesseltemperatur unplausibel niedrig ist (Pellets alle in der Regel). 
Das funktioniert ganz gut.

Autor: Hanesch Kim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas T hatte ja noch folgendes ausgelesen :
Folgende Informationen werden ausgelesen:
Status Störung
Status Ascheaustragung
Status Reinigung
Status Hauptrelais
Status Raumaustragung
Status Pumpe Boiler
Status Pumpe Heizkreis 1
Status Punpe Heizkresi 2
Temperatur Vorlauf Heizkreis 1
Temperatur Vorlauf Heizkreis 2
Temperatur Boiler
Temperatur Kessel
Temperatur Rücklauf
Temperatur Rauchgas
Temperatur Außensensor

Kannst mir gerne nähere Informatioenen zu deiner Lösung per Mail an 
hanesch.kim at gmail.com zukommen lassen.

Würde mich freuen.

mfg

Autor: Hanesch Kim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Keith,

bin dennoch an deiner Lösung interessiert. Kanns du diese mal kurz 
beschreiben ?

mfg

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite gerade an home-assistant (http://www.home-assistant.io) 
Integration für den KWB Easyfire Kessel.

Zu dem Zweck arbeite ich an einer neue Python Implementierung unter 
https://github.com/bimbar/pykwb . Vielleicht kann das die eine oder 
andere Frage beantworten, oder der eine oder andere hier etwas dazu 
beitragen.

Grüße

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pull Request für homeassistant ist raus, sollte in Version 0.39 oder 
0.40 unterstützt sein.

https://github.com/home-assistant/home-assistant/pull/5760

Autor: Bodo Bonny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo bimbar,
hätte schon Interesse dich hierbei zu unterstützen, allerdings bin ich 
auch erst durch dich erst auf home-assistent gestoßen. Bisher war und 
bin ich nur in der FHEM Welt unterwegs. Kannst du mir vielleicht noch 
Infos zur Anbindung geben, wie ich die Anbindung hard- und softwaremäßig 
vornehmen muss ?
cu

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwaremäßig entweder direkt mit einem RS485 Adapter auf Klemme 25, 
oder mit einem RS485-Ethernet Konverter, ich denke, ich habe den hier 
benutzt: http://de.usriot.com/p/Ethernet-Seriell-Konverter/ .

Software wie in dem PR dokumentiert.

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Andreas D. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich hoff ihr könnt mir bei meinem Problem helfen. Ich hab mir so einen 
RS485 <-> LAN Konverter besorgt und diesen an meinem KWB Easyfire 
angeschlossen. Mit dem Raspberry Pi bekomme ich mit dem grabserial.py 
von oben(Markus Heberling) (umgebaut auf tcp) Temperaturwerte raus, nur 
irgendwie passt da die Berechnung nicht. Kann mir da jemand helfen?

Beispiel:
03: 061 002 1555.500 Kesseltemperatur

Ich gehe mal davon aus, dass das der Ist Wert sein sollte. Der wäre laut 
Anzeige beim Ofen 58 Grad. bzw. Soll 60 Grad.
(Woher kommt diese Formel? message.data[i]*25.5+message.data[i+1]/10))

Ich hoffe jemand kann mir helfen!

Vielen Dank!

Hab das ganze auch mit dem homeassistent probiert. Da komm
ich leider nicht so richtig ins laufen, bei dem werden keine Werte 
ausgelesen. :-( Es schaut bei dem python Skript so aus, als ob der nie 
das Start und Endflag im Stream findet.

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Formel ist eine Näherung, um aus 2 aufeinanderfolgenden Bytes 
einen signed short zu machen.

Korrekt wäre

temp = message.data[i] * 256 + message.data[i + 1]
if (temp > 32767):
    temp = temp - 65536
temp = temp / 10


Von Kessel zu Kessel (vielleicht je nach Ausstattung) scheinen die 
Paketformate sich erheblich zu unterscheiden. In dem PDF ganz oben wird 
eine Sense-Paketlänge von 51 angenommen, bei mir sind es 61 und bei 
Andreas D. sind es 95.
Auch CTRL Pakete sind unterschiedlich lang, 16 bei mir und 24 bei 
Andreas D. .

Möglicherweise gibt es Steuerflags in den Paketen, die uns unbekannt 
sind und ein Paketformat definieren, oder vielleicht ist es auch einfach 
eine Frage der jeweiligen Firmware Version.

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thema Start- und Endflags.

Ich hatte ursprünglich angenommen, daß es eine Folge von mehreren Bytes 
am Paketanfang gibt, in der Protokollanalyse oben sind das:

CTRL: 2 16 17
SENSE: 2 2 51 16

Nach Analyse des Dumps von Andreas D. ist mir klargeworden, daß das 
anders funktioniert:

CTRL: 2
SENSE: 2 2

Alle anderen "2" im Datenstrom werden als "2 0" kodiert. Jede "2" ohne 
"0" dahinter bedeutet Paketanfang.

Autor: bimbar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Header und Protokollversion

Ich gehe davon aus, daß das Format wie folgt ist:

Startflag (2 bzw 2 2)
Paketlänge
Protokollversion
laufende Nummer
<PAKET>
Checksumme

Sowohl mein Kessel als auch die Protokollanalyse oben haben Version:
CTRL: 17
SENSE: 16

Andreas D. hat
CTRL: 33
SENSE: 32

Mal angenommen, an der Stelle ist wirklich die Version zu finden.
Alle Lösungen hier in dem Thread funktionieren mit Version 17/16.

Autor: Martin Leitner (martinleitner75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo bimbar,

deine Analyse ist soweit größtenteils richtig.
"Protokollversion" ist aber eher ein "Frame-ID".

Bei unserem ENP15 sind diese IDs so vergeben:
17: Nachricht von Bedienteil an Kessel
16: Antwort vom Kessel (an Bedienteil)
65: Nachricht von Bedienteil an Heizkreisregler
64: Antwort vom Heizkreisregler (an Bedienteil)

lg,
Martin

Autor: Andreas D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal (derzeit schaut's nicht schlecht aus) Werte rausbekommen.

Ich werde das mal einige Zeit beobachten ob das so stimmen kann...
(Änderungen siehe github)


Vorlauf Ist: I: 0 T: 0(°C) V: 22.1
Boiler 0 Ist: I: 2 T: 0(°C) V: 56.8
Kessel Ist: I: 3 T: 0(°C) V: 41.2
Aussentemperatur: I: 6 T: 0(°C) V: 15.1
Raum Ist: I: 9 T: 0(°C) V: 19.4

Autor: Guiom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bimbar schrieb:
> Pull Request für homeassistant ist raus, sollte in Version 0.39
> oder
> 0.40 unterstützt sein.
>
> https://github.com/home-assistant/home-assistant/pull/5760

Hallo Bimbar

Supper Arbeit!
hast du was dagegen wenn ich versuch dein kode auf arduino zu portieren 
?
ich brauche für mein home automation Arduino basierte geraten.

klar logich ich werde den kode zuverfügen stellen !

ps Sory für mein Deutch ich komme aus Frankreich !

Autor: MartinB (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich habe zwar eine Multifire-Anlage, aber auch mit Comfort3 Steuerung.
Da habe ich mir gedacht, das dies ein gutes erstes Projekt sein könnte 
;-)Habe nun einen Raspberry Pi Zero mit Home-Assistant zum laufen 
gebracht,
bekomme allerdings nur mit dem grabserial.py von oben (Markus Heberling) 
Werte aus dem Bus (allerdings mit Fehlermeldung).
Im Home-Assistant steht bei allen Sensoren nur "unavailable".

Hat jemand einen Tipp für mich?

Besten Dank im voraus,
MB

Autor: Martin Leitner (martinleitner75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin B,

ich vermute, dass die Daten bei deiner Mulitfire einfach andere sind 
bzw. an anderen Positionen stehen. Wenn dem so ist, bleibt wohl nur, 
durch "gut Raten" möglichst viel herauszufinden. Also: Ein paar 
Datenframes aufzeichnen  und den rohen Inhalt (am besten mit Hex-Zeichen 
ausgeben). Zeitgleich Werte auf der Kesselsteuerung ablesen, 
Temperaturwerte händisch in Hex umrechnen und schauen,  ob du diese in 
den Daten wiederfindest.
Das grabserial.py habe ich nie verwendet, aber vielleicht hilft es 
trotzdem, wenn du die Fehlermeldungen mal hier postest.

lg,
Martin

Autor: JamesB (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

aufbauend auf dem FHEM Projekt von Markus Heberling (oben) habe ich 
dieses Modul seit einiger Zeit am Laufen. Die wichtigsten Parameter kann 
ich damit auslesen. Vielleicht hilft es ja weiter.

Gruß JamesB

Autor: haros (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

meine Easyfire (mit Comfort3-Steuerung) schickt auch die Botschaften 32 
und 33. Ich habe das Python-Skript von oben etwas angepasst (siehe 
Anhang), so dass ich damit die ersten Signale dieser Botschaften parsen 
kann:
aSignalMap32 = {
    #Name: Type=signed, Offset, Length, Factor, Unit
    'Vorlauf Ist HK1': ('s',6, 2, 0.1,'°C'),
    'Rücklauf Kessel': ('s',8, 2, 0.1,'°C'),
    'Boilertemperatur': ('s',10, 2, 0.1,'°C'),
    'Kesseltemperatur':  ('s',12, 2, 0.1,'°C'),
    'Puffertemperatur 2': ('s',14, 2, 0.1,'°C'),
    'Puffertemperatur 1': ('s',16, 2, 0.1,'°C'),
    'Aussentemperatur HK1': ('s',18, 2, 0.1,'°C'),
    'Rauchgas': ('s',20, 2, 0.1,'°C'),
    'Unterdruck': ('s',34, 2, 0.001,'mBar')}

aSignalMap33 = {
    #Name: Type=bit, Offset, Bit
    'Kessel Hauptrelais': ('b',1,2),    
    'HK1 Pumpe': ('b',1,5),
    'HK1 Mischer AN': ('b',1,7),
    'HK1 Mischer ZU': ('b',2,0),
    'Boiler Pumpe': ('b',2,5),
    'Puffer Pumpe': ('b',2,7),
    'Keine Stoerung': ('b',3,0),
    'Drehrost': ('b',3,6),
    'Reinigung': ('b',3,7),
    'Raumaustragung Saugturbine': ('b',4,1),
    'Kessel Hauptschuetz': ('b',9,1)}

Hat jemand weitere Signale von diesen Botschaften herausgefunden?

Autor: Martin B. (beckerm)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe dein Script ausprobiert, und es läuft kurze Zeit bis eine 
Botschaft 33 gelesen wird.
Hier die Fehlermeldung:

23:40:06.472 New Message: id: 033 len: 029 counter: 080 checksum: 253
Traceback (most recent call last):
  File "newgrab32.py", line 174, in <module>
    HandleMsg(oMsg, aoLastMsg[oMsg.nType])
  File "newgrab32.py", line 126, in HandleMsg
    PrintRawMsg(oMsg, oLastMsg)
  File "newgrab32.py", line 99, in PrintRawMsg
    if (oMsg.anData[i]!=oLastMsg.anData[i]):
IndexError: bytearray index out of range

Auskommentieren der Signalmap-einträge hat nichts gebracht.

Bei mir (allerdings Multifire) habe ich in Botschaft 32 folgendes 
zugordnen können:
Offset:
    22: evtl. Platinentemperatur?
    32: Sauerstoffgehalt
    38: Glutbett

Botschaft 33 konnte ich nicht so detailliert aufschlüsseln, aber da 
sollte auch noch ein Wert für die Kesselleistung zu finden sein.

Meine Anlage hat noch externe HK-Module. Diese senden mit Id 64 die 
HK-ist Temperaturen. (In den ungeraden Countern HK 4/3 und in den 
geraden HK 6/3).

Derzeit starte ich das pythonscript per cronjob alle 2 Minuten. Nachdem 
alle Werte aufgenommen sind wird das dann in eine Textdatei geschrieben.
Mit dem Filesensor-Component wird das in Homeassistant eingelesen und 
grafisch aufbereitet und bei Bedarf eine Meldung abgesetzt.

Autor: haros (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo MartinB,

danke für den Hinweis. Die eine Zeile (zum Hervorheben von veränderten 
Bytes seit der letzten Ausgabe) ist damit nicht klar gekommen, dass es 
bei dir noch mehr Botschaften außer 32 und 33 gibt. Ich habs jetzt 
verallgemeinert und nochmal neu angehängt.
Deine anderen Offsets muss ich bei Gelegenheit mal überprüfen, wenn 
unsere Heizung mal wieder läuft (... was zur Zeit noch ziemlich selten 
ist, wegen unserer Solaranlage.)

Autor: haros (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo MartinB,

inzwischen konnte ich weitere Betriebsstunden analysieren.
Zu deinen Signalvorschlägen:
22: evtl. Platinentemperatur? --> Könnte auch bei mir z.B. eine 
Prozessortemperatur sein
32: Sauerstoffgehalt -> liegt bei mir zwischen ca. -2000 und +2000 
während des Heizens. Da bekomme ich keinen Bezug zum Sauerstoffgehalt 
hin
38: Glutbett -> Ist bei mir immer konstant. Da scheint bei mir kein 
Sensor verbaut zu sein.

Ansonsten habe ich noch folgende weitere Signale gefunden:
In der Sense-Botschaft 32 befinden sich vor den Temperaturwerten noch 
ein paar Statusbits:
    'Aschebehaelter': ('b',3, 6),
    'Pellet_Vorrat': ('b',4, 3)
Bei mir ändert sich im normalen Betrieb sonst nur noch ein Bit in diesen 
ersten 6 Bytes, das ich aber noch keinem Signal zuordnen konnte. Ich 
schätze, dass das ansonsten irgendwelche Statusbits sind, die das 
Bedienteil zu Fehlermeldungen veranlassen, so wie beim Aschebehälter (-> 
führt zu Fehler 19, wenn das bit ein paar Sekunden auf 0 ist).
Anhand dieser Bits müsste man also herausfinden können, was für ein 
Fehler gerade anliegt, wenn das Störungs-Signal kommt ...?!?

@all: Hat jemand zufällig ein paar Logs, wo Fehler aufgetreten sind?

Mir ist dann noch aufgefallen, dass die Ctrl-Botschaft(33) bei mir immer 
mit 84 anfängt und die Sense-Botschaft(32) mit 128 84. Die Botschaften 
17 und 16, fangen mit 88 und 128 88 an (zumindest in dem Datenstrom, den 
ich im Netz gefunden habe). Evtl. ist das so eine Art Startbyte oder 
SW-Versionskennung in der Ctrl-Botschaft und anschließend die 
Bestätigung in der Sense-Botschaft, dass diese fehlerfrei empfangen 
wurde.
Wenn diese Theorie stimmt, dann müsste man in diesen Bytes nicht nach 
Signalen suchen ...

Hinter den Temperaturwerten konnte ich noch die Drehzahlen von Lüfter 
und Saugzug decodieren, was aufgrund ihrer ungeraden Offsets und ihrem 
krummen Faktor nicht so offensichtlich war, wie bei den bisherigen 
Signalen:
    'Drehzahl_Saugzug': ('u',69,2,0.6,'Upm')
    'Drehzahl_Luefter': ('u',71,2,0.6,'Upm')

Bei der Ctrl-Botschaft 33 gibts bei mir noch folgende weitere Signale:
    'Zuendung': ('b', 3,2),
    'Saugzug': ('b', 4,5),
    'Kesselleistung': ('u', 13, 1, 1,'%') -> ?

Ich hänge nochmal eine aktualisierte Version von meinem Skript an mit 
den aktualisierten SignalMaps. Zusätzlich habe ich es inzwischen nochmal 
verallgemeinert, so dass man sich jetzt oben im Skript auch weitere 
SignalMaps zu anderen MessageIDs anlegen kann und dann werden diese IDs 
automatisch mit decodiert.


@all: Zum Schluss noch eine Idee: Hat jemand zufällig ein 2. Digitales 
Bedienteil an seiner Anlage und kann was zu den Botschaften sagen, die 
da rauskommen? Wenn man die gleichen Botschaften selber schicken würde, 
dann müsste man doch die komplette Anlage fernsteuern können ... ?!

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich möchte dein Skript gerne bei mir einsetzen.
Mir ist aber nicht ganz klar wie ich es einbinden soll.
Hast du eine kurze Anleitung ?
Ich wollte es auf einem RasPi laufen lassen.

Danke.

Autor: haros (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Rainer,
du musst einfach das Skript auf deinen RasPi kopieren und in der Konsole 
dann

python3 grab32.py

eingeben. Vorher musst du natürlich noch den Datenbus der Heizung über 
den USB-RS485 Adapter an deinen RasPi anschließen wie oben im Thread 
beschrieben.

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, probier ich aus sobald der USB-Konverter da ist :-)
Hoffe der kommt die nächsten Tage.
Ich bin kein Pythen Spezialist aber wie machst du das mit der Logging ?
Ich hab im Code nichts dazu gefunden.
Könnte man nicht alle x-Minuten oder x-Werte diese in ein Logfile 
schreiben ?
Dann könnte man die danach auswerten :-)
Das spannende ist ja die Auswertung ;-)

Autor: haros (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann lade ich dir hier nochmal mein komplettes Skript im Anhang 
hoch, das neben anzeigen auch loggen kann.

Zusätzlich zu den decodierten Signalen schreibe ich auch die rohen 
Botschaften jeweils in eine CSV-Datei pro Tag.

Ich logge nicht nur jede Minute, sondern auch wenn sich in der 
Ctrl-Botschaft eine Änderung ergeben hat. Ein Log-Zyklus startet bei mir 
immer mit der Ctrl-Botschaft und danach werden automatisch auch noch 
alle Sense-Botschaften des gleichen Zyklus weggeschrieben. So verpasse 
ich nichts wichtiges und kann nachher alles analysieren z.B. mit Excel. 
Die Datenflut ist aber trotzdem deutlich geringer als wenn man den 
Datenstrom komplett mitloggen würde.

Das Logging ist auch wieder so allgemein gehalten, dass automatisch alle 
Botschaften geloggt werden, egal ob eine SignalMap dafür vorhanden ist 
oder nicht (falls bei dir andere Botschaften als 32 und 33 kommen 
sollten). Es kann aber auch über die Parameter oben im Skript 
konfiguriet werden, falls es dir zu viele Daten erzeugt.

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super - Danke.
Der Konverter soll morgen ankommen :-)
Dann werde ich das mal ausprobieren.

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das Skript mal getestet.
Aber irgendwas scheint nicht zu gehen.
Bei der ersten Verkabelung waren wohl die A/B vertauscht, hatte die 191 
statt 2.
Nun wird was ausgelesen, aber immer nur ID 16/17
Das ca. alle 2-3 Sekunden
Eine Idee woran das liegen könnte ?

14:12:56.596 New Message: id: 017 len: 021 counter: 080 checksum: 134
088 136 000 020 000 000 000 000 000 000 000 000 000 008 255

Offset_00 (088, 136): 2266.400          Offset_02 (000, 020):    2.000 
Offset_04 (000, 000):    0.000
Offset_06 (000, 000):    0.000          Offset_08 (000, 000):    0.000 
Offset_10 (000, 000):    0.000
Offset_12 (000, 008):    0.800          Offset_14 (255, 000):  -25.600

14:12:56.661 New Message: id: 016 len: 061 counter: 080 checksum: 205
128 088 111 043 037 001 126 001 207 002 036 001 246 001 010 002 048 000 
102 001
216 001 051 001 244 001 244 005 020 001 046 005 020 005 020 005 020 005 
020 001
244 000 000 000 000 000 013 000 000 000 000 000 000 000 000

Offset_00 (128, 088): -3268.000         Offset_02 (111, 043): 2845.900 
Offset_04 (037, 001):  947.300
Offset_06 (126, 001): 3225.700          Offset_08 (207, 002): -1254.200 
Offset_10 (036, 001):  921.700
Offset_12 (246, 001): -255.900          Offset_14 (010, 002):  256.200 
Offset_16 (048, 000): 1228.800
Offset_18 (102, 001): 2611.300          Offset_20 (216, 001): -1023.900 
Offset_22 (051, 001): 1305.700
Offset_24 (244, 001): -307.100          Offset_26 (244, 005): -306.700 
Offset_28 (020, 001):  512.100
Offset_30 (046, 005): 1178.100          Offset_32 (020, 005):  512.500 
Offset_34 (020, 005):  512.500
Offset_36 (020, 005):  512.500          Offset_38 (020, 001):  512.100 
Offset_40 (244, 000): -307.200
Offset_42 (000, 000):    0.000          Offset_44 (000, 000):    0.000 
Offset_46 (013, 000):  332.800
Offset_48 (000, 000):    0.000          Offset_50 (000, 000):    0.000 
Offset_52 (000, 000):    0.000
Offset_54 (000, 000):    0.000

Autor: haros (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist doch alles richtig. Bei dir kommen also auch die Botschaften 16 
und 17 wie bei den meisten hier im Thread und nicht 32/33 wie bei Martin 
mir. Ich schätze deine SW-Version auf der Heizung ist etwas älter als 
meine.

Jetzt musst du dir nur noch für diese beiden Botschaften 16/17 eine 
SignalMap schreiben aus den Signalpositionen wie oben im Thread 
beschrieben und die oben in mein Skript reinschreiben. Dann bekommst du 
auch deine Signale richtig decodiert.

Ohne SignalMap decodiert mein Skript einfach alle Datenbytes jeder 
Botschaft wie die Temperaturwerte (16bit mit Faktor 0.1) und gibt die 
komplett alle 2s als Adressoffset und Wert aus. Du kannst die 
angezeigten Werte auch direkt mit der Anzeige auf deiner Heizung 
vergleichen und selber herausfinden welcher Wert bei dir welchem Signal 
entspricht.

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, ich versuche es mal :-)
Die FW ist recht neu, wurde im Frühjahr erst überprüft.
Ob es die neueste ist, k.A.

Autor: haros (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab gerade gesehen, dass bei dir Werte vergleichen nichts bringt, da 
die Temperaturwerte bei 16 an ungerade Offsets liegen und ich bisher nur 
gerade Offsets decodiert habe.

Ich hab jetzt mal die Infos über die Botschaften 16/17 von oben aus der 
Präsi in eine SignalMap überführt:

aaSignalMaps[16] = {
    #Name: Type='b'(bit), Offset, Bit
    #Name: Type='s'(signed)/'u'(unsigned), Offset, Length, Factor, Unit
    'T_Vorlauf_HK1': ('s',5, 2, 0.1,'°C'),
    'T_Ruecklauf_Kessel': ('s',7, 2, 0.1,'°C'),
    'T_Boiler': ('s',9, 2, 0.1,'°C'),
    'T_Kessel':  ('s',11, 2, 0.1,'°C'),
    'T_Aussen': ('s',17, 2, 0.1,'°C'),
    'T_Rauchgas': ('s',29, 2, 0.1,'°C')}

aaSignalMaps[17] = {
    #Name: Type='b'(bit), Offset, Bit
    #Name: Type='s'(signed)/'u'(unsigned), Offset, Length, Factor, Unit
    'Pumpe_Boiler': ('b',1,5),
    'Pumpe_HK2': ('b',1,6),
    'Pumpe_HK1': ('b',1,7),
    'Ascheaustragung': ('b', 2,0),
    'Reinigung': ('b',2,1),
    'HK2_Mischer': ('b',2,4),
    'HK1_Mischer': ('b',2,6),
    'Hauptrelais': ('b',3,4),
    'Raumaustragung': ('b',3,6)}

Im Anhang nun mein erweitertes Skript, dass auch 16/17 decodieren 
sollte.
Ich kann es aber natürlich nicht ausprobieren, weil bei mir wie gesagt 
nur die Botschaften 32/33 kommen. Zusätzlich werden jetzt auch ungerade 
Offsets decodiert, wenn keine SignalMap vorhanden ist oder wenn man den 
Parameter DECODE_ALL auf True setzt, um sich auf die Suche nach weiteren 
Signalen machen.

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke !
Hier ein paar Anpassungen der IDs.
aaSignalMaps[16] = {
    #Name: Type='b'(bit), Offset, Bit
    #Name: Type='s'(signed)/'u'(unsigned), Offset, Length, Factor, Unit
    'T_Vorlauf_HK1': ('s',5, 2, 0.1,'°C'),
    'T_Ruecklauf_Kessel': ('s',7, 2, 0.1,'°C'),
    'T_Boiler': ('s',9, 2, 0.1,'°C'),
    'T_Kessel':  ('s',11, 2, 0.1,'°C'),
    'T_Puffer_Unten':  ('s',13, 2, 0.1,'°C'),
    'T_Puffer_Oben':  ('s',15, 2, 0.1,'°C'),
    'T_Aussen': ('s',17, 2, 0.1,'°C'),
    'T_Rauchgas': ('s',19, 2, 0.1,'°C'),
    'T_Stokerkanal': ('s',29, 2, 0.1,'°C')}

Die Raumaustragung kann ich leider noch nicht finden :-(
Mal schauen beim nächsten Lauf.

ID17:
Das scheinen die Relais zu sein. Zumindest ist das alles entweder 0 oder 
1.

Autor: Rainer G. (gera)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
HK2 und Ascheaustragung hab ich nicht zum Testen.
ID17:
aaSignalMaps[17] = {
    #Name: Type='b'(bit), Offset, Bit
    #Name: Type='s'(signed)/'u'(unsigned), Offset, Length, Factor, Unit
    'Pumpe_Puffer': ('b',4,1),
    'Pumpe_Boiler': ('b',1,5),
    'Pumpe_HK2': ('b',1,6),
    'Pumpe_HK1': ('b',1,7),
    'Ascheaustragung': ('b', 2,0),
    'Reinigung': ('b',2,1),
    'HK2_Mischer': ('b',2,4),
    'HK1_Mischer': ('b',2,6),
    'Hauptrelais': ('b',3,4),
    'Kessel_AN': ('b',15,0),
    'Raumaustragung': ('b',3,6)
    }

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.