KWB Kessel RS485 Protokoll

#3311101
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
Angehängte Dateien:
#3311713
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
Gast #3311800
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.
Gast #3312432
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.
Gast #3314334
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
#3438024
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
Angehängte Dateien:
#3448292
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
Angehängte Dateien:
#3448655
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
#3448859
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
#3449018
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
Gast #3477047
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
#3477290
Lesenswert?

Hallo Bodo,

ich habe folgenden USB Stick: 
http://www.amazon.de/gp/product/B00BGZT04K/ref=wms_ohs_product?ie=UTF8&psc=1

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:
1
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
Angehängte Dateien:
#3477350
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.
#3477354
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
Gast #3478172
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
#3482567
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
#3482786
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
#3483517
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
Gast #3486276
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
#3487201
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
#3487247
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?
Gast #3487303
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.
#3487402
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 :-)
Gast #3487407
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 :-)
Gast #3488035
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
#3488380
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
Gast #3498862
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-programmierbare-regelung-uvr1611.html

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/bootloader-bl-net.html

Grüße
Daniel
Gast #3519344
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?filter=ip.addr%20%3D%3D%20192.168.1.5%20%26%26%20tcp.port%20%3D%3D%20502
Derzeit versuche ich von der Visualisierung auf die Register rück zu 
schließen.
Für Intercom wurden sind die Hold Register bekannt.

lg
Gast #3548271
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
#3570533
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
Gast #3575467
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/bootloader-bl-net.html
>
> 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
Gast #3586831
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.
#3590897
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
Gast #3610017
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
Gast #3611367
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
Gast #4122031
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....
Angehängte Dateien:
#4195671
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
#4197112
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):
1
   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.

1
int Checksum(unsigned char* data, unsigned char length)
2
{
3
    int i;
4
    unsigned char crc = 0;
5

6
  crc = data[0];   // = 0x02
7
  for (i = 1; i < length; i++)
8
  {
9
    crc = rotl(crc, 1);
10
    if (crc + data[i] > 255)
11
    {
12
      crc = crc + data[i] + 1;
13
    }
14
    else
15
      crc = crc + data[i];
16

17
  }
18
  return crc;
19
}
Gast #4592912
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
Gast #4946308
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.
Angehängte Dateien:
Gast #4949483
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.
Gast #4949486
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.
Gast #4949634
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.
#4950406
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
Gast #4950450
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
Gast #5015851
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 !
Gast #5023936
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
Angehängte Dateien:
#5029822
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
Gast #5160405
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:
1
aSignalMap32 = {
2
    #Name: Type=signed, Offset, Length, Factor, Unit
3
    'Vorlauf Ist HK1': ('s',6, 2, 0.1,'°C'),
4
    'Rücklauf Kessel': ('s',8, 2, 0.1,'°C'),
5
    'Boilertemperatur': ('s',10, 2, 0.1,'°C'),
6
    'Kesseltemperatur':  ('s',12, 2, 0.1,'°C'),
7
    'Puffertemperatur 2': ('s',14, 2, 0.1,'°C'),
8
    'Puffertemperatur 1': ('s',16, 2, 0.1,'°C'),
9
    'Aussentemperatur HK1': ('s',18, 2, 0.1,'°C'),
10
    'Rauchgas': ('s',20, 2, 0.1,'°C'),
11
    'Unterdruck': ('s',34, 2, 0.001,'mBar')}
12

13
aSignalMap33 = {
14
    #Name: Type=bit, Offset, Bit
15
    'Kessel Hauptrelais': ('b',1,2),    
16
    'HK1 Pumpe': ('b',1,5),
17
    'HK1 Mischer AN': ('b',1,7),
18
    'HK1 Mischer ZU': ('b',2,0),
19
    'Boiler Pumpe': ('b',2,5),
20
    'Puffer Pumpe': ('b',2,7),
21
    'Keine Stoerung': ('b',3,0),
22
    'Drehrost': ('b',3,6),
23
    'Reinigung': ('b',3,7),
24
    'Raumaustragung Saugturbine': ('b',4,1),
25
    'Kessel Hauptschuetz': ('b',9,1)}

Hat jemand weitere Signale von diesen Botschaften herausgefunden?
Angehängte Dateien:
#5161503
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.
Angehängte Dateien:
Gast #5162345
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.)
Angehängte Dateien:
Gast #5185345
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 ... ?!
Angehängte Dateien:
#5186581
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 ;-)
Gast #5187654
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.
Angehängte Dateien:
#5189893
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
Gast #5189962
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.
Gast #5189994
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.
Angehängte Dateien:
#5190128
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.
#5192943
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)
    }
Gast #5247617
Lesenswert?

Hallo,

hab aktuell auch das KWB Plugin von Home Assistant am laufen.

Folgende Infos hab ich aktuell :

Kann mir jemand sagen was

kwb Return
kwb Return Mixer
kwb unknown
kwb unknown Resupply

bedeuten kann  ?

Und kann man irgendwie noch andere Daten anzeigen lassen? Oder 
vielleicht sogar Alarme anzeigen lassen.

Es handelt sich bei mir um eine KWB Easyfire 25 mit Comfort 3 Modul.

mfg,
Hanesch Kim
Angehängte Dateien:
Gast #5269764
Lesenswert?

Ich habe heute mal versucht meine KWB Stückholzofen auszulesen mit dem 
Script von halos. Erst ohne Werte da ich die folgenden IDs habe.

Id:48 und Id:49

Habe das Script jetzt für Classicfire mit Comfort 3 an Port 25 
erweitert.

aaSignalMaps[48] = {
    #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_Vorlauf_HK0': ('s',45, 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_Mitte': ('s',29, 2, 0.1,'°C'),
    'T_Puffer_Oben': ('s',15, 2, 0.1,'°C'),
    'T_Rauchgas': ('s',39, 2, 0.1,'°C'),
    'T_Aussen': ('s',41, 2, 0.1,'°C'),
    'T_Raumtemp._Ist': ('s',43, 2, 0.1,'°C'),
    'T_Raumtemp._Soll': ('s',49, 2, 0.1,'°C'),
    'Sauerstoff': ('s',31, 2, 0.1,'%')}

aaSignalMaps[49] = {
    #Name: Type='b'(bit), Offset, Bit
    #Name: Type='s'(signed)/'u'(unsigned), Offset, Length, Factor, Unit
    'Kessel_Hauptrelais': ('b',1,3),
    'Pumpe_Boiler': ('b',1,5),
    'Pumpe_HK0': ('b',3,9),
    'HK0_Mischer_AUF': ('b',3,5),
    'HK0_Mischer_ZU': ('b',3,6)}
soweit alles gut die Temperaturwerte stimmen alle unter ID49 bin ich mir 
nicht ganz sicher.

Kann mir jemand erklären wie die Daten in Hassio (Pi3) einbinden kann 
(was bimbar geschrieben hat)?

MfG
Grisu
Angehängte Dateien:
#5274400
Lesenswert?

Hallo Kim und Grisu,

Ich hatte mit bimbars Homeassistant-kwb-Sensor keinen rechten Erfolg. Es 
lief, aber nach einer gewissen Zeit passten die Werte nichtmehr zu den 
aktuellen am Kessel. Ich vermute, dass laufend Daten aufgezeichnet 
werden, die dann nach und nach von homeassistant abgerufen werden und 
irgendwann der Speicher überläuft (oder so ähnlich... Bin Laien 
Programmierer... ).
Da ich nicht weitergekommen bin, habe ich ein passendes Pythonscript 
(cronjob alle 2min) genommen, und die Werte in eine JSON-textdatei 
geschrieben. Über den HA-filesensor hole ich mir die Werte dann alle 
2min in HA.
Derzeit läuft bei mir Homeassistant 0.57. Allerdings wird in Zukunft nur 
noch Hass.io weiterentwickelt, wo ich bislang noch keine Möglichkeit 
gefunden habe mein pythonscript zum laufen zu bekommen. Und das der 
kwb-sensor unter Hass.io läuft, wage ich mal zu bezweifeln...
 Falls trotzdem Interesse besteht, die alte Version zum Laufen zu 
bringen, könnte ich meinen Wust mal ein wenig aufbereiten und zur 
Verfügung stellen...

MFG. MartinB.
Gast #5275028
Lesenswert?

Hallo,

Habe aktuell Home Assistant 0.60 am laufen mit dem KWB Sensor von 
bimbar.
Läuft eigentlich immer noch, muss die Werte dann aber nochmal 
vergleichen.

Nun zu deiner Ausssage, was meinst du mit Hass.io ?

Das ist doch Home Assistant, und da kanst du doch immer noch dein python 
script laufen lassen und verarbeiten.

Wäre an deiner Arbeit interessiert ?

mfg
#5275756
Lesenswert?

Hallo Kim,

Entschuldige, ich scheine mal wieder nicht auf dem Laufenden zu sein.
Homeassistant läuft bei mir z.Zt. auf dem OS "Hassbian" auf einem Pi 
"Zero".

"Hass.io" wiederum basiert auf "ResinOS" und Docker auf dem dann 
Homeassistant läuft. Allerdings scheinen die Möglichkeiten Scripte zu 
starten und Dateien zu Schreiben etc. hier sehr eingeschränkt, da alles 
einzeln in Sandkästen und Containern und ähnlichem verpackt ist ;-). 
Werde ich evtl. ja noch hiterkommen...

Ich hatte auf jeden Fall im Herbst versucht, die Tradfri-Komponente zu 
installieren, die jedoch Python 3.4.4 erfordert. Dieses war zu diesem 
Zeitpunkt jedoch nicht in Hassbian verfügbar und ich las damals, dass in 
Zukunft nur noch "Hass.io" neue Updates bekommen würde. Daher habe ich 
hin und wieder mal ein paar Versuche unternommen, auf Hassio umzusteigen 
(Ohne wirklichen Erfolg...).

Danke für deinen Hinweis auf die neue Version von HA (sogar mit Python 
3.5!). Nun werde ich wohl alles so lassen, wie es ist und einfach 
updaten...

Anbei mal meine äußerst uneleganten, verworrenen, überarbeitungsbedürti 
gen - aber bei mir immerhin funktionieren Scripte/Dateien.

Die Werte Datei wird in /home/pi/ geschrieben, und von der Konsole 
gestartet sollten auch Werte auf dem Bildschirm landen.

Mit bestem Gruß

Martin B
Angehängte Dateien:
Gast #5277118
Lesenswert?

Vielen Dank für die Scripts, schau mir das mal an.
Weist du wie man anstelle von USB Seriel über TCP/IP Seriel einlesen 
kann.
Wie muss ich dies im Pyhton deklarieren.

Benutze folgendes Gerät : USR-TCP232-304

Unter Home Assistant mit dem KWB Component funktioniert es schonmal, da 
man bei der Definition des Scripts den TCP Server angeben kann.
Gast #5280571
Lesenswert?

Hallo Leute,

nach der super Vorarbeit hier, habe ich mich endlih mal vor den Kessel 
gesetzt und mit Hilfe des Python Skriptes, die bei meinem Kessel noch 
vorhandenen fehlenden Daten zu lokalisieren.
Mein Kessel schickt noch die 16/17 Botschaften.

Wie von mir vermutet und hier auch schon geschrieben, ist die große 
Leiterplatte am Kessel "dumm" und dient nur als I/O-Modul. Es meldet die 
Sensordaten und empfängt die Aktuatordaten.
Daher liegen Daten wie Solltemperaturen etc. leider nicht auf dem Bus.
Das geht vermutlich nur in höheren Softwareversionen und in Kombination 
mit einem der Erweiterungsmodule.

KWB bietet inzwischen für die Comfort 3 Steuerung auch eine 
Netzwerkkarte an.
Damit ist der Kessel dann online. Evtl. läßt sich da die Web-API 
anzapfen um Daten ins Smart-Home zu holen. Aber >300€ ist mir da zu viel 
zum Spielen...
https://www.kwb.at/loesung/kwb-comfort-online/

Anbei ein pdf wo ich den aktuellen Stand zusammengetragen habe.
Die Datenfelder für das Python Skript sind auch enthalten.

Ermittelt habe ich die Sensordaten durch Abziehen der Sensoren am 
Kesselsteuergerät in Verbindung mit der Methode des "scharfen Hinsehens" 
in die Python Ausgabe. :-)
Die Aktoren ließen sich sehr leicht mit der Funktion "Relaistest" in der 
Fachmannebene zuordnen.

Hat jemand den Typ des Temp-Sensors im analogen Raumbediengerät, sowie 
die Werte des Potis und der für TAG/NACH/etc. zugeschalteten 
Widerstände?
Ich habe leider kein solches Teil...

Gruß, Dirk
Angehängte Dateien:
#5280648
Lesenswert?

Dirk Abel schrieb:
> Hat jemand den Typ des Temp-Sensors im analogen Raumbediengerät, sowie
> die Werte des Potis und der für TAG/NACH/etc. zugeschalteten
> Widerstände?
> Ich habe leider kein solches Teil...

Hallo,
nachdem ich zwei dieser Dinge hab:

Analoger Raumsensor

Thermistor KTY 81-110 (laut KWB-Montageanleitung)
15°C  923Ohm
20°C  961Ohm
25°C 1000Ohm

Das Stellrad manipuliert den Wert um -/+36Ohm für +/-5°C; bei Drehung in 
Richtung 'Wärmer' wird ein Widerstandwert für eine geringere 
Raumtemperatur ausgegeben, am Kessel wird dann auch ein geringerer 
Istwert angezeigt, und der Heizkreis wird hochgefahren.

Der Schiebeschalter addiert je nach Stellung 500 bis 2000Ohm dazu
Stellung Aus:    +500Ohm
Stellung Nacht: +1000
Stellung Auto:  +1500
Stellung Tag:   +2000

Die Werte von Thermistor, Stellrad und Schalter werden zusammengezählt.
So ergeben sich bei 16°C im Auto-Betrieb rund 2.45kOhm (mein Messgerät 
ist ein Dreck...)

(Tatsächlich wird der Schalter wohl eher 474, 974, 1474 und 1974Ohm 
addieren, weil das Stellrad ja keine -36Ohm haben kann).


Ich hab übrigens eine Easyfire 2 mit einem Heizkreiserweiterungsmodul; 
der Kessel selbst betreibt einen Boiler B0 und einen Heizkreis HK1, das 
Erweiterungsmodul zwei weitere Heizkreise HK2 und HK3.
Ich sehe am Bus die IDs 32, 33, 64 und 65.
Hat jemand mit dieser Konfiguration schon Erfahrungen?

Momentan liegt der RPi0 noch verpackt neben dem Kessel und wartet 
darauf, sich mit Home Assistant und dem Plugin um die Daten zu kümmern, 
die dann ans bestehende openHAB geschickt werden sollen (MQTT?).

LG
Phil
Gast #5281946
Lesenswert?

@Philipp
Vielen Dank für diese Infos!

@all
Mit diesem Wissen bin ich dem Kessel gerade noch mit einer 
Widerstandsdekade an den KH1/HK2 Raumregleranschlüssen zu Leibe gerück.

Dabei sind mit weitere Werte ersichtlich geworden:
Das Kesselsteuergerät zerlegt die Widerstanswerte wieder in Temperatur 
und Schalterstellung. Ein Anschluss eines einfachen KTY81-110 ohne 
Schalter & Poti ist ebenfalls möglich.

Habe das entsprechend in der Doku ergänzt.

Damit bin ich hier am Ende, da die Ausbaustufe meines Kessels keine 
weiteren Werte hat...

Wenn mir jemand den KWB Wartungseinsatz incl. Softwareupdate bezahlt, 
kann ich die Werte gerne noch einmal für das neue Protokoll ermitteln. 
:-)

Gruß, Dirk
Angehängte Dateien:
Gast #5729450
Lesenswert?

Hallo,

ich habe ein script für arduino geschieben, er fonctionniert soweit hab 
aber nauc ein haufen debugs info, weill ich versuche rauszufinden was 
sind alle bit die wahrend mein kessel lauft wechseln.
ich habe schau gefunden welleche mein schneckenpelletzubringermotor ist.
ich habe den script mit meinem Homeautomation (Jeedon ich komme aus 
frankreich;)) verbunden mit mysensors wird soviel ich weiss auch von 
FHEM unterstuzt.

Gruss Yogui
#6010403
Lesenswert?

Dirk Abel schrieb:
> Hallo,
>
> bin mal endlich dazu gekommen, den Kram an mein openHAB anzubinden.
>
> ...snip...
> Gruß, Dirk

Hallo,
kannst du mal kurz zusammenfassen, wie du die Daten nach openHAB 
gebracht hast? Mein ursprünglicher Plan war es, Home Assistant auf einem 
Raspi Zero aufzusetzen und per MQTT einzelne Werte an openHAB zu 
schicken. Obwohl ich in OH gut zurechtkomm, bin ich für HA 
offensichtlich zu dumm. Ausserdem wiederstrebt mir, eine zweite 
Plattform zusätzlich zu betreiben, nur um ein paar Zahlen an die erste 
zu bekommen...

Mittlerweile denke ich schon daran, Temperaturfühler an die Leitungen zu 
klemmen, aber die Kesselleistung und den Pumpenbetrieb bekomm ich so 
nicht.

LG
Phil
Gast #6220696
Lesenswert?

Hallo zusammen,

nach längerer Zeit hier nun neue Erkenntnisse von mir zu folgendem 
decodierten Signal:

aaSignalMaps[33] = {
    'Kesselleistung': ('u', 13, 1, 1,'%')}


Dieses Signal ist genauer gesagt die "reale Kesselleistung", d.h. 
angezeigte Kesselleistung * Pelletfaktor!
Darauf gekommen bin ich, weil meine Anlage hier plötzlich nur noch 76% 
angezeigt hat, nachdem bei einem Wartungstermin eine neue Software auf 
die Heizung aufgespielt wurde. Die Anzeige im Display zeigt aber 
weiterhin 100%.
Seitdem liegt mein Pelletfaktor nur noch bei ca. 76%. Auch wenn man ihn 
hochsetzt auf 100%, lernt er sich in kurzer Zeit wieder zurück.
Die Anlage läuft jetzt natürlich deutlich länger pro Tag als früher, 
aber mein Schornsteinfeger freut sich seitdem über meine Abgaswerten 
:-)!
Eine Abgasmessung dauert natürlich immer noch gleich lang, aber in 
dieser Zeit wird nun nur noch 76% des Feinstaubs erzeugt.

Ich habe dann angefangen mitzurechnen, wie viel Wärmeenergie ich mit 
meiner Pelletheizung pro Tag erzeuge und bin zu folgender Formel 
gekommen:

Wärmeenergie_[kWh] = Summe(dt_[s] * Reale_Kesselleistung_[%] * 
Kessel_Nennleistung_[KW])

Meine Kessel_Nennleistung_[KW] ist 8 KW.

Diese erzeugte Wärmeenergie habe ich längere Zeit abgeglichen mit dem im 
Display angezeigten Pelletverbrauch und bin zu folgender Formel 
gekommen:

Wärmeenergie_[kWh] = Pelletverbrauch_[kg] * Pellet_Nennenergie[kwh/kg] * 
Wirkungsgrad_Heizung

Als Pellet_Nennenergie[kwh/kg] habe ich den Literaturwert 5 kWh/kg 
angesetzt und komme damit auf einen  Wirkungsgrad von 93,2% für meine 
Anlage.
Dieser Wirkungsgrad ist ziemlich plausibel.
Der Pelletverbrauch lässt sich somit berechnen mit der Formel:

Pelletverbrauch_[kg] = Summe(dt_[s] * Reale_Kesselleistung_[%] * 
Kessel_Nennleistung_[kW]) / (5 kW/kg * 0.932)

Diesen berechneten Pelletverbrauch habe ich jetzt 2 Winter lang 
abgeglichen mit dem angezeigten Pelletverbrauch und ich habe 
festgestellt, dass diese
beiden Werte ziemlich gut übereinstimmen (Abweichung von nur wenigen kg 
pro Jahr!)

Inzwischen habe ich auch mal wieder Pellets getankt und musste 
feststellen, dass doch etwas mehr reingepasst hat, als ich an Verbrauch 
berechnet habe.
Deswegen habe ich nun in meine Verbrauchsrechnung noch einen 
Korrekturfaktor eingefügt:

Pelletverbrauch_[kg] = Summe(dt_[s] * Reale_Kesselleistung_[%] * 
Kessel_Nennleistung_[kW]) / (5 kW/kg * 0.932) * 1.094

Dies entspricht aber immer noch einem Wirkungsgrad von 85,3%, was auch 
noch plausibel ist.
Ich weiss, dass die angesetzten Werte für Kessel_Nennleistung_[KW], 
Pellet_Nennenergie[kwh/kg] und auch die Füllmenge beim Tanken gewisse 
Ungenauigkeiten haben, aber ich bin erfreut, wie plausibel die Werte 
trotzdem sind.

Kann jemand von euch diese Erkenntnisse mit seinen Messdaten 
nachvollziehen?
#6345861
Lesenswert?

Hallo,
der Faden ist zwar schon etwas älter aber denn noch habe ich eine Frage 
zu Kessel.

Ich betreibe im Einfamilienhaus eine KESSEL-Rückstaupumpanlage Pumpfix F 
mit einem Schaltgeraet. (010-846)
Dieses Schaltgeraet hat Anschlüsse für einen angeblichen RS-485. Leider 
konnte ich bisher diesem nichts entlocken. Hat jemand Erfahrungen ob man 
diesen aktivieren muss?

Den RS-485 habe ich angeschlossen an einen MAX3483 welcher via einem ESP 
Easy die Daten abzapft. Die Einspeisung funktioniert. Diese wurde 
Seriell und auch MAX3483 zu MAX3483 getestet.

Vielen Dank im Voraus
Gast #6418714
Lesenswert?

Aufgrund der spannenden Infos in diesem Thread hab ich mich mal 
hingesetzt und für  einem wemos d1 mini pro und einem MAX485 ein 
Arduinoprogrammcchen geschrieben, dass die folgenden Werte per mqtt ins 
fhem dudelt.
Drehrost  0  2020-09-26 19:10:36
Geblaese  2078  2020-09-26 19:10:17
Hauptantrieb  1  2020-09-26 19:10:36
KeineStoerung  1  2020-09-26 19:10:36
Kesseltemperatur  77.5  2020-09-26 19:10:17
Leistung  21.8  2020-09-26 19:10:36
Proztemperatur  37.8  2020-09-26 19:10:17
Pumpepuffer  1  2020-09-26 19:10:36
Rauchgastemperatur  93.7  2020-09-26 19:10:17
Raumaustragung  0  2020-09-26 19:10:36
Reinigung  0  2020-09-26 19:10:36
Saugzug  1319  2020-09-26 19:10:17
Unterdruck  21.4  2020-09-26 19:10:17
Zuendung  0  2020-09-26 19:10:36

Die Verdrahtung ist recht simpel, über den Modbus des Kessels liest  der 
MAX485 Werte, damit er die Kesselsteuerung nicht verwirrt, im Grunde 
könnte man damit aber auch Steuern…. . Materialkosten liegen bei ca. 10€ 
Wenn größeres Interesse besteht würde ich den Code ein bisschen 
aufräumen und hier einstellen.

Gruß
Philip
Gast #6428389
Lesenswert?

// Das Programm liest Control und Sense Daten vom Bus
// eines KWB Easyfire mit und sendet diese per MQTT an
// fhem. Updates können OTA durchgeführt werden.
// Ist bestimmt nicht fehlerfrei läuft aber seit einer Weile stabil
// Hardware
// Webmos d1 mini Pro + HER MAX485 module
// Stromversorgung über Kessel 24V-> 7800 Spannungsregler
// Neben den Kesselwerten werden noch Brennerlaufzeit Gesamtenergie
// berechnet mit der der Pelletverbrauch bestimmt werden kann (ca. 
4.3kg/kwh bei einem EF2)
// Dank an Dirk Abel  und seine Doku zu, KWB RS-485 Interface



Viel Spaß beim basteln
Philip
Gast #6448848
Lesenswert?

Hello!
Sorry for writing in English; I came across this subject while looking 
for an option to integrate my KWB in my Homeassitant instalation.
Are there any wiring schemes how to connect the Wemos D1 pro with RS485 
module and the KWB communication port?
7800 Spannungsregler is probably a voltage regulator? Any cheap options 
for it?
I realy admire what you guys already achieved, keep up the good work!

Lovro
#6450560
Lesenswert?

Hallo Philip,
zum MAX485 hab ich noch eine Beschaltungsfrage:
vom Masseanschluss vom RS485-Baustein führen zwei rote Drähte in 
Richtung TTL. Auf welche Pins gehen die? RO dürfte ja die 
TTL-Leseleitung zum Wemos sein.
Ich denke, die beiden roten gehen auf RE und DE, um sicherzustellen, 
dass der Baustein nur empfängt und auf keinen Fall irgend einen Unfug am 
Bus macht, korrekt?

Schöne Grüße
Phil


windundsterne schrieb:

> // ...  + HER MAX485 module...
#6463793
Lesenswert?

Ich bin ganz begeistert, der Nachbau mit dem Wemos hat sofort 
funktioniert.
Anstelle des 78xx hab ich einen Kfz-Zigarettenanzünder-auf-USB-Adapter 
zerlegt (der holt die 24V vom Heizkreismodul auf 5V runter), und statt 
das Wemos D1 pro einen ohne "pro"; die relevanten Pins sind gleich.
Die verschickten Nachrichten sehen plausibel aus.
Ich bekomme allerdings gefühlt nur die analogen Werte (Temperaturen, 
Unterdruck) und keine Bits. "KeineStoerung" passt allerdings... Das mag 
aber daran liegen, dass ich zusätzlich zum Kessel noch ein externes 
Heizkreismodul mit Heizkreis 3 und 4 hab, da sind vielleicht 
irgendwelche IDs verschoben. Aus 2017 hab ich noch ein paar geloggte 
Daten dazu, in die ich mich wieder einlesen muss.

Was jetzt auf meiner Liste steht:
* Mich in Philip's Code reinlesen, um ihn für meine IDs zu erweitern
* Einbauen, dass Nachrichten nicht nur bei Änderungen, sondern auch zB 
alle 5min geschickt werden (wenn ein MQTT-Client neu startet, sieht der 
ewig keine Infos)
* ein LCD-Display anhängen und befüttern (irgendwo liegt da noch ein 
20x4-Zeichen-Display rum)
* meine bestehenden DS18B20-Temperatursensoren einbinden

@Philip: wenn du mal in der südlichen Steiermark unterwegs bist, dann 
geht ein Koffer voll Pellets an mich ;-)
#6485133
Lesenswert?

Ok,
ich hab's in der Zwischenzeit selbst ausprobiert.
Meine Zeichnung ist soweit korrekt und funktioniert.
Allerdings hab ich statt dem 7805 einen StepDownWandler eingesetzt. Der 
sollte verlustfreier arbeiten. Die Elektroniker können das besser 
erklären als ich.
Anbei die Bilder. Der StepDownWandler sitzt unter dem Wemos D1. Der 
zweipolige Pin neben dem Wandler trennt die Ausgangsspannung vom Rest, 
damit die Spannung auf 5V eingestellt werden kann. Nach dem Einstellen 
kommt ein Jumper drauf.
Nochmal vielen Dank an Philip.
Angehängte Dateien:
#6486637
Lesenswert?

Hi Philip. Danke für die Rückmeldung. Beim Sichten deines Codes hab ich 
mir die Frage gestellt, ob du dich rein an das KWB_RS485_Protokoll.pdf 
gehalten hast, oder da selbst noch einiges anderes gefunden hast, was in 
der Doku fehlt. Das Bit übrigens
1
      // immer 0
2
      sprintf(msg, "%d", getbit(anData, 4, 1));
3
      client.publish("Raumaustragung", msg);
geht dann auf True, wenn du keine Schnecke sondern eine Saugturbine im 
Einsatz hast und die Sonden umgeschaltet werden. Dazu muss ich aber noch 
weiter mit dem Relaistest analysieren.
#6510067
Lesenswert?

Marco A. schrieb:
> Hallo,
> der Faden ist zwar schon etwas älter aber denn noch habe ich eine Frage
> zu Kessel.
>
> Ich betreibe im Einfamilienhaus eine KESSEL-Rückstaupumpanlage Pumpfix F
> mit einem Schaltgeraet. (010-846)
> Dieses Schaltgeraet hat Anschlüsse für einen angeblichen RS-485. Leider
> konnte ich bisher diesem nichts entlocken. Hat jemand Erfahrungen ob man
> diesen aktivieren muss?
>
> Den RS-485 habe ich angeschlossen an einen MAX3483 welcher via einem ESP
> Easy die Daten abzapft. Die Einspeisung funktioniert. Diese wurde
> Seriell und auch MAX3483 zu MAX3483 getestet.
>
> Vielen Dank im Voraus

Hallo zusammen,

was hier Marco A. gemeint hat ist, das die Platinen von KWB und Pumpfix 
identisch sind. Ich habe das gleiche Problem wie Marco, hab auch einen 
Pumpfix am start und Kessel bietet hier keinerlei Kommunikation mit dem 
Gerät.
Habt ihr hier Tips wie man am besten vorgeht, bin da nicht so der Profi 
wie ihr merkt :/

MfG

AcidSubway
Angehängte Dateien:
#6564256
Lesenswert?

Hallo zusammen,

ich habe nun das Program vom WindundSterne genommen und so angeschlossen 
wie Bodo B. um alles auszulesen was meine Pumpfix hergibt.
Der ESP verbindet sich nach dem reset gleich mit dem mqtt, danach taucht 
er nicht mehr auf. Die Einzigen daten die er Liefert seht ihr im 
Screenshoot.
Weis einer warum ich da keine Daten bekomme?
Ich wollte dann hergehen und die Daten im *.ino Umbenennen was sie beim 
Pumpfix bedeuten.
#6589279
Lesenswert?

Hallo,
ja, zwischen dem Kesselbediengerät (im Bild), der Kesselsteuerung, 
optionalen zusätzlichen Heizkreismodulen und den digitalen 
Fernbedienungen (optisch ähnlich wie das KBG).
Die reden untereinander über einen RS485-Bus.

Ich denke die Infos hier sind auf die Kommunikation via TCP 
(Netzwerkkarte) nicht anwendbar, aber wer weiss...

LG
Phil
Gast #6604377
Lesenswert?

Hallo zusammen,

ist es jemandem von Euch bereits gelungen, die Werte für Geblaese- und 
Saugzugstufe korrekt herauszurechnen?  Die Werte von 0-255 linear auf 
die Stufen 0-50 zu interpolieren geht leider nicht.

Gemessen habe ich so etwas wie:

Für Geblasese und Saugzug gilt 255 => 50. Danach wirds spannend:

Geblaese 130 => 45
Geblaese 107 => 38
Geblaese 91 => 25

Saugzugstufe 206 => 45
Saugzugstufe 152 => 34
Saugzugstufe 129 => 25


Des weiteren tue ich mich schwer mit die vier Messwerten des Stoker zu 
interpretieren. Hat da jemand eine Idee wie man daraus Vorschub und 
Verzögerung errechnen kann?


Danke & Grüße,
HERSTE
#6682820
Lesenswert?

Hallo zusammen,
tolle Beiträge. Ich habe ein paar FRgen dazu.
Ich habe eine KWB Easysfire mit einem Heizkreiserweiterungsmodul. An 
diesem würde ich die RS 485 abzapfen (Parallel mir anschließen).Denke 
das sollte kein Problem sein.
Die Komponeten dafür habe ich bestellt. Ich würde gerne den Wlan Wemos 
Mini verwenden und in Iobroker einbinden. Kann mir da jemand helfen wie 
ich die Daten angezeigt bekomme? Sorry ich habe nur erfahrung mit 
Tasmato Flashen.

Vielen Dank für die Hilfe
#6706260
Lesenswert?

Hallo zusammen,
bei mir tauchen die ersten Wedrte nun auf. Ich habe noch das Problem das 
ich in dem Code eine Passwort und USer benötige für MQQT und zum zweiten 
es werden folgende Daten Sensedata... (siehe am Bild).
Was kann ich hier dann sehen?
@ Kim
eventuell hast du auch ein Passwort und User vergeben?
Angehängte Dateien:
Gast #6715994
Lesenswert?

Hallo,
erstmal möchte ich mich bei allen beteiligten für die investierte Zeit 
und Mühe bedanken! Wirklich ein hervorragendes Projekt.
Nun zu meiner Frage: ich befinde mich derzeit auf Fehlersuche da mein 
Kessel zeitweise anfeuert, ca. 15 Minuten läuft und anschließend ohne 
den Puffer oder die Heizkreise zu versorgen wieder abschaltet. Gibt es 
im Protokoll die Möglichkeit den Grund für die Anfeuerung auszulesen?
Danke und Gruß
Tom
Gast #6757729
Lesenswert?

Anbei ne aktuelle Version für den webmon d1 mini, mit der via rs485 
Daten des KWB Easyfire an fhem per mqtt gesendet werden.

Die Verbrauchswerte sind nun exakt, da die Ermitlung über den Stoker 
leider nicht so präzise war. Viel Spaß damit


Gruß
Philip
Angehängte Dateien:
#6872166
Lesenswert?

Als erstes möchte ich einmal Danke sagen an alle die das Protokoll so 
gut dokumentiert und veröffentlich haben.
Nun zu mir ich habe es mittlerweile geschaft die Temperaturen und 
Sauerstoffgehalt aus meinem KWB Stückholzvergaser auszulesen jedoch ist 
mir jetzt aufgefallen, dass der Kessel wenn ich beginne auszulesen in 
den Anheiz betrieb wechselt und das gebläse einschaltet. Wenn man heizt 
funktioniert alles normal. Ich schreibe nicht auf die Bus Leitung.
Hat sonst wer das gleiche Problem oder mögliche Lösungen?
Danke im vorhinein
L.G. Manuel
Gast #6925324
Lesenswert?

Guten Tag,

hab mich jetzt auch mal an die Wemos Variante gewagt.

Bei mir wurde ein ESP-12E benutzt, dieser wird aktuell noch über USB mit 
Strom versorgt. Der RS Adapter wird über VIN und GND mit 5V versorgt. 
Der Pin Ro des Adapters ist mit dem D2 des ESP-12E verbunden.

Wenn ich den Adapter nun an die Kessel Zweidrahtleitung anschliesse dann 
kommt sofort eine Fehlermeldung im Kessel dass der Heizfühlr ausgefallen 
oder nicht vorhanden ist. Eigentlich sollte ja nur passiv gelesen 
werden.

Aktuell habe ich schon einen Seriel auf Ethernet Adapter am laufen, mit 
dieser Variante bekomme ich keine Fehlermeldung.

Hatte schon jemand ähnliche Effekte ?

mfg,
Kim
Gast #6925517
Lesenswert?

Hi,

Ich hatte sowas auch schonmal. Bei mir hat ein RS485 Abschlußwiderstand 
geholfen. Kann sein, dass dein anderer Adapter den schon integriert hat 
und der neue nicht?

Markus

Kim Hanesch schrieb:
> Guten Tag,
> hab mich jetzt auch mal an die Wemos Variante gewagt.
> Bei mir wurde ein ESP-12E benutzt, dieser wird aktuell noch über USB mit
> Strom versorgt. Der RS Adapter wird über VIN und GND mit 5V versorgt.
> Der Pin Ro des Adapters ist mit dem D2 des ESP-12E verbunden.
> Wenn ich den Adapter nun an die Kessel Zweidrahtleitung anschliesse dann
> kommt sofort eine Fehlermeldung im Kessel dass der Heizfühlr ausgefallen
> oder nicht vorhanden ist. Eigentlich sollte ja nur passiv gelesen
> werden.
> Aktuell habe ich schon einen Seriel auf Ethernet Adapter am laufen, mit
> dieser Variante bekomme ich keine Fehlermeldung.
> Hatte schon jemand ähnliche Effekte ?
> mfg,
> Kim
Gast #6927489
Lesenswert?

Hallo,

hier der aktuelle Aufbau und das funktioniert jetzt denke ich. Die KWB 
zeigt auf jedenfall nach Anschluss keine Fehlermeldungen an.

Hier der Aufbau

Wemos              RS485
5V                 VCC
GND                GND
D3                 RO
GND                RE
GND                DE

Hier die einzigen Werte die per MQTT übertragen werden :

10 0 0 0 0 8 255 1 97 2
10 2 2 61 16 119 128 88 77 175
10 2 21 17 88 88 140 0 16 135
10 171 25 0 0 0 16 1 9 237

Leider scheint der Wemos keine Daten zu finden die ihm zusprechen.

Aktuell benutzte ich einen serial2net adapter mit einem py Script zum 
Auslesen. Folgende Werte kann ich darüber finden :

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',19, 2, 0.1,'C'),
    'T_Steuerung' : ('s',21, 2, 0.1,'C'),
    'T_Stokerkanal' : ('s',29, 2, 0.1,'C')}

aaSignalMaps[17] = {
    #Name: Type='b'(bit), Offset, Bit
    #Name: Type='s'(signed)/'u'(unsigned), Offset, Length, Factor, Unit
    'Aschebehaelter': ('b',3, 6),
    'Pellet_Vorrat': ('b',4, 3),
    'Brandschutzklappe' : ('b',1,1),
    'Reinigung' : ('b',2,1),
    'Alarm2': ('b',1,2),
    'Alarm1': ('b',1,3),
    'Boiler_Pumpe': ('b',1,5),
    'HK1_Pumpe': ('b',1,7),
    'Ascheaustragung': ('b', 2,0),
    'Reinigung': ('b',2,1),
    'HK1_Mischer': ('b',2,6),
    'Hauptrelais': ('b',3,4),
    'Raumaustragung': ('b',3,6),
    'Kessel_AN': ('b',15,0)}

Der Wemos spuckt mir nur leider in der aktuellen Config keine 
verwendbaren Daten aus.
#6933494
Lesenswert?

Hallo zusammen!

Sagt mal... Ihr verwendet hier einen Wemos D1 mini (3,3 V) mit nem 
MAX485, der für 5 V spezifiziert ist. Funktioniert das zuverlässig? Ein 
MAX3485 könnte auch 3,3 V. Als Board erscheint mir das hier zum Beispiel 
sinnvoll: 
https://www.reichelt.de/de/de/entwicklerboards-ttl-zu-rs485-max3485-debo-rs485-ttl-p282703.html?PROVID=2788&&r=1

Was meint ihr?

VG
Keith
Gast #6943567
Lesenswert?

HiHo,

nach längerer Testen hat nun endlich das auslesen des Stokers bei dem 
Easyfire geklappt. D.h. der Verbrauch kann nun grammgenau bestimmt und 
auch mit dem Nebenantrieb verglichen werden. Dazu hab ich das 
Arduino-Programm auf GitHub eingestellt, da sich so der Core besser 
maintainen läßt.

Hier die URL:
https://github.com/windundsterne/esp-kwb-mqttlogger

Viel Spaß damit :)
#6949193
Lesenswert?

Hallo Philip,
kannst du mir sagen, was die Kürzel
UD (Umdrehungen?)
HA, NA (Haupt/Nebenantrieb)
bedeuten?

Die "Leistung" passt bei mir nicht zur Anzeige am Kessel; die geht 
manchmal auf 13 (bei einem 12kW-Brenner), und die zeigt 6-7kW an, 
während die Zündung noch läuft und der Kessel "0%" zeigt. Ansonsten ist 
der Verlauf halbwegs plausibel.

Was ist denn die "SchneckeSchnecke"? Ist das die Förderung vom Lager, 
oder vom Pufferbehälter in den Brenner?

Das sind aber alles nur Kleinigkeiten, Danke für deinen Aufwand.

Mittlerweile hab ich einige Signale für die Heizkreise 3 und 4 gefunden; 
wenn ich sie sauber aufbereitet hab, stell ich sie hier rein.

Hat jemand gefunden, wo sich die Stellung des Wahlschalters der 
Raumthermostate versteckt (Frost/Nacht/Auto/Tag)?

LG
Philipp
#6952336
Lesenswert?

Hi Kim,
ich war längere Zeit nicht aktiv in der Runde und hab erst am Wochenende 
das Thema bei mir wieder aufgegriffen. Erst mal vorab noch vielen Dank 
an Philip (windundsterne). Finde es toll, dass er das Projekt auf Git 
gelegt hat.
Ich hatte auch, nachdem es anfänglich zunächst gut ausgesehen hatte 
Probleme bekommen und das Projekt dann letztendlich seit einem Jahr bei 
mir nicht weiter verfolgt. Erst die Tage bin ich wieder dran gegangen. 
Ich bekam zunächst auch keine Daten mehr über die Schnittstelle. Nachdem 
ich gemerkt hatte, dass bei mir der Wemos heißer wird als eigentlich 
sein dürfte, ist mir dann der letzte Beitrag von Keith S. (ksau) 
eingefallen. Letztendlich hat er damit Recht. Es kann funktionieren, die 
Frage ist nur wie es sich auf Dauer auswirkt. Ich wollte es dann erst 
mal Datenblattkonform regeln und hab den Spannungswandler den ich bei 
mir im Einsatz hatte von 5V auf 3,3V runtergedreht. Leider ohne Erfolg, 
denn dann funktioniert der von uns eingesetzte Wandler nicht mehr. Ich 
hab mir eine Alternative besorgt, die mit 3,3V funktioniert und dann 
damit weitergearbeitet.
Ich bekam wieder Daten über den BUS, aber Philips Parser hat einfach 
nicht angesprochen. Daraufhin hab ich den Code mal auf die schnelle so 
modifiziert, dass ich ihn "quasi" als Datenlogger benutzen konnte. Hier 
hab ich dann gesehen, dass ich einfach kein Startbyte "02" bekomme. 
Daten kamen, aber waren nicht verwertbar. Letztendlich hab ich dann A 
und B vertauscht und siehe da, ab dem Moment hat es funktioniert. Das 
wäre dann auch mal mein Tip für dich, denn genauso wie du es 
beschreibst, hab ich es gestern auch gehabt.

cu
Bodo
Gast #6970433
Lesenswert?

Philipp W. schrieb:
> Hallo Philip,
> kannst du mir sagen, was die Kürzel
> UD (Umdrehungen?)

Hier hatte ich die Umdrehungen des Stokers über die  Sense Pakete 
versucht zu zählen, das erwies sich aber nicht als 100% zuverlässig. Die 
neueses Version macht dies über die Taktzeit des Hauptantriebs. Das 
stimmt sehr exakt. Ich glaube nun ist der Verbrauch grammgenau messbar.


> HA, NA (Haupt/Nebenantrieb)
Wenn sich dieser Wert


Ja - korrekt.
Dies ist das Verhältnis zwischen der Laufzeit des Haupt und des 
Nebenantriebs. Wenn es z.B bei dem Nebenantrieb (bei mir eine Schnecke) 
Probleme gibt, weil z.B. die Pellets nicht nachrutschen sinkt diesse 
Zahl und man weiss das frühzeitig.



> bedeuten?
>
> Die "Leistung" passt bei mir nicht zur Anzeige am Kessel; die geht
> manchmal auf 13 (bei einem 12kW-Brenner), und die zeigt 6-7kW an,
> während die Zündung noch läuft und der Kessel "0%" zeigt. Ansonsten ist
> der Verlauf halbwegs plausibel.

der  Wert wird über die Verbrauchsmessung des Stokers gemessen. Am 
Anfang wird viel Material eingeschoben so das eine scheinbar höhere 
Leistung entsteht.
>
> Was ist denn die "SchneckeSchnecke"? Ist das die Förderung vom Lager,
> oder vom Pufferbehälter in den Brenner?

Das war der Vorgänger des HANA - hatte in der letzen Version noch nicht 
ganz aus dem Code entfernt.


Gruß
Philip ;)

>
> Das sind aber alles nur Kleinigkeiten, Danke für deinen Aufwand.
>
> Mittlerweile hab ich einige Signale für die Heizkreise 3 und 4 gefunden;
> wenn ich sie sauber aufbereitet hab, stell ich sie hier rein.
>
> Hat jemand gefunden, wo sich die Stellung des Wahlschalters der
> Raumthermostate versteckt (Frost/Nacht/Auto/Tag)?
>
> LG
> Philipp
Gast #6970451
Lesenswert?

Kim Hanesch schrieb:
> Hallo,
>
> nach dem Start des Wemos Adapters bekomme ich folgende Infos per MQTT :
> Booting
>
> bytes read RS485: 10 2 21 17 120 88 140 128 16 129
>
> Und sonst nichts. Kann vielleicht jemand mir helfen ?
>
> mfg,
> Kim

An den Werten siehts Du das das auslesen des rs485 zu funktionieren 
scheint.
weitere Daten kommen erst nach dem Updateintervall von 5 min. z.B. 
2022-02-05_12:31:00 MQTT2_kwb info: Booting (UART0 Serial)
2022-02-05_12:31:00 MQTT2_kwb UDfaktor: 1.4900
2022-02-05_12:31:00 MQTT2_kwb kwh: 0.000
2022-02-05_12:31:00 MQTT2_kwb rec: bytes read RS485: 10 32 1 0 1 0 1 0 1 
0
2022-02-05_12:31:00 MQTT2_kwb updatemin: 5
2022-02-05_12:36:00 MQTT2_kwb errors: 5442 / 51
2022-02-05_12:36:00 MQTT2_kwb Pellets: 0
2022-02-05_12:36:00 MQTT2_kwb PelletsNA: 0
2022-02-05_12:36:00 MQTT2_kwb Stoerung: 0
2022-02-05_12:36:00 MQTT2_kwb deltaPelletsh: 0
2022-02-05_12:36:00 MQTT2_kwb Kesseltemperatur: 54.3
2022-02-05_12:36:00 MQTT2_kwb Rauchgastemperatur: 78.2
2022-02-05_12:36:00 MQTT2_kwb Saugzug: 1342 / 2510
2022-02-05_12:36:00 MQTT2_kwb Unterdruck: 15.5
2022-02-05_12:36:00 MQTT2_kwb Kessel: brennt
2022-02-05_12:36:00 MQTT2_kwb Anforderung: 1
2022-02-05_12:36:00 MQTT2_kwb photodiode: 25
2022-02-05_12:37:37 MQTT2_kwb Reinigung: 1
2022-02-05_12:40:38 MQTT2_kwb Reinigung: 0
2022-02-05_12:41:00 MQTT2_kwb errors: 5484 / 23
2022-02-05_12:41:00 MQTT2_kwb Pellets: 0
2022-02-05_12:41:00 MQTT2_kwb PelletsNA: 0
2022-02-05_12:41:00 MQTT2_kwb Pumpepuffer: 1
2022-02-05_12:41:00 MQTT2_kwb Kesseltemperatur: 55.6
2022-02-05_12:41:00 MQTT2_kwb Rauchgastemperatur: 68.0
2022-02-05_12:41:00 MQTT2_kwb Saugzug: 2005 / 864
2022-02-05_12:41:00 MQTT2_kwb Unterdruck: 103.8
2022-02-05_12:41:00 MQTT2_kwb Kessel: brennt
2022-02-05_12:41:00 MQTT2_kwb Anforderung: 1
2022-02-05_12:41:00 MQTT2_kwb photodiode: 24
2022-02-05_12:44:41 MQTT2_kwb Schneckenlaufzeit: 29

Gruß
Philip
#6970599
Lesenswert?

Philip schrieb:
>> Die "Leistung" passt bei mir nicht zur Anzeige am Kessel; die geht
>> manchmal auf 13 (bei einem 12kW-Brenner), und die zeigt 6-7kW an,
>> während die Zündung noch läuft und der Kessel "0%" zeigt. Ansonsten ist
>> der Verlauf halbwegs plausibel.
>
> der  Wert wird über die Verbrauchsmessung des Stokers gemessen. Am
> Anfang wird viel Material eingeschoben so das eine scheinbar höhere
> Leistung entsteht.

Hallo Philip,
kann man diese Leistung auch irgendwo am Bedienfeld ablesen und 
vergleichen?
Ich kenne nur die Kesselleistung in Prozent, die im Betriebszustand des 
Kessels angezeigt wird. Aber irgendwie kann ich deinen Wert nicht 1:1 
darauf umrechnen.
Wie kamst du hier auf 0,5 als Umrechnungsfaktor im Gegensatz zum 0,6 bei 
ein paar anderen Werten?

Was bei mir auch nicht mit der Prozentangabe am Bedienfeld 
übereinstimmt, ist der Wert der Photodiode. Kommt bei dir mit dieser 
Formel ein Wert zwischen 0 und 100% heraus? Wie bist du zu der Formel 
gekommen?

Viele Grüße
Leo
Gast #6972384
Lesenswert?

Leo B. schrieb:
> Philip schrieb:
>>> Die "Leistung" passt bei mir nicht zur Anzeige am Kessel; die geht
>>> manchmal auf 13 (bei einem 12kW-Brenner), und die zeigt 6-7kW an,
>>> während die Zündung noch läuft und der Kessel "0%" zeigt. Ansonsten ist
>>> der Verlauf halbwegs plausibel.
>>
>> der  Wert wird über die Verbrauchsmessung des Stokers gemessen. Am
>> Anfang wird viel Material eingeschoben so das eine scheinbar höhere
>> Leistung entsteht.
>
> Hallo Philip,
> kann man diese Leistung auch irgendwo am Bedienfeld ablesen und
> vergleichen?
> Ich kenne nur die Kesselleistung in Prozent, die im Betriebszustand des
> Kessels angezeigt wird. Aber irgendwie kann ich deinen Wert nicht 1:1
> darauf umrechnen.
> Wie kamst du hier auf 0,5 als Umrechnungsfaktor im Gegensatz zum 0,6 bei
> ein paar anderen Werten?

Die Leistung kann man m.E. nicht direkt aus den Steuerpakten ableiten, 
nur indirekt über die Taktung. Ich hab den alten Code zur 
Leistungsberechnung entfernt. Nun kann man die Berechnung besser 
erkennen:

https://github.com/windundsterne/esp-kwb-mqttlogger

>
> Was bei mir auch nicht mit der Prozentangabe am Bedienfeld
> übereinstimmt, ist der Wert der Photodiode. Kommt bei dir mit dieser
> Formel ein Wert zwischen 0 und 100% heraus? Wie bist du zu der Formel
> gekommen?

Glaub die Berechnung kam aus der Protokollbeschreibung aus dem Forum.

Gruß
Philip

>
> Viele Grüße
> Leo
Gast #6999063
Lesenswert?

Hallo,

erstmals dickes Lob für das Projekt.
Ich habe eine KWB Easyfire 1 und das Projekt von Philip nachgebaut.
Am mqtt-Server bekomme ich aber nur initial folgende Infos, danach 
passiert nichts mehr.

error    unknown Packet 32/33
info    Booting (UART0 Serial)
rec    bytes read RS485: 10 0 0 0 0 2 21 17 101 88
subscriptions  cmd
updatemin  5

Wo kann hier der Fehler liegen?

mfg, Gerhard
Gast #7005942
Lesenswert?

Hallo Philip,

danke für deinen Hinweis, komme aber leider nicht weiter. Habe auch mit 
der Version von deinem Post vom 14.07.2021 probiert, habe immer 
ähnliches Verhalten.

Initial bekomme ich am mqtt folgende msg zurück, danach passiert nichts 
mehr.
rec 10 2 21 17 73 88 142 168 20 255


Wenn ich mir über den seriellen Monitor dann im Loop die nID ausgeben 
lasse.
Habe ich abwechselnd immer nID=16 bzw. nID=17. Also kommt meiner Meinung 
nach ja irgendwas über die RS485, anscheinend aber nichts mit nID 32/33.

Welchen wemos D1 mini verwendest du? Ich setze diesen hier ein: 
https://www.amazon.de/gp/product/B08BTQBGB8/ref=ppx_yo_dt_b_asin_title_o06_s01?ie=UTF8&psc=1

schöne Grüße
#7005950
Lesenswert?

Hi Gerhard,

dann hast du noch eine ältere Version von der KWB-Software.
Lies dir mal den Thread von oben durch. Ursprünglich stand da 16/17.
Philips Sketch setzt die neue Firmware mit 32/33 voraus. Den müsstest du 
anhand der Protokollbeschreibung hier im Thread umschreiben.
Oder über eine KWB-Wartung eine aktuelle Firmware einspielen lassen...

Viele Grüße
Leo
Gast #7006730
Lesenswert?

Hi Leo,

vielen Dank für den Hinweis. Endlich kommen Daten an.

Mich wundert nur, dass hier noch eine alte Software verwendet wird, der 
Kessel wurde erst im Oktober neu in Betrieb genommen.

Möglicherweise gibt es diese Einschränkung bzw. Unterschiede zwischen 
den unterschiedlichen Kessel, meine ist die Easyfire 1.

schöne Grüße
Gerhard
Gast #7034697
Lesenswert?

Hallo zusammen,

ich will diesen Thread nicht kapern, würde mich aber für das Excel-Sheet 
mit den Modbus-Parametern hochgradig interessieren (das mal vor 
ettlichen Jahren in diesem Thread erwähnt worden ist).

Hintergrund ist, dass ich ein Binding für openhab entwickeln möchte, 
dass zumindest erstmal für unsere beiden KWB-Heizer (eine MF2 und eine 
CF2) lesend alle Parameter zur Verfügung stellt.
Weiterer Hintergrund: Bei beiden Kesseln haben wir eine Comfort 
4-Steuerung im Einsatz. Beide habe ich vor ein paar Tagen in unser 
Netzwerk eingeklinkt und auch erstmal mit dem kostenfreien Portal von 
KWB verbunden. Erwartungsgemäß taugt das Portal recht wenig - und hat 
meine Motivation zu einem Openhab-Binding nur gesteigert ,-) Ich war 
allerdings recht erstaunt, dass ich ohne weitere Lizenzen kaufen zu 
müssen, auch gleich "Modbus TCP" aktivieren konnte, das hatte mir der 
Installateur anders erklärt (böse ist, wem da was schwant... ;-)

An Softwareentwicklung habe ich ettliche Jahre auf dem Buckel, modbus 
gehört leider noch nicht dazu, muss ich mich erst einlesen. Ich habe mir 
daher den "Simply Modbus TCP Client" installiert und will damit erstmal 
schauen, ob zumindest meine beiden Testobjekte wirklich online sind und 
mir für die Entwicklung zur Verfügung stehen.

Nach meinem Verständnis brauche ich aber eine genaue Beschreibung der 
Register der KWB-Steuerung, richtig? Wäre sehr dankbar, wenn ich das 
irgendwo/irgendwie bekommen könnte - oder gibt das KWB selbst heraus?


Danke & Grüße,
Sören
#7175101
Lesenswert?

Hallo zusammen,

ich mal wieder ;-) Zum Thema RS485 vs. RS3485: Keine Ahnung, ob das 
wirklich ein Problem ist oder ob der RS485 auch stabil mit 3,3 V 
läuft... Für alle, die ganz sicher gehen wollen, habe ich jetzt ein 
schönes Board mit dem RS3485 gefunden:
https://eckstein-shop.de/WaveshareRS485communicationboard2CSP3485onboard2C33V
Kostet EUR 3,99 und tuts bei mir gut.

VG
Keith
#7219163
Lesenswert?

Hallo zusammen,
ich habe seit ein paar Wochen einen KWB EF2 mit Paradigma Solarthermie 
und Wärmemanagement Modul (WMM) für zwei Heizkreise mit Comfort 4 
Steuerung in Betrieb. Der Comfort Online zugang ist zwar eine nette 
Spielerei und ggf für die online Fehleranalyse mit dem Heizungsbauer 
ganz nett, aber zur richtigen Datenanalyse für mich denkbar ungeeignet. 
Daher würde ich gerne die Daten wie ihr auch auslesen.
Ich habe leider wenig bis keine Ahnung vom Programmieren, die Hardware 
habe ich mit meinem Schwager nach dem Vorbild von Windundsterne 
erstellt, sie scheint auch erstmal zu funktionieren. Im moment scheitere 
ich an der Verkabelung zur Heizungsanlage. Die hier im Forum erwähnte 
RS485 Schnittstelle oder andere Steckmöglichkeiten, die mit A und B 
beschriftet sind, hat meine Anlage nicht (zumindest habe ich sie nicht 
gefunden).
In den Dokumenten, die ich habe, ist davon die Rede, dass man mehrere 
WMM hintereinander schalten kann, wobei das letzte Modul am Ende 
gebrückt sein sollte, um Reflektionen am Ender der Busleitung zu 
vermeiden. Muss ich an diese Busleitung?

Entshculdigt meine ggf. blöde Frage, aber ich bin mit der Sache grad 
noch etwas überfordert.


Vielen Dank!


Gruß, Ralf
Gast #7244708
Lesenswert?

Hallo von Ralf (rallet),

ich steht auch dieser Stelle. unsere Anlage ist schon 2 Jahre alt. Aber 
es scheint einfacher zu sein als gedacht. Die Comfort 4 hat ja schon 
einen Netzwerkanschluss und man kann über die Fachkraftebene den Modbus 
Server direkt in der Anlage aktivieren und über TCP ansprechen, so dass 
keine weitere Hardware notwendig ist. Mir ging es genauso, ich habe mir 
auch die Hardware besorgt, dann aber KWB angeschrieben. Mir wurde die 
aktuelle Firmware zur Verfügung gestellt, ich habe meine Heizung 
aktualisiert (auf Version 22.7) und habe auch die Modbus Doku 
mitbekommen.
Ich bin gerade dabei die Daten laut der Doku anzuzapfen.
Es wäre auf jeden Fall interessant, ob jemand schon ein Tool KWB2MQTT 
o.Ä. gebaut hat. Gefunden habe ich bisher keines, deswegen möchte ich 
das machen. Stehe hier aber auch noch am Anfang - bin aber 
Softwareentwickler.

Mfg,
Martin
#7245285
Lesenswert?

Hallo Ralf,
natürlich, gar kein Problem. Ich habe diese Informationen direkt von KWB 
erhalten, inkl. dem Softwareupdate, welches ich selbst problemlos 
durchführen konnte. Ich bin mittlerweile schon sehr weit gekommen. Im 
Anhang siehst du was ich schon problemlos auslesen kann.
In welches System möchtest du die Daten schreiben? Ich betreibe für die 
Homeautomation einen home assistant sehr erfolgreich und möchte die 
Daten dort via MQTT zur Verfügung stellen. Die Hardwarelösung ist 
komplett überflüssig, da man die Heizung direkt über TCP ansprechen 
kann.
Welche Softwareversion hast du auf der Heizung? Menü Kundendienst -> 
Support.
Ich hatte dir hier auch eine Email geschrieben, ist die angekommen?

So wie es aussieht ist die Comfort 4 einfach noch nicht so verbreitet, 
ich hatte mir diese 2020 einbauen lassen, aber quasi gar nichts dazu 
gefunden. Wenn du magst können wir gerne mal telefonieren. Ich würde das 
Projekt gerne auch auf Github zur Verfügung stellen und evtl. auch ein 
Modul für home assistant dazu erstellen - mal schauen.

Schreibe mir mal deine Emailadresse via Nachricht email dann kann ich 
dir die Infos schicken, die ich von KWB erhalten habe.

Mfg,
Martin
Angehängte Dateien:
#7245334
Lesenswert?

Hallo Martin,

krass was da über Comfort 4 so "nebenbei" möglich ist. Wir können gerne 
zusammenarbeiten, wobei mein Part da am ehesten der eines Testkandidaten 
ist, da ich von Programmieren einfach keine Ahnung habe. Mein Ansatz war 
zunächst erstmal dahin zu kommen, wo du bereits bist, um dann meinen 
Schwager als Software Heini ins Boot zu holen. Seine Idee war meine 
vorhandene Synology NAS als Server zum hosten der Daten zu benutzen, in 
wie fern das mit deinem Weg kompatibel ist, müsste ich abklären.

Ich habe dir eine Nachricht über das Board mit meiner Email Adresse 
geschrieben, damit die Nummer für später Nutzer nicht im Sande verläuft, 
fände ich es cool, wenn man das auf irgendeiner Plattform dokumentiert.

Meine Wunschvorstellung ist im Grunde ganz simpel: Datenaufzeichung über 
einen längeren Zeitraum und eine Visualisierung der einzelner Daten. Auf 
welcher Plattform das statfindet, ist mir völlig wurst, da meine 
Kenntnisse mit Excel enden... ;-)


Gruß, Ralf

Edith 1: Meine Heizung hat die Software 22.4.0
Edith 2: Deine Nachricht ist angekommen, ich habe dir auch 
zurückgeschrieben (s.o.)
Edith 3: ich sollte mich vllt besser an die Reihenfolge lesen, denken, 
tippen beim erstellen eines Beittrags halten: Github oder ähnliches 
fände ich super!
Gast #7310310
Lesenswert?

Ich habe inzwischen mit der KWB-Steuerung via Modbus gearbeitet, folgender Setup funktioniert soweit einwandfrei:

  • Backend ist OpenHAB mit dem Modus-Addon. Hier erfolgt die Konfiguration idealerweise mit Dateien für die sog. "Things" und "Items".
  • Dank OpenHAB entfällt jeglicher Programmieraufwand zugunsten vom Erstellen von Konfigurationen.
  • Die Kommunikation erfolgt über Modbus/TCP im lokalen Netzwerk
  • Wie schon erwähnt, befand sich auf der SD-Karte der Steuerung ein Excel-Sheet mit den kompletten Modbus-Registern, relativ vollständig und umfangreich dokumentiert. Soweit konnte ich das alles 1:1 direkt verwenden.
  • Aktuell habe ich von unseren zwei Kesseln rund 100 Parameter zum Lesen konfiguriert, mit Update alle 5 Sekunden; funktioniert einwandfrei. Für Schreiben habe ich noch keinen Use-Case bei uns gefunden, aber sollte sicherlich auch gut klappen da das Add-On ja auch außerhalb KWB verwendet wird.

Bei Interesse einfach PM.

Grüße, Sören

#7513405
Lesenswert?

Hallo an alle,

Als erstes ein großes Lob an die Top leistung hier in diesem Topic.

Ich bin auch gerade dabei meine Heizung ins Heimnetz aufzuhnehmen (Comfort 3 Steuerung). Da ich aber mit Modbus RTU wenig Erfahrung habe, hoffe das ich hier bei euch richtig bin. Die Lösung mit Wemos und MQTT habe ich soweit umgesetzt und funktioniert soweit. Jedoch würde ich gerne mit meiner Codesys (Raspberry Pi) Steuerung direkt kommunizieren. Jedoch ist das hier nicht so einfach wie ich mir das vorgestellt habe.

Habe auch die Registerauszüge für die Comfort3 beschaffen können. Vielleicht kann mir hier jemand mit Rat und Tat zur seite stehen bzw. Tipps geben.

LG

Angehängte Dateien:
#7539748
Lesenswert?

Hallo zusammen,

erst mal herzlichen Dank fürs Teilen dieses großartigen Projekts!

Ich versuche gerade die Variante mit D1 Mini und MAX485 umzusetzen, wie viele das hier ja schon hinbekommen haben.

Nun stehe ich vor dem Problem, dass meine Comfort 3 Steuerung sofort die Meldung "186 Netzwerkfehler am Kesselmodul" bringt, und zwar genau in dem Moment, wenn der MAX485 mit dem Buss verbunden wird.

Gab es das Problem bei Euch auch? Ich stehe gerade auf dem Schlauch.

Testweise habe ich den Bus mit einer anderen RS-485 Schnittstelle verbunden (Timberwolf Server), auch hier trat das Problem sofort auf.

Das ist meine Hardware:

KWB EasyFire 2 mit Comfort 3 Steuerung NeMos D1 mini MAX485 MP1584 für 24V -> 5V

Die Verkabelung habe ich genau wie in dem Blockschaltbild auf GitHub ausgeführt:

https://github.com/windundsterne/esp-kwb-mqttlogger/blob/main/Bilder/Schaltplan.png?raw=true

Für irgendwelche Tipps wäre ich sehr dankbar!

Uli

Angehängte Dateien:
#7539939
Lesenswert?

Ich habe den Fehler finden können.

Es ist wichtig, die beiden Pins DE und RE am MAX485 auf GND zu legen, damit er nichts senden, sondern nur zuhören kann. Seit ich das erledigt habe gibt es keine Beschwerden mehr vom Kessel. Aus dem Bockdiagramm ist das auch ganz klar zu entnehmen, mann muss halt nur genau hinschauen:

https://github.com/windundsterne/esp-kwb-mqttlogger/blob/main/Bilder/Schaltplan.png?raw=true

Ich hatte vorher noch testweise den 120 Ohm Terminierungswiderstand ausgelötet, das hat aber keine Verbesserung gebracht.

Uli

#7540248
Lesenswert?

Bernhard U. schrieb:

Habe auch die Registerauszüge für die Comfort3 beschaffen können. Vielleicht kann mir hier jemand mit Rat und Tat zur seite stehen bzw. Tipps geben.

LG

Hallo Bernhard,

ich verstehe deine Tabelle nicht ganz. Du hast eine Spalte mit "Offset". Was genau sind das für Offsets? Ich kenne eigentlich nur 2-stellige Offsets, die in den Message IDs 32 und 33 typisch sind. Kannst Du uns aufklären?

Uli

#7540421
Lesenswert?

Uli schrieb:

Hallo Bernhard,

ich verstehe deine Tabelle nicht ganz. Du hast eine Spalte mit "Offset". Was genau sind das für Offsets? Ich kenne eigentlich nur 2-stellige Offsets, die in den Message IDs 32 und 33 typisch sind. Kannst Du uns aufklären?

Uli

Hallo Uli, nun ja diese Excel Liste habe ich direkt von KWB bekommen und diese ist unverändert hier hochgeladen worden. Ich vermute das es hier direkt um Register-Adressen handelt. Ich habe versucht mittels Modabus RTU/TCP Gateway diese auszulesen, Jedoch ohne erfolg. Deshalb hab ich sie hier hochgeladen in der Hoffnung das sich hier jemand besser auskennt wie ich.

LG Bernhard

PS: freut mich zu hören das du die Kommunikation hinbekommen hast. Ich hab deinen Post leider zu spät gesehen. Hatte das gleiche Problem erst mit beiden auf GND gings dannn auch.

#7540450
Lesenswert?

Ok, verstehe.

Ich habe diese Netzwerkkarte, mit der man über Comfort Online die Daten der Anlage sehen kann. Mir ist aufgefallen, dass man sich zu jedem Datenpunkt eine vierstellige Nummer anzeigen lassen kann, wenn man auf den Titel der jeweiligen Seite klickt. Der Zahlenbereich ist ähnlich, wie in deiner Tabelle in der Spalte Offset. Gut möglich, dass es sich hier um so etwas wie Registeradressen handelt. Die spannende Frage ist halt, ob man über RS-485 da direkt drauf zugreifen kann.

Uli

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren