Forum: Haus & Smart Home Junkers CAN-Bus Protokoll


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael (Gast)


Lesenswert?

Hallo Crazyhorse,
der Post von Kosmos sagt das dies nicht technisch funktioniert.
Deswegen habe ich mich gewundert das hier alle diese Konstalation 
betreiben.
Ich wäre ja froh wenn es bei mir auch klappt.
Ich habe jetzt die ACAN2515 Lib. getestet und die ersten Versuche 
scheinen mit 10KBS zu funktionieren.
Welche Libary benutzt du denn?

Viele Grüße

Michael

von Peter (Gast)


Lesenswert?

Hallo,

es muss mit MCP-Can funktionieren, sollte sogar mit CAN FD klappen 
(lesen).

Peter

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich bin ratlos.

Mein Code zum Senden:
/——————————————————————————————————————————————————————————————————————— 
———————
//  ACAN2515 Demo in loopback mode
//—————————————————————————————————————————————————————————————————————— 
————————

#include <ACAN2515.h>

//—————————————————————————————————————————————————————————————————————— 
————————
//  MCP2515 connections:
//    - standard SPI pins for SCK, MOSI and MISO
//    - a digital output for CS
//    - interrupt input pin for INT
//—————————————————————————————————————————————————————————————————————— 
————————
// If you use CAN-BUS shield 
(http://wiki.seeedstudio.com/CAN-BUS_Shield_V2.0/) with Arduino Uno,
// use B connections for MISO, MOSI, SCK, #9 or #10 for CS (as you 
want),
// #2 or #3 for INT (as you want).
//—————————————————————————————————————————————————————————————————————— 
————————
// Error codes and possible causes:
//    In case you see "Configuration error 0x1", the Arduino doesn't 
communicate
//       with the 2515. You will get this error if there is no CAN 
shield or if
//       the CS pin is incorrect.
//    In case you see succes up to "Sent: 17" and from then on "Send 
failure":
//       There is a problem with the interrupt. Check if correct pin is 
configured
//—————————————————————————————————————————————————————————————————————— 
————————

static const byte MCP2515_CS  = 5 ; // CS input of MCP2515 (adapt to 
your design)
static const byte MCP2515_INT =  26 ; // INT output of MCP2515 (adapt to 
your design)

//—————————————————————————————————————————————————————————————————————— 
————————
//  MCP2515 Driver object
//—————————————————————————————————————————————————————————————————————— 
————————

ACAN2515 can (MCP2515_CS, SPI, MCP2515_INT) ;

//—————————————————————————————————————————————————————————————————————— 
————————
//  MCP2515 Quartz: adapt to your design
//—————————————————————————————————————————————————————————————————————— 
————————

//static const uint32_t QUARTZ_FREQUENCY = 8UL  1000UL  1000UL ; // 16 
MHz
static const uint32_t QUARTZ_FREQUENCY = 16UL  1000UL  1000UL ; // 16 
MHz

//—————————————————————————————————————————————————————————————————————— 
————————
//   SETUP
//—————————————————————————————————————————————————————————————————————— 
————————

void setup () {
//--- Switch on builtin led
  pinMode (LED_BUILTIN, OUTPUT) ;
  digitalWrite (LED_BUILTIN, HIGH) ;
//--- Start serial
  Serial.begin (115200) ;
//--- Wait for serial (blink led at 10 Hz during waiting)
  while (!Serial) {
    delay (50) ;
    digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ;
  }
//--- Begin SPI
  SPI.begin () ;
//--- Configure ACAN2515
  delay(500);
  Serial.println ("Configure ACAN2515") ;
  //ACAN2515Settings settings (QUARTZ_FREQUENCY, 125UL * 1000UL) ; // 
CAN bit rate 125 kb/s
  ACAN2515Settings settings (QUARTZ_FREQUENCY, 10UL * 1000UL) ; // CAN 
bit rate 125 kb/s

  settings.mRequestedMode = ACAN2515Settings::NormalMode ; // Select 
loopback mode
  //settings.mRequestedMode = ACAN2515Settings::LoopBackMode ; // Select 
loopback mode
  const uint16_t errorCode = can.begin (settings, [] { can.isr () ; }) ;
  if (errorCode == 0) {
    Serial.print ("Bit Rate prescaler: ") ;
    Serial.println (settings.mBitRatePrescaler) ;
    Serial.print ("Propagation Segment: ") ;
    Serial.println (settings.mPropagationSegment) ;
    Serial.print ("Phase segment 1: ") ;
    Serial.println (settings.mPhaseSegment1) ;
    Serial.print ("Phase segment 2: ") ;
    Serial.println (settings.mPhaseSegment2) ;
    Serial.print ("SJW: ") ;
    Serial.println (settings.mSJW) ;
    Serial.print ("Triple Sampling: ") ;
    Serial.println (settings.mTripleSampling ? "yes" : "no") ;
    Serial.print ("Actual bit rate: ") ;
    Serial.print (settings.actualBitRate ()) ;
    Serial.println (" bit/s") ;
    Serial.print ("Exact bit rate ? ") ;
    Serial.println (settings.exactBitRate () ? "yes" : "no") ;
    Serial.print ("Sample point: ") ;
    Serial.print (settings.samplePointFromBitStart ()) ;
    Serial.println ("%") ;
  }else{
    Serial.print ("Configuration error 0x") ;
    Serial.println (errorCode, HEX) ;
  }
}

//---------------------------------------------------------------------- 
------------------------------------------------

static uint32_t gBlinkLedDate = 0 ;
static uint32_t gReceivedFrameCount = 0 ;
static uint32_t gSentFrameCount = 0 ;

//—————————————————————————————————————————————————————————————————————— 
————————

void loop ()
{
  CANMessage frame ;
  if (gBlinkLedDate < millis ())
  {
    gBlinkLedDate += 2000 ;
    digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ;
    frame.ext = true ;
    frame.id = 0x10101010 ;
    frame.len = 8 ;
    frame.data [0] = 0x11 ;
    frame.data [1] = 0x22 ;
    frame.data [2] = 0x33 ;
    frame.data [3] = 0x44 ;
    frame.data [4] = 0x55 ;
    frame.data [5] = 0x66 ;
    frame.data [6] = 0x77 ;
    frame.data [7] = 0x88 ;
    const bool ok = can.tryToSend (frame) ;
    if (ok)
    {
      gSentFrameCount += 1 ;
      Serial.print ("Sent: ") ;
      Serial.println (gSentFrameCount) ;
    }
    else
    {
      Serial.println ("Send failure") ;
    }
  }

}

Mein Code zum Empfangen:

//—————————————————————————————————————————————————————————————————————— 
————————
//  ACAN2515 Demo in loopback mode
//—————————————————————————————————————————————————————————————————————— 
————————

#include <ACAN2515.h>

//—————————————————————————————————————————————————————————————————————— 
————————
//  MCP2515 connections:
//    - standard SPI pins for SCK, MOSI and MISO
//    - a digital output for CS
//    - interrupt input pin for INT
//—————————————————————————————————————————————————————————————————————— 
————————
// If you use CAN-BUS shield 
(http://wiki.seeedstudio.com/CAN-BUS_Shield_V2.0/) with Arduino Uno,
// use B connections for MISO, MOSI, SCK, #9 or #10 for CS (as you 
want),
// #2 or #3 for INT (as you want).
//—————————————————————————————————————————————————————————————————————— 
————————
// Error codes and possible causes:
//    In case you see "Configuration error 0x1", the Arduino doesn't 
communicate
//       with the 2515. You will get this error if there is no CAN 
shield or if
//       the CS pin is incorrect.
//    In case you see succes up to "Sent: 17" and from then on "Send 
failure":
//       There is a problem with the interrupt. Check if correct pin is 
configured
//—————————————————————————————————————————————————————————————————————— 
————————

static const byte MCP2515_CS  = 5 ; // CS input of MCP2515 (adapt to 
your design)
static const byte MCP2515_INT =  26 ; // INT output of MCP2515 (adapt to 
your design)

//—————————————————————————————————————————————————————————————————————— 
————————
//  MCP2515 Driver object
//—————————————————————————————————————————————————————————————————————— 
————————

ACAN2515 can (MCP2515_CS, SPI, MCP2515_INT) ;

//—————————————————————————————————————————————————————————————————————— 
————————
//  MCP2515 Quartz: adapt to your design
//—————————————————————————————————————————————————————————————————————— 
————————

//static const uint32_t QUARTZ_FREQUENCY = 8UL  1000UL  1000UL ; // 16 
MHz
static const uint32_t QUARTZ_FREQUENCY = 16UL  1000UL  1000UL ; // 16 
MHz

//—————————————————————————————————————————————————————————————————————— 
————————
//   SETUP
//—————————————————————————————————————————————————————————————————————— 
————————

void setup () {
//--- Switch on builtin led
  pinMode (LED_BUILTIN, OUTPUT) ;
  digitalWrite (LED_BUILTIN, HIGH) ;
//--- Start serial
  Serial.begin (115200) ;
//--- Wait for serial (blink led at 10 Hz during waiting)
  while (!Serial) {
    delay (50) ;
    digitalWrite (LED_BUILTIN, !digitalRead (LED_BUILTIN)) ;
  }
//--- Begin SPI
  SPI.begin () ;
//--- Configure ACAN2515
  delay(500);
  Serial.println ("Configure ACAN2515") ;
  //ACAN2515Settings settings (QUARTZ_FREQUENCY, 125UL * 1000UL) ; // 
CAN bit rate 125 kb/s
  ACAN2515Settings settings (QUARTZ_FREQUENCY, 10UL * 1000UL) ; // CAN 
bit rate 125 kb/s

  settings.mRequestedMode = ACAN2515Settings::NormalMode ; // Select 
loopback mode
  //settings.mRequestedMode = ACAN2515Settings::LoopBackMode ; // Select 
loopback mode
  const uint16_t errorCode = can.begin (settings, [] { can.isr () ; }) ;
  if (errorCode == 0) {
    Serial.print ("Bit Rate prescaler: ") ;
    Serial.println (settings.mBitRatePrescaler) ;
    Serial.print ("Propagation Segment: ") ;
    Serial.println (settings.mPropagationSegment) ;
    Serial.print ("Phase segment 1: ") ;
    Serial.println (settings.mPhaseSegment1) ;
    Serial.print ("Phase segment 2: ") ;
    Serial.println (settings.mPhaseSegment2) ;
    Serial.print ("SJW: ") ;
    Serial.println (settings.mSJW) ;
    Serial.print ("Triple Sampling: ") ;
    Serial.println (settings.mTripleSampling ? "yes" : "no") ;
    Serial.print ("Actual bit rate: ") ;
    Serial.print (settings.actualBitRate ()) ;
    Serial.println (" bit/s") ;
    Serial.print ("Exact bit rate ? ") ;
    Serial.println (settings.exactBitRate () ? "yes" : "no") ;
    Serial.print ("Sample point: ") ;
    Serial.print (settings.samplePointFromBitStart ()) ;
    Serial.println ("%") ;
  }else{
    Serial.print ("Configuration error 0x") ;
    Serial.println (errorCode, HEX) ;
  }
}

//---------------------------------------------------------------------- 
------------------------------------------------

static uint32_t gBlinkLedDate = 0 ;
static uint32_t gReceivedFrameCount = 0 ;
static uint32_t gSentFrameCount = 0 ;

//—————————————————————————————————————————————————————————————————————— 
————————

void loop ()
{
    CANMessage frame ;

    if (can.receive (frame))
    {
      gReceivedFrameCount ++ ;
      Serial.print ("  id: ");Serial.println (frame.id,HEX);
      Serial.print ("  ext: ");Serial.println (frame.ext);
      Serial.print ("  rtr: ");Serial.println (frame.rtr);
      Serial.print ("  len: ");Serial.println (frame.len);
      Serial.print ("  data: ");
      for(int x=0;x<frame.len;x++)
      {
        Serial.print (frame.data[x],HEX); Serial.print(":");
      }
      Serial.println ("");
      Serial.print ("Received: ") ;
      Serial.println (gReceivedFrameCount) ;
  }
}

2 x ESP32 Mini und 2 x MCP2515 mit TJA1050

Mit 125KBs geht es, wenn ich auf 10KBs umstelle kann ich nichts mehr 
empfangen.
Ich glaube es gibt unterschiedliche Module mit dem MCP2515. Bei mir auf 
dem Osci steht D0695629C.
Hat noch jemand einen Lösungsvorschlag? Bitte nicht müsste gehen. 
Eventuell hat ja jemand einen Democode für mich.
Viele Grüße Michael

von Peter (Gast)


Lesenswert?

Morgen,

mir sind die Can_Module nur als 8MHz bekannt!? Kauf als xx MHz?

Die Datei hätte gereicht, sehr unübersichtlich "//..." !?

Welche Fehler treten auf!? Die Code gibt Fehler aus!?

Peter

von Dave G. (neuroquila-n8fall)


Lesenswert?

Bitte sei so nett und formatiere deinen code entsprechend mit den code 
tags oder hänge die Datei an (noch besser). Das ist so schwer bis 
absolut nicht lesbar.

Mal ganz allgemein:
- Da die Oszis keine Angabe haben würde ich vermuten, dass diese mit 
8MHz ausgeliefert wurden. Google spuckt ja auch nix zu aus. Schade. 
Dementsprechend, wenn du mit 16MHz anrückst, klappt das nur bis zu einer 
gewissen Bitrate aber kommst dann irgendwann nicht mehr tiefer.
- Prüfe auf der Konsolenausgabe ob die Initialisierung überhaupt 
funktioniert. Ich wette das tut sie nämlich nicht.

Was zu prüfen ist:
- Initialisiere mit 8MHz und 10Kbit:
1
static const uint32_t QUARTZ_FREQUENCY = 8UL * 1000UL * 1000UL;
2
ACAN2515Settings settings(QUARTZ_FREQUENCY, 10UL * 1000UL); // CAN bit rate 10 kb/s

Dann prüfe ob die Initialisierung überhaupt funktioniert:
1
SPI.begin(MCP2515_SCK, MCP2515_MISO, MCP2515_MOSI); //SPI Pin Config ohne Interrupt
2
const uint16_t errorCode = can.begin(settings, [] { can.isr(); });
3
  if (errorCode == 0)
4
  {
5
    Serial.print("Bit Rate prescaler: ");
6
    Serial.println(settings.mBitRatePrescaler);
7
    Serial.print("Propagation Segment: ");
8
    Serial.println(settings.mPropagationSegment);
9
    Serial.print("Phase segment 1: ");
10
    Serial.println(settings.mPhaseSegment1);
11
    Serial.print("Phase segment 2: ");
12
    Serial.println(settings.mPhaseSegment2);
13
    Serial.print("SJW: ");
14
    Serial.println(settings.mSJW);
15
    Serial.print("Triple Sampling: ");
16
    Serial.println(settings.mTripleSampling ? "yes" : "no");
17
    Serial.print("Actual bit rate: ");
18
    Serial.print(settings.actualBitRate());
19
    Serial.println(" bit/s");
20
    Serial.print("Exact bit rate ? ");
21
    Serial.println(settings.exactBitRate() ? "yes" : "no");
22
    Serial.print("Sample point: ");
23
    Serial.print(settings.samplePointFromBitStart());
24
    Serial.println("%");
25
  }
26
  else
27
  {
28
    Serial.print("Configuration error 0x");
29
    Serial.println(errorCode, HEX);
30
  }


Wenn die Initialisierung fehlschlägt, dann hat es sehr wahrscheinlich 
was mit dem Oszi zu tun. SPI sieht jedenfalls gut aus. Da das Teil nicht 
gelabelt ist und man nicht weiß wie viel er nun hat, würde ich pauschal 
einfach diese durch einen Austauschen von dem man den Wert kennt ;)

In dem Codebeispiel von mir verzichte ich gezielt auf Interrupt und gehe 
über den Buffer. Um Nachrichten auszulesen liest man jeden Zyklus über 
den Buffer, prüft ob es was gibt und verarbeitet dann:
1
CANMessage Message;
2
  if (can.receive(Message))
3
  {
4
    //Schau, was in "Message" drin ist.
5
  }

Wenn das dann klappen sollte kannst du weiter deinen code benutzen...


Aber wie gesagt: Es steht und fällt mit dem verbauten Oszi. Gibt man 
Grütze dann beim Initialisieren an, kommt auch Grütze raus ;)

von Michael (Gast)



Lesenswert?

Hallo Dave,
danke für die konstruktive Hilfe.
Ich habe die beiden Files angehängt.
Die initialisierung klappt.

Hier die Augabe auf der Console:
Empfänger:
11:01:24.692 -> Configure ACAN2515
11:01:24.692 -> Bit Rate prescaler: 16
11:01:24.692 -> Propagation Segment: 8
11:01:24.692 -> Phase segment 1: 8
11:01:24.739 -> Phase segment 2: 8
11:01:24.739 -> SJW: 4
11:01:24.739 -> Triple Sampling: yes
11:01:24.739 -> Actual bit rate: 10000 bit/s
11:01:24.739 -> Exact bit rate ? yes
11:01:24.739 -> Sample point: 64%

Sender:
Configure ACAN2515
Bit Rate prescaler: 16
Propagation Segment: 8
Phase segment 1: 8
Phase segment 2: 8
SJW: 4
Triple Sampling: yes
Actual bit rate: 10000 bit/s
Exact bit rate ? yes
Sample point: 64%
Sent: 1
Sent: 2

Sobald ich die Bit Rate auf 125KBs stelle empfange ich etwas.
Ich hatte noch 2 MCP2515 mit TJA1050 Modulen wo auf dem Osci 8MHz steht. 
Auch hier das gleicher Ergebnis.
Ich bin ratlos.
Viele Grüße
Michael

von Peter (Gast)


Lesenswert?

Hallo,
vergesse nicht den Pullup_Widerstand. sowohl Cs als erst recht wenn Du 
mit INT arbeitest. // [INT] total überflüssig!!

Habe auch den SPI, wie auch beschrieben gehändelt!! ESP32 ACAN2515.... 
hier CAN-Bus FD beschrieben.
Warum nicht so wie es Pierre beschreibt??

//---------------------------------------------------------------------- 
------
static const byte MCP2517_SCK  = 18 ; // SCK input of MCP2517
static const byte MCP2517_MOSI = 23 ; // SDI input of MCP2517
static const byte MCP2517_MISO = 19 ; // SDO output of MCP2517
static const byte MCP2517_CS  = 5 ;   // CS input of MCP2517

static const byte MCP2517_INT = 27 ;  // INT output of MCP2517

ACAN2517FD can (MCP2517_CS, SPI, MCP2517_INT) ;

von Peter (Gast)


Lesenswert?

Zur Info:

SHK Fragen

Schaut mal rein, ist nicht schlecht.

http://www.bosy-online.de/

Peter

von Peter (Gast)


Lesenswert?

Hallo,

versuch es bitte mal mit einer anderen ID (11 Bit) bzw. lade Dir die 
neue SW herunter von ACAN2515 falls Du sie nicht innerhalb der letzten 6 
Tage heruntergeladen hast.

2.1.0 : fixed extended frame reception

Michael schrieb:
> Sobald ich die Bit Rate auf 125KBs stelle empfange ich "etwas".
Frage "etwas", das was Du sendest?? ist der Empfang korrekt.

Vielleicht auch mal einen Schritt zurückgehen und wieder die loopback 
mode ausprobieren.(beide Module)

Peter

von Dave G. (neuroquila-n8fall)


Lesenswert?

Aloha,

ich habe auf den Bildern gesehen, dass der Bus auf beiden Seiten 
terminiert ist. Entferne mal die Terminierung auf der einen Seite. Laut 
Spezi ist es nur vorgesehen am "Ende" zu Terminieren.

Das wird vermutlich das Problem mit der niedrigen Bitrate nicht beheben 
aber ein sauberes Fundament ist wichtig ;)

Ich meine mich zu erinnern, dass manche ESP32s stark vereinfacht 
ausgedrückt nicht in der Lage sind die Frequenz so niedrig zu drücken, 
dass es für 10kbit/s reicht. Ich habe grundsätzlich nur Wroom32 Module 
im Einsatz mit Devkit 4 Layout (diese haben eine stabilere 
Spannungsversorgung, die nicht gleich bei jedem Spike in die Knie geht). 
Mit denen funktioniert es. Habe einen dieser im Auto verbaut für 
100kbit/s und einen an der Heizung mit 10kbit/s. Leider sehe ich auf den 
Bildern das exakte Modell deiner Chips nicht.

Außerdem betreibe ich die Module ausschließlich ohne Interrupt, da das 
sonst MQTT oder andere Peripherie zum "laggen" bringen kann (meine 
Beobachtung - "Your milage may vary").


Kleine große Randnotiz: Wenn man nach Möglichkeiten sucht CAN-Bus mit 
dem ESP32 zu verwenden, stößt man unweigerlich auch auf einen 
Transceiver (SN65HVD230), den man direkt an die CAN-Fähigen Pins des 
ESPs anklemmen kann. Finger weg davon, denn damit kommt man auch nicht 
auf 10kbit/s und meine Tests mit 100kbit/s am Auto verliefen auch 
fruchtlos und dabei sei gesagt, dass der CAN-Bus im Auto außerordentlich 
stabil und Fehlertolerant läuft. Auch das Nachbauen des Moduls auf eine 
Platine hat nie wirklich funktioniert. Auch wenn die beiden Platinen 
miteinander kommunizieren konnten funktionierte das weder an der Heizung 
noch am Auto. Dabei waren die Komponenten 1:1 identisch mit dem 
gekauften Modul. Es gibt also anscheinend dramatische Unterschiede bei 
den Chips die dazu führen, dass etwas nicht sauber funktioniert.
Ich habe auch hierzu mal einen Controller aus dem Auto auseinander 
genommen und gecheckt, was der Hersteller da gemacht hat und 
festgestellt, dass auch hier der MCP2515 und TJA1050 zum Einsatz kommen.
Ferner gibt es auch noch dramatische Unterschiede zwischen den 
Frameworks. Ich benutze nun das "offizielle" ESP32 Framework zum 
kompilieren, statt das was extra für das AZ-Delivery Ding bereitgestellt 
wurde. Vorher gab es nämlich dabei auch Probleme. Ich habs mir leider 
nicht notiert aber ich erinnere mich damit auch das Sendeproblem behoben 
zu haben, was mit den älteren Wroom32 aufgetreten war (Das Devkit, wo 
die Antenne nicht über das Board herausragt)

Zusammengefasst:
Wroom32[U] + "NiRen" gelabeltes CAN-Modul mit 16MHz Oszi funktioniert in 
meinen Umgebungen tadellos mit dem exakten Code der in meinem Repo drin 
ist sowie des Beispielcodes von ACAN2515.

von Michael (Gast)


Lesenswert?

Hallo Dave,
ich habe mir gerade genau dein Setup bestellt.
Danke für die Unterstützung.

Ich gebe Rückmeldung sobald die HW da ist.
In der Zwischenzeit teset ich mit der vorhandenen HW weiter.

Viele Grüße

Michael

von Peter (Gast)


Lesenswert?

Hallo,

nun hatte mir gestern ebenfalls die Bilder nochmals angeschaut, aber 
hatte eher an den nicht gesetzten Abschluss geglaubt bzw. gehofft.

Ein !Can-Bus! hat zwei Enden und zwei Abschlüsse zu je ~120 Ohm (bzw. 
insgesamt !! ~60 Ohm Belastung). Das ist die Vorgabe, habe gerade im 
Automotiv_Bereich Geräte gesehen, die hier eingestellt werden konnten 
(>2).

Halte Micheals  Einstellung, in diesem Fall ohne BM1, aber für richtig 
und notwendig.

Mir ist aber aufgefallen das eine Masseverbindung zwischen den 
Teilnehmern, wohl vorhanden war, aber nicht angeschlossen wurde (sw 
Leitung). Muss nicht, aber kann zum Fehler führen. Weiterhin existiert 
so eine gewisse Sicherheit. Ein späterer Masseversatz zum BM1 kann sehr 
teuer werden.

Was bitte hat die Can-bus Bitrate mit der SPI Frequenz zu tun? Der 
MCP2515 ist ein eigenständiger Controller. Nun in wie weit die SW von 
Pierre die HW bei der Installation wirklich kontrolliert, ist mir nicht 
bekannt. Aber die hat doch geklappt. "No error"  ... oder? beide.

Michael schrieb:
> }else{
>     Serial.print ("Configuration error 0x") ;
>     Serial.println (errorCode, HEX) ;

Daraus folgt doch, das mit der HW Unsicherheit des Can-Bus Moduls, nur 
noch 3 Punkte existieren die zum Fehler führen.

Der Interrupt von der ACAN_SW hat mich nie überzeugt. Ich sehe bei 
Michael auch keine Widerstände verbaut!! noch hat er darauf geantwortet.

Das gleich gilt für CS.

Der 5V Voltanschluss ist vielleicht nicht korrekt bzw. Teil 
geschrottet....

2 mal wurde gesendet "Sent" oder? Kein Antwort...?

Funktionieren denn beide Modul noch in der loopback Mode, keine Aussage! 
nicht kontrolliert!??

Wie schon mal erwähnt habe ich ein andere Can-bus Module verwendet. Das 
Can-Modul lief bis auf einen Massefehler, der das Can-Modul geschrottet 
hat, mit UNO, STM32, ESP8266 d1 bzw.(R2) und ESP32 (von bis-irgendwas) 
problemlos.

Das auf dem Markt die Qualität der Module sehr unterschiedlich, ja sogar 
teilweise unmöglich ist, kann ich nur bestätigen, aber.. Michael hat wie 
er schrieben hat doch die Can Module schon ausgetauscht. Doch, sehr 
unwahrscheinlich .

Qualität:

Nun bevor ich allerdings ein Texas Bauteile anzweifele würde ich eher 
auf MCP und ESP tippen, hier werden Daten erhoben die einfach nicht 
vorhanden sind oder nicht stimmen. Der MCP2515 hat jahrelang im 
Datenblatt Einstellungen aufgeführt, die gar nicht funktionierten.

Habe 20 Jahre im Automotiv gearbeitet und habe nicht einmal mit MCP 
Can-Controller zutun gehabt, außer in der Can-Bus Karte der Firma zur 
Steuerung des Testsystems. Beurteilung lasse ich hier lieber.

Mein Ratschlag an Michael:

Vereinheitliche deine Installation Sender Empfänger mit 8MHz
kein INT,
CS mit 10 K Widerstand an 3,3V.
5 Volt Anschluss Kontrolle,
Module mit Loopback Mode testen.
Dann auf Normalmode Can Bus richtig anschließen. evtl. messen.
GND1 an GND2.

Peter

von Dave G. (neuroquila-n8fall)


Lesenswert?

Peter, ich weiß dein Wissen in dem Bereich zu teilen wirklich sehr zu 
schätzen. Natürlich hast du Recht mit der Terminierung. Ich habe hier 
was mit meinem Auto verwechselt, wo ich mich ja einfach nur anflansche 
und der Bus ja bereits durch die vorhandene Infrastruktur korrekt 
terminiert ist.

Jedoch gibt es Hinweise drauf, dass der ESP32 nicht in der Lage ist den 
Can-Controller richtig zu initialisieren, wenn die interne Taktung da 
nicht passt. Den genauen technischen Hintergrund weiß ich gerade auch 
nicht mehr, hat aber sicher was mit der SPI Schnittstelle zu tun und wie 
die internen Oszis geschaltet sind. Ich erinnere mich dass es da sogar 
Konflikte gab, wenn Wifi noch mit angesteuert wurde und dass da eine 
gewisse Chiprevision nicht mit klar kam.

Meine Tests wie gesagt haben ergeben, dass nicht nur der Controller 
manchmal in Schieflage gerät, obwohl die Konfigurationsregister korrekt 
angenommen werden, sondern auch das verwendete Framework zum Kompilieren 
erheblichen Einfluss auf die Sende- und Empfangsstabilität nimmt. Mit 
dem "falschen" Framework musste ich teils eine Seite neu starten, damit 
die Kommunikation wieder funktioniert. Wir sind hier natürlich eindeutig 
in der Domäne des ESPs und dessen SPI Interface und ich denke hier liegt 
auch ultimativ der Hund begraben. Diese "Wemos" ähnlichen Module sind 
anscheinend nicht wirklich zuverlässig. Aus einem anderen Fall weiß ich, 
dass diese nicht zuverlässig funktionieren. Ich vermute hier wurden alte 
Revisionen mit Firmware Bugs verbaut. Das würde dann auch den teils sehr 
niedrigen Preis erklären.

Was ich allerdings sicher mittlerweile weiß ist, dass es massive 
Unterschiede gibt bei den ESP "Wroom32" Modellen und deren zickigkeit in 
Bezug auf Peripherie - und natürlich wie die Module bestückt worden 
sind. Das führt dann auch zu unerklärlichen Phänomenen. Deswegen beziehe 
ich mich da einfach auf meine Konfigurationen, die reibungslos 
funktionieren und benutze diese als "Richtwert".

Ich vermute mal ganz stark, dass beide ESPs im Fall von Michael über USB 
mit dem Rechner verbunden wurden. Damit teilen sich beide das gleiche 
Potenzial, sofern die am gleichen Hub hängen oder der PC Hersteller faul 
war ;)

von Peter (Gast)


Lesenswert?

Hi,

danke, aber wir sind in dieser Problematik da weitgehend 
übereinstimmend.
Ich glaube, das die fehlenden HW Timer im ESP viel ausmachen.

Allerdings,.. das Michael in dieser Phase des Aufbaues schon solche 
Probleme hat lässt mich vermuten das er das Mitlesen der Daten (Heizung) 
vergessen kann. Weil ich hatte Probleme mit zu fahrlässigen Can-Bus 
Modulen und Arduino.

Vielleicht auch mal ein Versuch starten, mit einem Arduino 
Uno/Mega/Due...u.a.(!!5V) falls die oder einer vorhanden ist. Als 
Ersatz, WLan ist noch nicht gefragt oder?

Ansonsten sollte man nach der Stromhalm der Methode gehen. Vielleicht...

Mal eine Frage an Dich, Du arbeitest doch mit den neueren ELV 
Ventilsteller. Ermittelst Du die Ventilwerte selbst oder aus anderen 
Programmen. Hast Du hier Einblick auf die 868MHz Telegramme, Aufbau usw.
Meine sind schon einige Jahre alt und ich werde sie irgendwann mal 
wechseln müssen. Es wird diesbezüglich nichts mehr veröffentlicht noch 
glaube ich das die Telegramme identisch sind mit den alten FHT 
Telegrammen oder FS20.

Danke

Peter

von Michael (Gast)


Lesenswert?

Hallo Zusammen,
hier ein kurzes Update.
Beide Modulen laufen im Loop-Modus.
Inzwischen habe ich auch die Kommunikation zwischen zwei ESP´s 
hinbekommen.
Ich hatte noch ein paar 16MhZ Quarze. Nachdem ich diese auf die Module 
gelötet habe und den IRQ deaktivuert habe klappte auch die Kommunikation 
zwischen zwei ESP´s bei 10KBs. Was ich aber nicht verstehe, ist der 
Loop- Modus. Wenn der Loop-Modus ohne Modifikation funktioniert kan es 
nur noch am TJA1050 liegen, den der wird im Loop-Modus nicht benutzt. Da 
ich inzwischen fast 10 Module hier liegen habe kann ich einen defekt 
ausschliessen.
Eine stabile 5V Verbindung zum TJA1050 besteht.
Was ich auch merkwürdig finde, ist das die Kommunikation nur klappt wenn 
ich die Frequenz auf 8Mhz im Code setze. Wenn ich auf 16Mhz stelle 
klappt es wieder nicht.
Die beiden ESP´s hängen nicht an einem Hub. Der eine hängt am Desktop PC 
und der andere an einem Notebook wo ich mich per RDP verbinde. Das hat 
für mich den Vorteil, dass ich bei beiden ESP´s ein logging sehe. Die 
offene Masseverbindung stammt aus den Tests.

Ich werde weiter testen und berichten.

Vielen Dank für die Unterstützung.

von Peter (Gast)


Lesenswert?

Hallo,

ich habe weder einen vollständigen Schaltplan von deinem CAN Modul 
gefunden noch habe ich ein Wechsel des Quarz je in Betracht gezogen, 
weil zu unsicher und wer hat schon die notwendigen Geräte zu Hause. Der 
Wechsel des Quarz beinhaltet auch den Wechsel der Kondensatoren, normal. 
Es gab mal eine SW, Excelliste oder so, die weiter helfen könnte.

Aber was willst Du damit erreichen 8MHz funktioniert, schreibst Du und 
ACAN2515 beinhaltet soweit ich weis diesen Quarz und die Einstellungen 
der Register!! Datenblatt(ab S.39.) und 10 Kbit!.. passt. Glaube kaum, 
das das die spätere  SW stört.

Nimm was funktioniert.

Peter

von Dave G. (neuroquila-n8fall)


Lesenswert?

Peter schrieb:

>
> Mal eine Frage an Dich, Du arbeitest doch mit den neueren ELV
> Ventilsteller. Ermittelst Du die Ventilwerte selbst oder aus anderen
> Programmen. Hast Du hier Einblick auf die 868MHz Telegramme, Aufbau usw.
> Meine sind schon einige Jahre alt und ich werde sie irgendwann mal
> wechseln müssen. Es wird diesbezüglich nichts mehr veröffentlicht noch
> glaube ich das die Telegramme identisch sind mit den alten FHT
> Telegrammen oder FS20.

Ich habe die hmip-etrv-2 an Raspberrymatic laufen (als Addon in Home 
Assistant) und ziehe darüber die Ventilstellung und andere Parameter 
über MQTT auf den ESP.
Als OCCU Variante finde ich den Kram richtig gut aber als Cloud-geraffel 
überhaupt nicht. Ständig ist der Rotz offline...

von Peter (Gast)


Lesenswert?

@Michael
Retour,
habe ich falsch verstanden. :-(

Nee dat verstehe ich auch nicht mehr... wie geht Das. Die Wert cfg1-3 
können doch nicht stimmen!

@ Dave
die alte Variante funktioniert.

Ich beziehe über ein ELV Empfänger alle Ventilwerte fast immer komplett, 
von 3 mindestens 1 Sendung. Leider sieht ein Regelverlauf doch etwas 
anders aus und die Tage sind gezählt.

Danke Dave

Peter

von Peter (Gast)


Lesenswert?

Hallo,
Michael habe tatsächlich ein NIREN Modul bei mir gefunden.
Habe es an meine BM1 Simulation (10K) angeschlossen mit einem Uno bzw. 
MCP_Can Programm betrieben. Kein Problem, funktioniert auch mit Int.

Allerdings mit einer kleinen Änderung in der Lib. 
CAN.begin(CAN_10KBPS,MCP_8MHz) bzw. in der mcp_can.h byte begin(byte 
speedset, const byte clockset);     -->// init can, alt =MCP_16MHz oder 
MCP_8Mhz schreiben.

Auch "ohne" Abschluss an beiden Modulen, vielleicht etwas schlechter~.

Nun die Module funktionieren somit auch mit 10k. Werde keine HW_Änderung 
vornehmen 3,3V bzw. 5V, aber auf ACAN 2515 wechseln vielleicht morgen.
Nehme an Du hast die VCC_Leistung (3,3V) gekappt auf der Platine!?

Vielleicht liegt es am Programm bzw. auch an einer unnötigen Festlegung.

Peter

von Dave G. (neuroquila-n8fall)


Lesenswert?

Ich habe mit esp und acan2515 mit int null Erfolg im Auto aber an der 
bm1 klappt es sowohl mit 8 als auch 16mhz. Mcp_can bereitete mir nur 
Probleme aber das hing wohl mit der falschen Plattform zusammen. 
Esp32!=Esp32 sag ich nur...

Canbus ist dann wohl doch sehr unterschiedlich obwohl es ja Standards 
gibt...

von Peter (Gast)


Lesenswert?

hallo,

der Test vom Interrupt, noch der fehlende Anschlusses war geplant, halt
 ein einfaches Prog. Aber durch den Interrupt kannst Du mit Filter 
schneller gezielt mit Body_Id auf die Platine im Verbund zugreifen.

Nun mit der ACAN2515_Sw habe ich nie wirklich gearbeitet immer mit 
MCP_Can, aber mit ACAN2517 schon und der Interrupt hat mich dabei 
überhaupt nicht überzeugt.

Nehme aber an, das Du den ESP int_Unterschied kennst. Das ist wieder so 
eine Frickelei, die "~Ankündigung" des Int durch void IRAM_ATTR 
RTCISR(); z.B.

Der Standard existiert, er muss nur eingehalten werden, oder würdest Du 
mit 6 bis 8KV auf deine Eingänge schießen können. Man sieht kaum 
irgendwelchen Schutz und fingert ständig an den Platinen herum ohne 
ESDschutz.

Peter

von Peter (Gast)


Lesenswert?

Hi,
wie angesagt..ACAN2515 gleicher aufbau

16:17:36.411 -> Bit Rate prescaler: 16

16:17:36.457 -> Propagation Segment: 8

16:17:36.457 -> Phase segment 1: 8

16:17:36.457 -> Phase segment 2: 8

16:17:36.457 -> SJW: 4

16:17:36.457 -> Triple Sampling: yes

16:17:36.457 -> Actual bit rate: 10000 bit/s

16:17:36.457 -> Exact bit rate ? yes

16:17:36.457 -> Sample point: 64%

......Auszug

16:17:36.785 ->   id:0x 202

16:27:34.827 ->   id:0x 204  ext: 0  rtr: 0  len: 1  data: :0x45 Rec.: 
145

16:27:34.827 ->   id:0x 206  ext: 0  rtr: 0  len: 1  data: :0x0 Rec.: 
146

16:27:35.483 ->   id:0x 207  ext: 0  rtr: 0  len: 2  data: :0x3:0xF8 
Rec.: 147

Testaufbau: BM1_Simulation über Canbus an Arduino Uno NiRen mit ACAN2515 
mit Interrupt (Funktion nicht überprüft).

Funktioniert. ok?

Abschließend folgt: ESP32 D2 mit ACAN2515 an Can-Bus Modul Watterott V2 
(3V3 mit 5V)

Peter

von Michael (Gast)


Lesenswert?

Hallo Peter,
danke für die Tests. Ich werde es ausprobieren.
Leider bin ich zur Zeit etwas frustiert, dass nichts klappt.
Werde mich aber in den nächsten Tagen wieder dransetzten.

Viele Grüße

Michael

von Peter (Gast)


Lesenswert?

Hallo,

leider muss ich den letzten Test verschieben.

Bei mir lässt sich kein ESP32 mehr installieren es fehlen angeblich 2 
Datei, die aber vorhanden sind. Scheint bekannt zu sein, ändert sich 
aber nichts??

Aber mein Problem hat nichts mit Michaels zu tun.

Da Dave und Crazyhorse langjährige Erfahrung mit dem Aufbau dargelegt 
haben bestätigt dies meine Versuche das es funktionieren muss, sowohl 
von der Sw
als auch von der HW.

Ich halte allerdings den Treiber TJA1050 für veraltet. Alle Bauteile 
sind beständig mit einander, aber das heißt nicht das der 
Potenzialunterschied zwischen MCP2515 und TJA sich nicht vereinzelt 
bemerkbar macht. Der MCP2562 ist hier besser geeignet, aber ist meine 
Meinung.
Genau so würde ich keinen Quarz für diese Aufbau wechseln halte ich auch 
für unnötig bei 10K.

Bleibt eine eventuelle Schädigung deiner Module. Es sieht so aus als ob 
Du die 5V_Leitung auf der Bottom_seite gelötet hast, warum nicht am IC 
direkt ?
Da hast Du mehr Platz.

Peter

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

So,
erledigt. ESP 32 Neuinstalliert

Wenn ich es richtig eingestellt habe waren es 240Mhz ESP 2core und 10K 
Can-Bus.

Funktioniert wie die anderen auch, zu mindestens für den Zeitraum des 
Testes.
ok

Zur Info. Die Kabel am Aufbau sind erforderlich weil der Can-Bus über 
ICSP (SPI) normal gesteuert wird der ist nicht vorhanden beim ESP.

Inzwischen hat Pierre ACAN2515(17) scheinbar über SW den Pin CS und Int 
mit Pullup belegt.

Es sollten somit keine Gründe geben, das Michael nicht bald seine 
Heizung mal untersuchen kann.

Frieden!

Peter

von Peter (Gast)


Lesenswert?

Hi,
noch ein kleiner Nachtrag zur SW der ACAN2515

Da die Setting Infos auch beim fehlenden SCLK_Anschlusses des SPI 
angezeigt werden ist davon auszugehen, das diese unabhängig von der 
Hardware berechnet werden und nicht über die HW ermittelt werden. 
Entscheidend ist hier also anscheinend nur der Error Code, leide hier 
ohne Text.

Der Interrupt funktioniert auch und die Impulsbreite ist ~ok sie bewegt 
sich zwischen 40 und 70µS.(?)

@Michael

Ein Ratschlag von mir.

Alles einfach mal auseinander Ruppen und ein anderes Programme 
aufspielen z.B.
WiFiScan oder so.. und danach erneut mit Ruhe und Sorgfalt 
aufbauen...ESP !SPI!

Auch hier... ein Gedanke mit Abscheu an den Verbrecher Putin!

Peter

von Michael (Gast)


Lesenswert?

Hallo Zusammen,
es klappt bei mir.

Ich habe mir einen Can-Bus Analyzer von Seed bestellt und diesen an die 
Heizung geklemmt und Daten mitgeschnitten.
Dann habe ich diese Daten mit dem Seed Analyzer als Test an den ESP32 
mit MCP2515 gesendet. Und was soll ich sagen, es klappt.
Danach habe ich den ESP 32 an die Heizung geklemmt und es geht auch.

Ich kann leider nicht sagen warum es die ganze Zeit nicht geklappt hat.
Ich kann nur vermuten das bei meinen Tests ein Rien Modul defekt ist, 
oder das die Kombination von zwei Modulen als Sender und Empfänger nicht 
geht.

Ich werde weiter berichten.

Danke an alle die mich Unterstützt haben.

Viele Grüße

Michael

von Jörg R. (rejoe2)


Lesenswert?

Hallo zusammen,

klinke mich auch mal hier ein, nachdem gestern die Junkers das erste Mal 
per MQTT einen "mach aus"-Befehl akzeptiert hat (und evtl. die Uhr 
gestellt?!?).

Vorab mal ein fettes Dankeschön an alle, die hier (und an anderer 
Stelle) mit daran gearbeitet haben, dass es auch für Hobbyisten wie mich 
möglich ist, Zugriff auf die Therme zu bekommen - speziell auch an Dave 
G., dessen Beiträge hier (und Doku zu seiner Firmware) mich sehr 
ermutigt haben, nochmal in der "Grabbelkiste" zu suchen, was denn nicht 
schon alles an verwertbaren Bauteilen da ist...

Junkers-Setup hier:
- ZBS 7-22 MR A 23 (Jahrgang ca. 2003)
- BM2 (!*) (eingebaut statt TA 211 E)
- TA250

Can2Automation
- (No-Name-) ESP32 mit der Firmware von Dave G.
- "NiRen" mit 8.000-er Quartz (via 3.3V-Anschluss vom ESP-Board 
versorgt)

Heim-Automatisierung
- FHEM
- Thermostate (Homematic HM-CC-RT-DN und Z-Wave (Spirit Z)) liefern 
(gewichtbare) Infos zum aktuellen Öffnungsgrad aus praktisch allen 
Räumen.
- Diverse Temperaturen werden bereits auf anderem Weg an FHEM gesendet, 
insbes. außen, am Kesselausgang, WW- und Heizung je Vor- und Rücklauf, 
alle Wohnräume, etc.

TA250 und BM2* sind erst die Tage (aus der Bucht) eingetroffen, und 
gestern abend war dann Gelegenheit, beides mal an die Therme 
anzuschließen. Ein passender Stecker für das BM2 lag auch noch rum - und 
siehe da, die Therme meckert nicht darüber, dass es keinen Teilnehmer 
mit BM1 am Bus gibt, sondern ist mit dem daran angeschlossenen 
Außenfühler und dem TA250 bereits rundherum glücklich. Das BM2 gab es - 
im Unterschied zu BM1 - in der Bucht zu einem akzeptablen Preis. 
"Leider" habe ich erst gekauft und dann in die Doku geschaut, und da 
steht, man würde unbedingt ein BM1 benötigen. Optisch kann man 
jedenfalls auf den im Web zu findenden Bildern beide aber (bis auf den 
Stecker) nicht unterscheiden, v.a. (offene) Lötpunkte für einen 
Abschluss-Widerstand habe ich auch nicht gefunden.
Sieht irgendwie so aus, als wäre "alles dasselbe" und würde dann eben 
seine Funktionalität schlicht danach annehmen, welchen Widerstandswert 
es an AF vorfindet?

Werde das jedenfalls jetzt erst mal ohne den ESP ein paar Tage so vor 
sich hintuckern lassen, nicht, dass eines der Junkers-Teile einen Hau 
hat oder doch ein BM1 oder ein R à 120 Ohm vermißt wird...

Fragen bis dahin:
- Aus 
https://github.com/Neuroquila-n8fall/JunkersControl#automatic-controller-detection 
ergibt sich, dass der TA250 "eigentlich" gar nicht zwingend benötigt 
wird, sondern eventuell eher "stört" bzw. sinvollerweise nur für den 
Notfall bereit gehalten werden müßte. Soweit korrekt?
Davon dürfte nämlich im wesentlichen abhängen, wo das alles seinen Platz 
findet. Wenn man den TA250 eigentlich nicht braucht, würde ich den (bzw. 
die Konsole davon) nämlich einfach neben der Therme installieren und 
überlegen, ob es ggf. sinnvoll ist, noch einen NTC in den "Leitraum" zu 
führen...

- Sonst würde ich eben Kabel verlegen, das Teil direkt dort verbauen, 
den ESP in eine größere Hohlraumdose hinter den TA250 setzen und aus der 
24V-Leitung via DC-DC-Konverter mit versorgen. Unabhängig vom Ort des 
Verbaus: Hat das mit der Versorgung schon mal jemand gemacht, oder sind 
da Probleme zu erwarten?
- An sich wäre ich gerne "mutig" und direkt "alles" über den ESP in 
Richtung Heatronic schicken. In 
https://github.com/Neuroquila-n8fall/JunkersControl#external-temperature-sensors 
ist zu finden, dass externe Sensoren genutzt werden. Ist das zwingend? 
Oder könnte man das (vorläufig) auch über den "parameters"-Topic lösen? 
Jedenfalls manche Werte lassen sich doch über diesen Weg einspeisen, 
oder?
Gibt es sonst was, was "zwingend" erforderlich ist, damit das läuft?

Bis hierhin erst mal,

Jörg R.

von Peter* (Gast)


Lesenswert?

Hallo,

Du kannst über die Servicefunktion, lass mich nicht Lügen ~1.9 das Gerät 
grob ermitteln welches angeschlossen, besser erkannt wird. [3]

BM2
Hier ist scheinbar die FD ausschlaggebend, bis ab. Ansonsten habe ich 
"oder" gelesen. Wird identisch zu BM1 sein.

Glaube das bei vielen, einschließlich meiner Person, nach dem 
anschließen Probleme auftauchten. Evtl. wird der Eingang genauer 
vermessen und Bosch unterbindet dann die Kommunikation mit Fremdgeräten.

Die Preise sind teilweise unverschämt, die sind nicht einmal komplett. 
TAxxx.

Nun wie ich schon öfters angemerkt habe das TA250...TAxxx ist in der 
einfachsten Form ein Bedien- und Informationsteil und weiterführend 
benutzt man den CAN-Bus.

Kann mich an keine Telegramme verrinnen die eine besondere Absprache 
zwischen BM1 und TA250 beinhalteten. Allerdings waren meine Versuche. 
Schreibtisch-versuche ohne Heizung. Der weiterführende Bus ist über RAM, 
I2C....Somit es vom Programm abhängig ob alle Daten im RAM hinterlegt 
wurden.

Probiere es vor dem Winter aus und Du ja sollst sowieso Gas sparen. :-)

von Peter* (Gast)


Lesenswert?


von Dave G. (neuroquila-n8fall)


Lesenswert?

Du kannst den ESP mit der 24v Leitung von der Therme betreiben. Achte 
aber drauf, dass der Spannungsregler von der Therme nicht gleichzeitig 
TAxxx und ESP in der Bootphase versorgen kann. ESPs (32er) sind leider 
sehr hungrig beim Start...

Ansonsten sind die Temperaturfühler, die ich mit eingebaut hatte, nur 
dazu da um auf dem Dashboard von HA oder FHEM oder wie auch immer noch 
zusätzlich Temperaturen anzuzeigen, die sonst nicht zur Verfügung stehen 
würden bzw. nicht in der Granularität. Einfach Ignorieren, falls nicht 
benötigt. Allerdings braucht "meine" Steuerung eine Idee was als Vorlauf 
eingestellt werden soll und das kommt dann von deinem "Leitsystem" also 
FHEM, oder HA oder was auch immer :)





Übrigens hat meine Hauptplatine den Geist aufgegeben. Die sendet nur 
noch Müll über den Bus. Oftmals 50 Mal hintereinander die 
Vorlauftemperatur. Sie fährt auch nicht mehr runter, weckt sich 
selbstständig auf und haut die VLT in den Begrenzer. Ich muss jetzt 
erstmal ein neues Board besorgen und jemanden finden, der mir das 
verbaut und ggf. anlernt...

Wenn ich überhaupt diesen Winter angesichts der Gaspreise die Heizung 
einschalten werde....

Beitrag #7156105 wurde vom Autor gelöscht.
von Jörg R. (rejoe2)


Lesenswert?

Vorab mal Danke für eure Rückmeldungen!

(Irgendwie muss ich mich erst an diese Foren-SW gewöhnen, die macht 
gefühlt komische Sachen).

Peter* schrieb:
> Probiere es vor dem Winter aus und Du ja sollst sowieso Gas sparen. :-)
Das war der Plan, wobei das Einsparpotential vermutlich nicht mehr soooo 
groß ist, wir sind durch andere Maßnahmen schon recht "ok" (und die 
letzten 20% und so...).

Dave G. schrieb:
> Du kannst den ESP mit der 24v Leitung von der Therme betreiben. Achte
> aber drauf, dass der Spannungsregler von der Therme nicht gleichzeitig
> TAxxx und ESP in der Bootphase versorgen kann. ESPs (32er) sind leider
> sehr hungrig beim Start...
DANEK! Sowas hatte ich schon vermutet...

> Ansonsten sind die Temperaturfühler, die ich mit eingebaut hatte, nur
> dazu da um auf dem Dashboard von HA oder FHEM oder wie auch immer noch
> zusätzlich Temperaturen anzuzeigen, die sonst nicht zur Verfügung stehen
> würden bzw. nicht in der Granularität. Einfach Ignorieren, falls nicht
> benötigt.
Wie gesagt: Die Temperaturen an sich sind da, aber dann deaktiviere ich 
den 1-wire-Teil erst mal.

> Allerdings braucht "meine" Steuerung eine Idee was als Vorlauf
> eingestellt werden soll und das kommt dann von deinem "Leitsystem" also
> FHEM, oder HA oder was auch immer :)
Dass das der "kitzelige" Punkt ist, ist soweit klar. Wenn ich es richtig 
verstanden habe, hast du auch mehr oder weniger ausschließlich normale 
Heizkörper mit elektronischen Thermostaten, die die Ventilstellung 
preisgeben, und bei dir ist das "meistgeöffnete" Ventil (neben der 
Wunschtemperatur) die eigentliche Stellgröße.
Ich plane im ersten Schritt mal, mit einer Art "gewichteten 
Durchschnittsgröße" zu arbeiten, eventuell noch mit der (zu 
interpretierenden) Tendenz als Hilfsgröße. In FHEM gibt es dazu "schon 
ewig" ein Hilfstool, das dann auch z.B. immer die "letzten 4" ignorieren 
kann usw..

> Übrigens hat meine Hauptplatine den Geist aufgegeben. Die sendet nur
> noch Müll über den Bus.
Das klingt nicht lustig, hoffe, du bekommst Ersatz und mußt nicht 
frieren, falls uns nicht sowieso das Gas abgedreht wird.... (Sorry for 
OT).

von Jörg R. (rejoe2)


Lesenswert?

Jörg R. schrieb:
> Werde das jedenfalls jetzt erst mal ohne den ESP ein paar Tage so vor
> sich hintuckern lassen, nicht, dass eines der Junkers-Teile einen Hau
> hat oder doch ein BM1 oder ein R à 120 Ohm vermißt wird..

So, mal ein aktueller Zwischenstand:
- TA250 und BM2 verstehen sich prächtig, ist jetzt einige Wochen ohne 
den ESP ohne "Mucken" gelaufen.
- Die Wiederinbetriebnahme des ESP32-NiRen-Gespannes war dagegen 
zunächst recht ernüchternd - ich hatte "ordnungsgemäß" auf 3.3V 
umgestellt, was dazu geführt hatte, dass schlicht keine Daten vom Bus 
mehr kamen und wohl auch nichts mehr geschrieben wurde... Erst überlegt, 
was man alles tun könnte, aber da der ESP ggf. eh' hinüber gewesen wäre, 
ging's halt einfach zurück auf 5V und es kamen wieder Daten rein.

Mittelfristig will ich den ESP sowieso gegen ein Modell mit externer 
Antenne tauschen (miese WLAN-Verbindung im Keller), stellt sich die 
Frage, ob dann ein Spannungsteiler vor MISO Sinnvoll wäre? (Bisher war 
die Versorgung noch via Laptop-USB, jetzt hängt ein Steckernetzteil vor 
dem ESP und es geht immer noch).

Jetzt Wird erst mal eine Weile mitgelauscht, was da so über den Bus 
geht.In dem Zuge werde ich wohl mal versuchen zu verstehen, wie wohl die 
Datenpunkte aus den subscriptions zu den übermittelten Daten vom Bus 
passen könnten und hau mal eine Weile per MQTT die gemessene Temperatur 
aus meinem "Leitraum" auf den Bus (?). Der TA250 darf einstweilen im 
Keller bleiben, ich habe aber Zweifel, ob sich der für diese 
Temperatur-Info interessiert (falls sie denn überhaupt auf dem Bus 
ankommt und nicht nur dem ESP helfen würde; ein TW2 lag hier zwar noch 
rum, aber das taugt nicht wirklich als Temperaturfühler für den 
TA250)...

Vielleicht noch interessant: auf dem NiRen ist ein R120 verbaut, der per 
J1 zugeschaltet werden kann. Aktiviert man den, geht der TA250 auf 
Busfehler 2, aktiviert man ihn ohne angeschlossenes TA250, zeigt die 
Therme irgendwann einen Busfehler an (bei letzterem Punkt bin ich aber 
noch nicht sicher, ob das eine zutreffende Interpretation ist, oder ob 
dem ESP Daten/Vorgaben fehlen und der deswegen einfach zu inaktiv ist).

von Jörg R. (rejoe2)


Lesenswert?

Nachdem die ersten paar tausend Zeilen durch minicom gerauscht waren, 
habe ich beschlossen, ein Kabel von der Therme ins Wohnzimmer zu ziehen.
Tendenziell wird wohl erst mal ein Parallelbetrieb stattfinden müssen, 
schon alleine deswegen, weil der ESP32 mit JunkersControl bislang 
ausschließlich den Heizungssteuerungsteil abdeckt, und der Plan 
eigentlich auch gewesen war, die Warmwasserbevorratung zu optimieren 
(und z.B. mit PV-Überschussstrom elektrisch zuzuheizen, um Brennerstarts 
zu sparen).
Die erste Aktion für die Firmware war daher, die Bauchwassertemperatur 
per MQTT zu versenden. Soweit so gut, aber mir kommen nun gewisse 
Zweifel, ob ich zur "intended autience" 
(https://github.com/Neuroquila-n8fall/JunkersControl#intended-audience) 
gehöre... Dass m.E. standardisierte und "essenzielle" Dinge nachzurüsten 
sind, entspricht nicht ganz meinen Erwartungen.

Wie dem auch sei, dabei ist mir jedenfalls aufgefallen, dass das 
spreadsheet bzgl. 0x253 für meine Hardware nicht ganz paßt:
Dave schrieb:
> Um etwas Ordnung in das Konvolut zu bringen habe ich die folgende
> Tabelle erstellt, an der sich jeder frei beteiligen kann:
> 
https://docs.google.com/spreadsheets/d/1JzmhEbFY_GSk0Dl_e5pb2zmsy9EPlQU7bUpb9bXKxCM/edit?usp=sharing
Da kam bei mir bisher nur "01", und das dürfte ein boolscher Wert 
(an/aus) sein? Bisher ist es mir aber noch nicht gelungen, den TA250 
dazu zu bewegen, den auf "0" zu setzen...

Generell wundert es mich, dass das zum einen relativ wenige Adressen 
sind, die da aufgeführt werden, und, dass es "nirgendwo" eine 
vollständige Liste zu geben scheint (?). Denn eigentlich ist diese 
CAN-Variante ja auch "nur" eine ganz bestimmte Option, wie die Daten 
physisch übertragen werden, die dann wohl irgendwann mitte der 2000er 
durch den "ems-bus" (? oder ebus?) abgelöst worden ist. Die 
Adressen/Adressräume scheinen aber im großen und ganzen doch konstant 
geblieben zu sein? Das war zumindest mein Eindruck zu dem, was ich mir 
im Lauf der Zeit zu diesen Themen so angelesen habe.
Wenn das stimmt, sollten ggf. auch weitere "anfragbare" Adressen in 
Projekten wie https://github.com/norberts1/hometop_HT3 und 
https://github.com/emsesp/EMS-ESP32 zu finden sein.

bzgl:
Dave G. schrieb:
> Allerdings braucht "meine" Steuerung eine Idee was als Vorlauf
> eingestellt werden soll und das kommt dann von deinem "Leitsystem" also
> FHEM, oder HA oder was auch immer :)
Hast du auf die Schnelle eine Idee, welche Infos der ESP mindestens 
braucht, um eine "Idee" zu haben? Reichen Solltemperatur und ein 
Ventil-Öffnungswert?

Denn vor diesem Hintergrund
> Du kannst den ESP mit der 24v Leitung von der Therme betreiben. Achte
> aber drauf, dass der Spannungsregler von der Therme nicht gleichzeitig
> TAxxx und ESP in der Bootphase versorgen kann.
muss ich entscheiden, ob ich doch relativ schnell den Versuch 
unternehme, den TA250 zu deaktivieren und nur via 
(weiterzuentwickelndem) ESP zu steuern, oder ob das parallel laufen 
muss.

Wenn parallel, stellt sich die Frage nach der optimalen Verbindung - der 
ESP braucht dann eine externe Versorgung, und das mit der gemeinsamen 
Masse wird dann schwierig (oder übersehe ich da was?!?).

*@all*: Was mich interessieren würde: lest ihr nur mit, was da so auf 
dem Bus abgeht, oder greift ihr aktiv in die Steuerung ein? Wie verträgt 
sich das mit der TA250 (oä)? Oder werden die Werte in den Speicher der 
TA250 übernommen, wenn "jemand" was auf den Bus schreibt? Braucht es 
dazu die "richtige" Adresse, oder ist das einfach die, unter der die 
selbst die Telegramme abschickt?
Sorry, bestimmt hat das schon irgendjemand irgendwo geschrieben, und ich 
habe es nur nicht gefunden...?

von Peter* (Gast)


Lesenswert?

Hallo,

schönes Projekt hatte die gleichen Gedanken für die Zukunft. 
Pufferspeicher mit elektrischer Heizung bzw. Warmwasserheizstab durch 
PV-Anlage, aber etwas verschoben ins nächste Jahr da momentan die Preise 
explodieren.

Nun eine öffentliche Junkers oder Bosch-Liste mit sämtlichen verfügbaren 
Adressen wird es ganz sicher nicht geben. Ob die bekannten Adressen 
evtl.  mehrfach vergeben wurden ist aber auch nicht auszuschließen. Der 
Aufbau der Heizung ist hier entscheidend. Hast Du einen Mischer werden 
hier weitere Adressen freigeschaltet.

HT3 ist eine ganz andere Generation von Heizung.

Scan dein Can-Bus auf vorhandene Adressen und rufe die einzelnen 
möglichen Befehle auf bzw. schau im Service_Handbuch für Fachleute oder 
Servicefunktionen-Kompass nach, was an Planung noch möglich war. Dadurch 
hast Du noch ein Überblick über die Heizung.

"Leitsystem", hatte das so verstanden das der Außenfühler nach wie vor 
seine Arbeit erledigt und somit gar nicht die Frage gestellt wird, wo 
fange ich an. Sondern nur die Optimierung durch die Ventilstellung 
[Last] erbracht wird.

Achtung!
Bei mir ist es so, dass jeder Raum seine Temperatur einhält, aber die 
Heizung (22kw-->~10kW) taktet mir zu schnell, deshalb auch der 
Pufferspeicher in der Zukunft, ein muss.

Nun dein Problem mit der Versorgung, --> ein Steckernetzteil GND 
verbinden. Can.-Bus immer 3adrig.

Ja, die Schreibtischtests habe ich hier auch veröffentlicht ohne 
Heizung.

Du schreibst die gleichen Telegramme[ID's] wie auch der TAxxx, aber der 
Ta schreibt seine auch, aber in einem längerem Zyklus.
Ja, nicht optimal.

Bin aber überzeugt das wenige Telegramme über CAN-Bus ausreichen um den 
TA zu ersetzen. Ich kann mich aber nicht daran erinnern das ein 
Telegramm vom TA übernommen wurde. Bei mir war aber ein defekt vom BM1 
nicht auszuschließen und habe vor kurzem erst ein TA270 komplett 
bekommen.

von Jörg R. (rejoe2)


Lesenswert?

Peter* schrieb:
> Hallo,
>
> schönes Projekt hatte die gleichen Gedanken für die Zukunft.
> Pufferspeicher mit elektrischer Heizung bzw. Warmwasserheizstab durch
> PV-Anlage, aber etwas verschoben ins nächste Jahr da momentan die Preise
> explodieren.
Na ja, ich habe eher begrenzte PV-Kapazität und dachte vorrangig daran, 
den (eher kleinen) Brauchwasserspeicher ggf. tagsüber so nachzuheizen, 
dass laufende Verluste über die Zirkulation oder kleine Entnahmen 
kompensiert werden. Für einen "großen" Puffer, der den Namen verdient, 
ist eigentlich kein Platz da...

> Nun eine öffentliche Junkers oder Bosch-Liste mit sämtlichen verfügbaren
> Adressen wird es ganz sicher nicht geben. Ob die bekannten Adressen
> evtl.  mehrfach vergeben wurden ist aber auch nicht auszuschließen. Der
> Aufbau der Heizung ist hier entscheidend. Hast Du einen Mischer werden
> hier weitere Adressen freigeschaltet.
Soweit so klar. Wenn ich den Code aus EMS-ESP32 richtig interpretiere, 
ist es aber schon so, dass die Adressen (mehr oder weniger allgemein) 
bekannt sind und nur von "Generation zu Generation" ggf. einem Wandel 
unterworfen sind.

> HT3 ist eine ganz andere Generation von Heizung.
Jein. In der Vergangenheit bin ich auch mehrfach durcheinandergekommen, 
weil in meinem Handbuch explizit steht, dass die Heizung eine "Heatronic 
3" hätte. Man kann jetzt darüber streiten, was das genau bedeuten soll, 
eine Bus-Schnittstelle hatte ich jedenfalls vor dem Einbau des BM2 nicht 
gefunden...
Irgendwo hier in diesem Forum gab es auch ein paar "Aha"-Beiträge in 
manchen Threads zum Thema, welche Codeteile bei der Auswertung der 
Telegramme diverser Bus-Varianten diverser Hersteller 
überraschenderweise doch irgendwie kompatibel zu sein scheinen.


Letztlich ist das aber egal, ich will ja nur eine funktionierende 
Variante haben und eine gewisse Sicherheit, dass ich in 3 Jahren wieder 
Ersatz hinbekomme, falls der ESP aussteigt oder ich mal das 
WLAN-Kennwort ändern muss...

> Scan dein Can-Bus auf vorhandene Adressen und rufe die einzelnen
> möglichen Befehle auf bzw. schau im Service_Handbuch für Fachleute oder
> Servicefunktionen-Kompass nach, was an Planung noch möglich war. Dadurch
> hast Du noch ein Überblick über die Heizung.
Der EMS-ESP32-Code scheint genau das zu machen und erst mal 
nachzuschauen, welche ihm bekannten Baugruppen da sind. Mir ist das im 
Prinzip egal, weil ich nur "den Ofen" steuern will, wofür die paar 
bekannten Adressen ja reichen (wie Dave G. gezeigt hat).

Was ich ggf. sonst noch brauche (z.B. die Zuheizung am Puffer), läuft 
sowieso extern, es muss nur sichergestellt sein, dass sich das nicht in 
die Quere kommt....

> "Leitsystem", hatte das so verstanden das der Außenfühler nach wie vor
> seine Arbeit erledigt und somit gar nicht die Frage gestellt wird, wo
> fange ich an. Sondern nur die Optimierung durch die Ventilstellung
> [Last] erbracht wird.
Jein. Wenn ich das richtig verstanden habe, gibt der ESP die 
Vorlauftemperatur vor, und berücksichtigt dabei neben der 
Außentemperatur (die er ggf. vom BM1/2 bekommt) nur noch die 
Ventilöffnung als (alleinigen?) Indikator für die Wärmeanforderung. Da 
die Pumpe nur 3 hart einzustellende Stufen kennt, ist die einzige 
Variable auf der Seite des Ofens dann die Brennerleistung, und es ist 
dann bestenfalls möglich, die schneller nach unten zu nehmen, als der 
Ofen das autonom täte. Oder eben erst etwas länger zu warten, bis wieder 
eingeschaltet wird (und ggf. länger umwälzen, um die im Wasser 
vorhandene Restwärme (ohne zusätzlichen Puffer) besser zu verteilen?).


> Nun dein Problem mit der Versorgung, --> ein Steckernetzteil GND
> verbinden. Can.-Bus immer 3adrig.
Bisher ging das mit dem Lesen auch mit nur 2 Adern, der ESP hing am 
Laptop, und da war es mir zu "heiß" auszutesten, wo ggf. 
Potentialunterschiede landen...

> Bin aber überzeugt das wenige Telegramme über CAN-Bus ausreichen um den
> TA zu ersetzen.
Werde jetzt aber doch vermutlich versuchen, die ESP-only-Variante zum 
Laufen zu bringen, nachdem das mit den doppelt genutzten Adressen klar 
ist. Dann hängt der ESP eh' auf der 24V-Leitung der Therme und GND ist 
gemeinsam.

Beides kommt dann ins Wohnzimmer, der ESP hinter den TA250, und dazu 
einen Umschalter, der "entweder oder" mit der Versorgungsspannung 
verbindet. Dann bekommt der ESP mal ein paar Daten und darf lostuckern, 
und das mit der Wasserbereitungssteuerung kann eigentlich auch nicht 
allzu schwer sein...

von Peter* (Gast)


Lesenswert?

Nun,

dann sind ja alle Zweifel von Dir beantwortet.

viel Erfolg.

von Jörg R. (rejoe2)


Lesenswert?

Peter* schrieb:
> Nun,
>
> dann sind ja alle Zweifel von Dir beantwortet.
>
> viel Erfolg.

Du bist lustig... Ist eher erst mal ein Startpunkt, lach.

Hier wäre die nächste - zum Code:
In SetFeedTemperature() in can_processor.cpp wird eine can-Message 
vorbereitet, ein abschließendes "can.tryToSend(msg);" fehlt aber. Soll 
das so?

Überhaupt: Wenn die Initialisierung des Can-Moduls via SPI fehlschlägt, 
bekommt man zwar direkt nach dem Start sehr schnell einen Satz Infos 
dazu, aber an der Konsole sieht es später so aus, als würde brav 
gesendet. Ist natürlich kein Problem, wenn die Verbindung ok ist, lenkt 
aber beim debuggen ab, wenn man in das Thema einsteigt...

von Dave G. (neuroquila-n8fall)


Lesenswert?

Die Nachricht wird vorbereitet und dann in der Schrittkette gesendet um 
nicht den Bus zu fluten.
Wir können gerne mal ne Telco machen und die ganzen offenen Fragen 
klären.

von Jörg R. (rejoe2)


Lesenswert?

Danke sowohl für die Klarstellung wie auch das Angebot!

Das mit der Telco wäre super, vielleicht am WE?

Ansonsten habe ich vor einigen Minuten mal im laufenden Betrieb den 
TA250 abgeklemmt - die Therme läuft ohne "A8"-Meldung weiter. Schreiben 
auf den Bus (nur 2 Adern angeschlossen, J1 am NiRen offen) klappt 
demnach auch freu
(wenn ich jetzt wüßte, ob die Therme so Warmwasser bereitstellt, würde 
ich das glatt erst mal so weiterlaufen lassen, aber jetzt darf der TA250 
wieder).

Der hat übrigens die Taktung schon positiv beeinflusst: "Früher" heizte 
die Therme alle Stunde einmal hoch - warum auch immer (DS18B20-Messung). 
Jetzt nur noch ca. alle 3h.

von Dave G. (neuroquila-n8fall)


Lesenswert?

Sehr gut. Die Therme wird sich niemals beschweren, solange im 
regelmäßigen Abstand bestimmte Nachrichten ausgetauscht werden. Sie wird 
erst zickig, wenn für einen gewissen Zeitraum zum Beispiel keine Daten 
angefordert wurden.

Es gibt auch Nachrichten, die die Warmwassertemperatur setzen. Das 
können wir gerne dann gemeinsam mal durchgehen. Ich denke da kommen auch 
noch interessante Infos bei raus die dem Projekt helfen ;)

Ich bin grundsätzlich zeitlich sehr flexibel und bevorzuge Discord, bin 
da aber auch flexibel.
Meine ID: Dave aka FntX#5439

von Jörg R. (rejoe2)


Lesenswert?

Habe dann doch das Risiko in Kauf genommen, dass heute morgen vielleicht 
kein WW bereitgestellt ist (und dann eben sehr kurz geduscht...): Das 
Ding lief stressfrei durch ohne TA250, und bis der Rest auf den Beinen 
war, war wohl auch wieder Wasser verfügbar (zumindest keine Klagen 
bisher).

Dave G. schrieb:
> Es gibt auch Nachrichten, die die Warmwassertemperatur setzen. Das
> können wir gerne dann gemeinsam mal durchgehen.
Die Nachrichtentype(n) für's Lesen und Setzen sind in der Liste drin, 
lesend wird der Wert auch schon per MQTT an FHEM versandt.
Soweit ich das überflogen habe, gibt es auch hart vercodete Zeiten auf 
dem ESP, mir hatte nur die Zeit nicht gereicht, auch die subscription 
noch zu ergänzen, um das von FHEM aus zu machen und auch nicht klar, 
inwieweit sich das ggf. mit dem Zeitplan beißt. War vermutlich ganz gut, 
denn wenn die Logik ähnlich ist wie beim soll-Wert für die 
Vorlauftemperatur, wird das ja nur einfach zwischengespeichert und dann 
einfach im Rahmen des "Stufenplans" abgearbeitet (?).

> Ich denke da kommen auch
> noch interessante Infos bei raus die dem Projekt helfen ;)
An grundlegende neue Infos glaube ich  grade nicht recht, es wird 
bestenfalls eben "noch einer", der Erfahrung mit dieser Art der 
Steuerung beitragen kann. Aber es reicht ja, wenn wir ggf. das ganze 
soweit bringen können, dass jemand einfach ein binary runterlädt, das 
flasht und dann nur seine WiFi-Daten und MQTT-Spezifika eintragen 
muss...
Und vielleicht findet sich dann auch jemand, der einen Webserver 
integrieren will, mit dem man das Ding autonom als verbesserten 
TA250+-Klon betreiben kann, ganz ohne Heimautomatisierungslösung 
dahinter ("morgen ist Feiertag", oder Ferienmodus etc.). (Das ist nicht 
meine persönliche Zielrichtung oder Kompetenz).

> Ich bin grundsätzlich zeitlich sehr flexibel und bevorzuge Discord, bin
> da aber auch flexibel.
> Meine ID: Dave aka FntX#5439
Ja nun, bisher habe ich nicht mal einen Account da. Braucht man wohl, 
heutzutage, oder?

von Dave G. (neuroquila-n8fall)


Lesenswert?

Jörg R. schrieb:

> Ja nun, bisher habe ich nicht mal einen Account da. Braucht man wohl,
> heutzutage, oder?

...ja..leider...wie überall wo es kein Geld kostet :(

von Jörg R. (rejoe2)


Angehängte Dateien:

Lesenswert?

So, meine Schnittstelle ist soweit jedenfalls hardwaremäßig fertig, Bild 
anbei. Per Steckpfostenleiste kann man umstellen zwischen TA-Betrieb + 
Sniffen (nur die beiden CAN-Adern gehen an die Schnittstelle), oder 
ESP-only-Betrieb, bei dem dann der TA komplett weg ist und der ESP etc. 
über einen Step-Down versorgt wird. Das ganze kann dann mittelfristig im 
Regal hinter die Kulissen, und wenn es Probleme gäbe, kann man ohne 
große Probleme umjumpern.

Jetzt geht's dann erst mal wieder an die Software-Seite, der Betrieb mit 
einem WW-Speicher war in der firmware bisher nicht vorgesehen. Da müssen 
wir also nochmal etwas rumtüfteln, das dürfte etwas dauern.

von Peter* (Gast)


Lesenswert?

Hallo,

naja, wenn es funktioniert!

Solltest Du "längere Wege" zur Therme haben!

Das Can-Bus Kabel wird (ist) grundsätzlich verdrillt, auch bei 10k, wenn 
Du schon kein Potenzialausgleich mit verlegen willst.

Eine weitere mögliche Fehlerquelle.

von Jörg R. (rejoe2)


Lesenswert?

Bis dato funktioniert es, ja.

Das Haupt-Kabel ist <10m und in der Tat verdrillt, wenn auch nicht so 
extrem wie bei Ethernet-Verlegekabeln üblich. Nur zwei Adern sind nur 
dann verbunden, wenn der ESP im Sniffer-Betrieb läuft, was die Ausnahme 
sein sollte. (Nur) dann gibt es eine Verbindung zu dem kurzen 4-Adrigen 
(unverdrillt, ja...), das zum TA250 weitergeht.

PS: Während der ersten Tests waren die Kabel nur 4-Adrig, nicht 
verdrillt und deutlich länger - wobei der nach dem TA250 (Busende?) 
angeschlossene ESP auch da die ganzen Tests über nur mit 2 Adern am Bus 
war... Sicher nicht automotive-konform, aber ich will ja auch keine 
Zertifizierung dafür beantragen.

von Bernd R. (Gast)


Lesenswert?

Hallo zusammen.
Ich wollte mich auch mal wieder zu Wort melden.

Mittlerweile habe ich mir ein RaspberryPI zugelegt und lasse dort den 
HomeAssistant laufen. Da ich diesen aufgrund der Räumlichen Anordnung 
leider nicht an mein CANUSB-Interface anschließen kann, habe ich bis 
dato eine andere Variante etabliert.

Ich habe eine kleine Windows-Maschine, an der das CANUSB-Interface 
angeschlossen ist. Dort logge ich den CAN-BUS-Stream mit der Software 
CAN-Hacker und speichere diesen Log alle fünf Minuten in eine Textdatei.
Über meinen Homeserver (eine Synology DS) führt ein cronjob ebenfalls 
alle fünf Minuten ein PHP-Script aus, das die Daten aus dem Log in eine 
SQL-Datenbank und an meinen Mosquitto-Broker im HomeAssistant.

Das funktioniert zwar ganz gut, aber der Delay, der durch das 
Zwischenspeichern entsteht, geht mir etwas auf den Keks.

Auf der Suche nach einer Lösung, den CANBUS-Datenstrom in Echtzeit an 
meinen Mosquitto-Broker zu senden, bin ich auf 
"c3re/can2mqtt"(https://github.com/c3re/can2mqtt) gestoßen.

Hat jemand Erfahrung mit diesem Paket (oder vielleicht etwas anderem, 
das den gleichen Zweck erfüllt und unter Windows läuft) und mag mir bei 
der Umsetzung etwas Hilfestellung geben?

Liebe Grüße,
Bernd

von Dave G. (neuroquila-n8fall)


Lesenswert?

Damit hatte ich vor einiger Zeit auch geliebäugelt aber im Rahmen von 
einem Projekt am Auto aber habe es dann als zu kompliziert verworfen. 
Ich muss jetzt daher eine ketzerische Frage stellen und zwar warum du 
einen "Fat Client" für das Lesen und Übermitteln der Daten verwendest. 
Ich habe bereits eine fertige Lösung zum Loggen und Setzen von 
Parametern der Heizung, die genau das macht. Allerdings läuft das Ganze 
auf einem ESP32 mit einem CAN-Modul.

Kontext: Beitrag "Re: Junkers CAN-Bus Protokoll"

Ich kann dir gerne zeigen wie das funktioniert, was du brauchst und 
sogar wie du danach deine Heizung mit HomeAssistant lenken kannst. Alles 
in allem eine Sache von wenigen Minuten - und das dank dem Input und 
Denkanstößen von Jörg auch ganz ohne Codeanpassungen.

von Bernd R. (Gast)


Lesenswert?

Dave G. schrieb:
> warum du
> einen "Fat Client" für das Lesen und Übermitteln der Daten verwendest

Nun, ich will schlicht und ergreifend keine neue Hardware kaufen.
Der "Fat Client" ist ein Z83-II Mini-PC, der mit meinem vorhandenem 
LAWICEL-CANUSB alle notwendigen Schnittstellen mitbringt.

von Jörg R. (rejoe2)


Lesenswert?

Bernd R. schrieb:
> Nun, ich will schlicht und ergreifend keine neue Hardware kaufen.
Na ja, einerseits verständlich, andererseits ist der Invest jetzt nicht 
umwerfend. Ein USB-Netzteil vorausgesetzt sind das um die 10 Euro, die 
die Bauteile in Fernost kosten...

von Dave G. (neuroquila-n8fall)


Lesenswert?

@Peter: Du hattest doch mal versucht den I2C auseinander zu nehmen. Hast 
du die Pinbelegung? Ich würde wegen anhaltender Frustration wegen nicht 
sauber funktionierenden CAN-Modulen gerne eine Ebene tiefer gehen mit 
dem Projekt und mich einfach mal dranheften und mitlesen während alles 
an der Therme hängt und in Betrieb ist.

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo Dave,

ja, hatte ich über das Speicher IC PCF8570 versucht. Allerdings im 
Schreibtischtest, "ohne" Heizung selbst.
Einige Daten konnte ich wiedersehen, aber nicht an einer Adresse 
festmachen.

Der I2c Bus ist nur an den Steckern zur Hauptplatine vorhanden. Weißer 
Stecker zu schwarzem Kabel. Pin Belegung, leider bei mir nicht mehr 
aufgebaut.(!)

BM1 -Stecker
Pin1 VCC, Pin2 NC, Pin3 GND, Pin4 "5Volt", Pin5 "SDA", Pin6 "SCL"

Kontrolliere bitte die letzten drei Pin's und denke an die Pindrehung an 
der Hauptplatine Pin1 wird zu Pin6 usw. Da ist der Abgriff möglich.

Der Can ist sicherer als der I2C, lesen ja, aber.... (!)

von Bernd Rehlinger (Gast)


Lesenswert?

@Jörg:
Jetzt bin ich doch etwas neugierig geworden...

von Bernd Rehlinger (Gast)


Lesenswert?

@Davr:
Jetzt bin ich doch etwas neugierig geworden...

von Dave G. (neuroquila-n8fall)


Lesenswert?

Besten Dank, Peter. Ich werde mal was basteln und einfach scannen und 
sniffen und das mit den Werten vom Can vergleichen.

Habe mittlerweile das Board getauscht und alles läuft wieder super. 
Jetzt bin ich mal mutig und hefte mich direkt im laufenden Betrieb an 
den I2c.

Bei vielen Can-Modulen gibt es gerade das Problem, dass das Senden nicht 
funktioniert. Ich habe nur ein Modul mit 16Mhz wo es wunderbar klappt. 
Selbst die selbstgebauten Varianten empfangen nur aber senden nicht. 
Meiner Meinung nach ist das alles zu unsicher und wenig reproduzierbar 
oder es ist einfach nur Pech.
Also es funktioniert zwar aber irgendwie nicht, wenn die Planeten gerade 
ungünstig stehen oder sowas....

Jetzt ist es glaube ich an der Zeit die letzte Quelle der Unsicherheit 
zu entfernen und direkt ans Board zu gehen.

@Bernd:
Mit etwas Geduld gibt's bald fertige Boards, wo man einfach einen esp 
aufsteckt und das einfach nur an die Therme pappt. Momentan ist das aber 
mit dem can interface so eine Unschärfe...

von Jörg R. (rejoe2)


Lesenswert?

Bernd Rehlinger schrieb:
> @Jörg:
> Jetzt bin ich doch etwas neugierig geworden...
Na ja, wenn du Glück hast, brauchst du nur ein "NiRen" 
Arduino-CAN-Modul, einen ESP32 und ein paar Kabel und Widerstände.
So war es bei mir. Ich hatte noch zwei NiRen aus Altbeständen rumliegen 
und
habe die einfach direkt an den ESP32 gehängt. Mit ein paar kleineren 
Änderungen am Code von Dave G. war die Verbindung da.

So kann es laufen, wenn es gut läuft....

Ich habe dann ein paar Fehler gemacht, angefangen damit, alles 1:1 auf 
eine Platine zu verdrahten und einen Spannungswandler davor zu hängen, 
der aus den 24V die (knapp unter) 5V gemacht hat, die für den Betrieb 
erforderlich sind. Das klappte dann auch soweit.
Dann bin ich auf den "development"-Zweig von Dave's Code gegangen, habe 
aber nicht beachtet, dass die PIN-Belegung etwas anders ist als in 
meinem geänderten Code => keine Verbindung. Was ich bis dato nicht 
wußte: Bei fehlender Verbindung setzt die Therme die Spannung hoch 
(32V). Daraus hat dann der verbaute DC-DC-Konverter etwas mehr gemacht 
als nur 5V, was für die beiden NiRen-Module nicht gut war.

Habe dann Ersatz in Fernost bestellt und auch ein Modul in D. Damit war 
dann aber (im Unterschied zu den teilzerstörten NiRen) keine Verbindung 
über SPI möglich, so dass ich grade darauf warte, funktionierende Module 
zu bekommen.
Ich hatte aber scheinbar sehr viel Glück, gleich zwei unmittelbar 
funktionierende Module in der Hand zu haben: die Erfahrungen scheinen 
insgesamt eher gemischt zu sein, und es ist überhauot nicht transparent, 
warum manche Module funktionieren und andere nicht, obwohl eigentlich 
"nichts" auf diesen Modulen verbaut ist....

Wir hatten auch schon überlegt, eine eigene Platine zu designen, aber 
die bei Dave G. vorhandenen "alten" Versuche funktionieren aus 
unerfindlichen Gründen leider auch nicht zufriedenstellend.

Falls du jetzt also einsteigen wolltest, benötigst du die o.g. Bauteile 
und kannst versuchen, ob das klappt!

: Bearbeitet durch User
von Bernd Rehlinger (Gast)


Lesenswert?

@Jörg und Dave:
Das klingt für mich alles wie chinesisch, sorry.
Bleibe dann wohl erst einmal bei der MiniPC Lösung.

seufz

von Jörg R. (rejoe2)


Lesenswert?

Wegen des I2C-Ansatzes: Wenn meine bescheidenen Kenntnisse mich nicht 
täuschen, ist das doch eine Master-Slave-Geschichte, bei der auch wieder 
alle TN am selben Bus hängen? Welcher TN ist denn dann der Master? Die 
Therme oder das BM1/2?
Würde auf die Therme tippen. Dann sollte es doch möglich sein 
rauszufinden, was für Anfragen über I2C kommen und wie die beantwortet 
werden. Wir düften doch noch eine zweite Schnittstelle am Board haben, 
über die man das rausbekommen könnte: Die "doofe Uhr" (in der Regel 
rechts vom BMx verbaut und bei BM1-Nutzung abzustöpseln) kommuniziert 
doch auch irgendwie mit dem Mainboard...
Oder ist das zu einfach gedacht?

: Bearbeitet durch User
von Dave G. (neuroquila-n8fall)


Lesenswert?

Jörg R. schrieb:
> [...] ist das doch eine Master-Slave-Geschichte, bei der auch wieder
> alle TN am selben Bus hängen? Welcher TN ist denn dann der Master? Die
> Therme oder das BM1/2?
Genau und wenn Junkers sich an die Architektur gehalten hat, dann ist 
die Therme der Master. "Plug-In" Module sollten immer Slaves sein.
> [...] Die "doofe Uhr" (in der Regel
> rechts vom BMx verbaut und bei BM1-Nutzung abzustöpseln) kommuniziert
> doch auch irgendwie mit dem Mainboard...
Das denke ich auch ... Ich tippe mal auf papierraschel I2C! :)

Übrigens verstehe ich das nicht mit dem Uhr abstöpseln. In der Anleitung 
steht man solle das Textdisplay entfernen, das BM1 einbauen und das 
Textdisplay dann wieder einbauen. Wie soll man auch ansonsten die 
Parameter der Heizung einstellen. Das geht nämlich nicht über die TA.


@Bernd: Bevor du dir auch noch den Frust daran holst, versuchen wir doch 
besser eine Lösung zu bauen, die mit wenig Aufwand überall funktioniert. 
Ich denke wir sind der Lösung sehr, sehr nahe. Irgend ein dummer Fehler 
muss es sein, der uns den Erfolg verwehrt.

Ich habe noch einen Test im Raum stehen aber je länger ich über der 
Sache sitze, desto mehr habe ich Lust den blöden CAN-Bus zu umgehen, 
zumal das BM1/2 ja auch wieder ein Fehlerfaktor ist. Ein kostspieliger 
dazu. Die niedrige Übertragungsrate macht die Sache nicht einfacher.

von Peter* (Gast)


Lesenswert?

Hallo,

@Bernd lass Dich nicht abschrecken, die meisten Fehler sind 
eigenproduziert...

Aber.. was nimmt dein Mini Pc auf. Habe in der Nacht fast 100W momentan 
an Kleinkram und das stört mich schon gewaltig.

Ein paar Info's noch zum I2C, hatte ~30KHz festgestellt:

         TWBR =65;                // 0 TWBR Bitrate Teiler 65
         TWSR|=bit(TWPS0);        // 0 Prescaler TWSS0 gesetz 4
Das RAM hat eine Adresse von 0x50, bin gespannt ob sich dann der BM1 
nochmals meldet mit einer anderen Adresse.

Eine Anregung: Vielleicht den Can Bus parallel zum I2C scannen.

von Jörg R. (rejoe2)


Lesenswert?

Peter* schrieb:
> @Bernd lass Dich nicht abschrecken, die meisten Fehler sind
> eigenproduziert..
...sehe ich ähnlich - in beiden Aspekten!

Dave G. schrieb:
> Übrigens verstehe ich das nicht mit dem Uhr abstöpseln. In der Anleitung
> steht man solle das Textdisplay entfernen, das BM1 einbauen und das
> Textdisplay dann wieder einbauen. Wie soll man auch ansonsten die
> Parameter der Heizung einstellen. Das geht nämlich nicht über die TA.
Das verstehe nun ich wieder nicht. In meinen Unterlagen wird das Bauteil 
"422" als "Digitaluhr" bezeichnet, und soweit ich mich entsinne, kann 
man darüber nur Wochenprogramme einstellen für WW-Bereitung und Heizen, 
also genau das, was die TA250 auch kann.
"Abklemmen" nur für die Montage? Das wäre dann nur eine Vorsorgemaßnahme 
für elektrostatische Effekte, oder? Macht für mich eher Sinn in der 
Interpretation: Man braucht keine Digitaluhr (in der TA-Anleitung 
"Textdisplay" genannt) mehr...
Bisher hat sich meine Therme auch nicht beschwert (im reinen 
TA-Betrieb), dass ihr irgendwelche Parameter fehlen würden.

PS: Habe mir die ausgebaute TA 211 E mal angesehen, über die vorher die 
Parameter zur Heizkurve eingestellt wurden. Da sind 2 von den 6 PINs 
ohne Widerstand zum Stecker 1-3-4-A-F, (die PINs 2 und 3, wenn man von 
der Seite ohne die Verpolungssicherungsnippel her zählt). Die 24V werden 
also erwartungsgemäß nur durchgeschleift, der Rest scheint mit Bauteilen 
auf der TA 211 E verbunden zu sein.

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

meine Heizung hat kein "Textdisplay", also eine ältere Version, hierbei 
stellst Du mit den beiden "Poti's" (Heizung & Warmwasser) und den 
Bedientasten einige Grundparameter ein.
Die Uhr ist soweit ich festgestellt habe kein I2C sondern hat zwei 
Ports, sie werden nur abgefragt. Wird der CAN-Bus installiert muss sie 
entfernt werden. Hier existiert eine Gerätekodierung, wahrscheinlich 
durch die 5Volt auf Pin4.

Hast ein Textdisplay ist das alles etwas einfach 
Kundenfreundlicher.(Vermutung)

Nun TA211 hat die Parameter die Du nur brauchst. Genau so ist der Ta250 
und TA xx ein Bedienteil, wie die Uhr.

Meine Heizung hat eine I2C Schnittstelle nur den Stecker bekommst Du 
nicht.

TA211: wenn ich mich recht erinnere werden hier die beiden i2C Pinne 
benutzt um die sequentielle Übertragung der U/F Umsetzung der 8Kanäle zu 
realisieren.

von Jörg R. (rejoe2)


Lesenswert?

Peter* schrieb:
> stellst Du mit den beiden "Poti's" (Heizung & Warmwasser) und den
> Bedientasten einige Grundparameter ein.
Die großen Potis sind wohl bei allen Geräten dieser Klasse da. Fragt 
sich nur, wie die sich auswirken, wenn die Vorgaben digital kommen (also 
erst mal über CAN/TA250/TA270). Dann scheint es eher sowas wie eine Art 
Notfallvorgabe zu sein, wobei es wohl dann auch noch einen Unterschied 
macht, ob man für WW ein Durchlauferhitzersystem hat oder einen 
Vorratsbehälter.
> Die Uhr ist soweit ich festgestellt habe kein I2C sondern hat zwei
> Ports, sie werden nur abgefragt.
Das klingt auch plausibel, zumal die intern nur Zeitpunkte für "CH1" und 
"CH2" kennt...
> Wird der CAN-Bus installiert muss sie entfernt werden.
Für mich klingt auch das logisch. Sicherheitshalber für unsere 
Skeptiker: gibt es dafür eine "offizielle" Quelle/Doku?

Wenn es wirklich nur 2x an/aus ist, stellt sich die Frage, warum man 
überhaupt eine Uhrzeit auf den Bus schreiben sollte, wie es die TA250 
scheinbar hin und wieder macht. (Na ja, es mag durchaus denkbar sein, 
dass sich doch in bestimmten Konfigurationen irgendein Bauteil für eine 
aktuelle Uhrzeit interessiert).

> Hier existiert eine Gerätekodierung, wahrscheinlich
> durch die 5Volt auf Pin4.
Klingt nach einem wichtigen Punkt.

> Hast ein Textdisplay ist das alles etwas einfach
> Kundenfreundlicher.(Vermutung)
Na ja, ich fand das Ding immer schon hoffnungslos antiquiert (und dazu 
noch ärgerlich ungenau), aber ja, es ist komfortabler wie Drehknöpfe 
oder was analoges... Im Prinzip ist es genauso "komfortabel" wie die 
Eingabe der Schaltzeitpunkte im TA250, nur dass man bei der nicht auch 
noch im kalten Keller davor in die Hocke gehen muss...
> Nun TA211 hat die Parameter die Du nur brauchst. Genau so ist der Ta250
> und TA xx ein Bedienteil, wie die Uhr.
Der TA211 hat (v.a. iVm. einem TW2) wohl hinsichtlich des Heizungsteils 
dieselben Infos für die Therme zu bieten wie der TA250 (+BMx für die 
Außentemperatur), und er scheint auch einen der beiden Kanäle des 
"Textdisplays" abzugreifen (jedenfalls bei mittlerer Stellung des 
Drehknopfs für den Heizungsmodus).

> Meine Heizung hat eine I2C Schnittstelle nur den Stecker bekommst Du
> nicht.
Na ja, eine extra Schnittstelle mit eigenem Stecker wäre zwar 
wünschenswert, aber wenn wir sowieso simulieren müssen, dass ein BMx 
angestöpselt ist, muss man eh an diese Schnittstelle ran, und da hat man 
ja ein Kabel, das man aus dem TA 211 E wegstöpseln kann. Beide Enden 
sind im wesentlichen gleich gestaltet und dafür gedacht, sie über ein 
etwas dickeres PCB zu schieben. Abgesehen vom fehlenden Verpolungsschutz 
(wünschenswert, ja), kommt man so zumindest an die Schnittstelle ran, 
ohne an den Kabeln direkt rumzuschnitzen.
> TA211: wenn ich mich recht erinnere werden hier die beiden i2C Pinne
> benutzt um die sequentielle Übertragung der U/F Umsetzung der 8Kanäle zu
> realisieren.
Über diesen Satz muss ich vermutlich noch eine Weile nachdenken, bis mir 
klar ist, was mit "U/F Umsetzung der 8Kanäle" genau gemeint sein könnte.

: Bearbeitet durch User
von Dave G. (neuroquila-n8fall)


Lesenswert?

(ahhh... Ich glaube hier muss man grundsätzlich zwischen Zeitschaltuhr 
und Textdisplay unterscheiden, dann macht das auf einmal auch Sinn 😉)

von Peter* (Gast)


Lesenswert?

Hallo,

Jörg R. schrieb:
> Über diesen Satz muss ich vermutlich noch eine Weile nachdenken, bis mir
> klar ist, was mit "U/F Umsetzung der 8Kanäle" genau gemeint sein könnte.

Nun, ein Spannungsfrequenz/ Frequenz_umsetzer (U/F) mit 8 Kanal wird 
Serial über eine Leitung versendet. Die einzelne Frequenz entspricht der 
Einstellung an den einzeln Messpunkten:

char* Messpunkt[]={" 01 UB-5V           [ V]:",
                   " 02 Grenztemperatur [°C]:",
                   " 03 Fußpunkt        [°C]:",
                   " 04 Absenkung N     [°C]:",
                   " 05 Punkt 4         [ x]:",
                   " 06 Fernbedienung   [°C]:",
                   " 07 Betriebsarten   [Sw]:",
                   " 08 Außentemperatur [°C]:"};

"!schon etwas älter"

i2C Schnittstelle: Sehe hier evtl. zwei verschiedene Ausgänge der I2C 
Schnittstelle, evtl. intern bzw. extern, auch zweckentfremdet (TA211).
Müsste untersucht werden.

von Martin R. (zmaier)


Angehängte Dateien:

Lesenswert?

Eine Frage zur Therme selbst, vielleicht habt ihr einen Tipp. Ich 
beobachte seit ein paar Wochen folgendes:

Die Solltemperatur der Therme wird nicht immer auf Anhieb sauber 
eingeregelt, sondern die Therme tacket einige Male bis sie sich fängt 
und dann die Temp sauber hält.
Habt ihr eine Idee was da sein könnte?

von Jörg R. (rejoe2)


Lesenswert?

Dave G. schrieb:
> (ahhh... Ich glaube hier muss man grundsätzlich zwischen Zeitschaltuhr
> und Textdisplay unterscheiden, dann macht das auf einmal auch Sinn 😉)
Weiß nicht recht. In dem Handbuch zur Therme ist das Bauteil "422" eben 
als "Digitaluhr" bezeichnet, die Abbildung ist aber 1:1 die, die in der 
Einbauanleitung zum BM2 als "Textdisplay" bezeichnet wird. Hätte daraus 
geschlossen, dass es keinen Unterschied gibt, v.a. dann nicht, wenn die 
Schnittstelle keine "Datenschnittstelle" ist, sondern nur an/aus auf 2 
Kanälen hinten rauskommt...

Peter* schrieb:
> Nun, ein Spannungsfrequenz/ Frequenz_umsetzer (U/F) mit 8 Kanal wird
> Serial über eine Leitung versendet. Die einzelne Frequenz entspricht der
> Einstellung an den einzeln Messpunkten:
> [...]
> "!schon etwas älter"
Danke für die Erhellung. Klingt danach, als wäre das nicht so einfach 
mit einem "simplen Mikrocontroller" umzusetzen, zumindest müßte man 
wissen, wie die einzelnen Abschnitte dann aussehen müßten.

> i2C Schnittstelle: Sehe hier evtl. zwei verschiedene Ausgänge der I2C
> Schnittstelle, evtl. intern bzw. extern, auch zweckentfremdet (TA211).
> Müsste untersucht werden.
"Viel Steine gab's, und wenig Brot"... Vielleicht ist der CAN-Weg dann 
für den Moment doch der, der am ehesten umsetzbar ist...

Martin R. schrieb:
> Eine Frage zur Therme selbst, vielleicht habt ihr einen Tipp.
Kann es sein, dass die Flamme zwischendurch erlischt und die Therme dann 
nochmal starten muss? Hatte sowas irgendwann auch mal, da mußte - soweit 
ich mich entsinne - die Brennkammer gesäubert werden.
Kann aber natürlich auch ganz was anderes sein...

von Jörg R. (rejoe2)


Lesenswert?

Jörg R. schrieb:
> Klingt danach, als wäre das nicht so einfach
> mit einem "simplen Mikrocontroller" umzusetzen, zumindest müßte man
> wissen, wie die einzelnen Abschnitte dann aussehen müßten.

(OK, sorry, wir brauchen ja das auch gar nicht, sondern wollen die 
"echte" I2C-Funktionalität nachbilden, wie sie (hoffentlich) in BM1/2 
implementiert ist).

von Martin R. (zmaier)


Lesenswert?

Jörg R. schrieb:
> n es sein, dass die Flamme zwischendurch erlischt und die Therme dann
> nochmal starten muss?

Lässt sich das irgendwie kontrollieren? Sieht man die Flamme, oder wie 
könnte ich das überprüfen?

von Jörg R. (rejoe2)


Lesenswert?

Martin R. schrieb:
> Lässt sich das irgendwie kontrollieren? Sieht man die Flamme, oder wie
> könnte ich das überprüfen?
Es müßte ein Sichtfenster geben, wenn die äußere Abdeckung weg ist. Das 
Problem dürfte aber sein, da zum richtigen Zeitpunkt reinzuschauen...
Nachtrag: Aber es sollte auch ohne Flamme erkennbar sein, wenn der 
Brennraum verschmutzt ist.

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

Martin R. schrieb:
> Die Solltemperatur der Therme wird nicht immer auf Anhieb sauber...

Verstehe Deine Sollkurve überhaupt nicht, bei Nachtabsenkung 10° oder 
Frostschutz?

Jörg R. schrieb:
> Spannungsfrequenz/ Frequenz_umsetzer (U/F) sorry heißt Spannungs/ 
Frequenz_Umsetzer;
Einige CPU's können das, halt billiger damals.

Jörg R. schrieb:
> wie die einzelnen Abschnitte dann aussehen müssten.

Unterschiedlichen Frequenzen je nach Messwert(~100 bis ~500Hz) werden 
hart im Takt zusammen gefügt.

Warte doch Dave's Messungen ab, heißt doch noch Garnichts. Hier ist doch 
dadurch eine weitere Möglichkeit gegeben im Notfall (Ausfall der eigenen 
Elektronik) auf TA211 oder auf TAxxx umzuschalten.

Jörg R. schrieb:
> dass die Flamme zwischendurch erlischt

Habe dies mal in einem anderen Zusammenhang (Gaskontrolle durch die 
Versorger bzw. Brennwertermittlung) im Netz gelesen. Dort wurde ein 
Gerücht dargelegt, dass die Versorger Fremdgas bzw. Luft einblasen 
könnten oder tun und da dann die Flamme evtl. erlöscht. "??!!!"

Martin R. schrieb:
> Lässt sich das irgendwie kontrollieren? Sieht man die Flamme, oder wie
> könnte ich das überprüfen?

Ein Ionenstrom fließt über die Flamme bzw. Du könntest über eine 
Fotodiode
dies nochmals für dich registrieren bzw. es kommt eine Fehlermeldung.
Also Ofen oder evtl. Can-Bus.

von Peter* (Gast)


Lesenswert?

Hallo,

möchte den CAN-Bus nochmals ins Gespräch bringen.

Hat jemand schon mal den HSM bzw. den HMM protokolliert und kann den 
Telegrammkatalog erweitern.

Weiterhin habe ich den TF20 überflogen, ab TA270 bzw. <TAxxx ist 
scheinbar bei einer Codierung "0" die Übernahme (&Löschung) der größeren 
Daten ins TAxxx möglich.

Hintergrund: evtl. nur Änderungsprogrammierung des TAxxx über schein 
TF20 und danach nur Lesen.

&Martin
Wenn ich das richtig deute kannst Du beide SOLL10 Gradpunkte verbinden 
ohne Temperaturverlust, ohne zu heizen.

Die Abkühlung sieht doch identisch aus!? Hier fehlt was, stehende Wärme 
(WW).

Nimm mal ein Zyklus auf.

von Martin R. (zmaier)


Lesenswert?

Hallo,

Danke für die vielen Antworten. Ich werde mir die Flamme mal anschauen, 
hoffe ich sehe da was. Hab auch einen Termin mit dem Installateur, weil 
die letzte Wartung is auch schon wieder a Zeitl aus. Er meinte auch, 
dass die Elektroden sich abnutzen und das dann schon sein kann das die 
Flamme irgendwie ausgeht.

Ich habe HSM und HMM protokoliert und weiß aber leider nicht mehr 
NAchrichten.

Wenn ich Heizen will, dann überschreibe ich die Solltemperaturen der 
Therme und des Mischkreises. Mischkreis mach ich immer 5K kleiner als 
Thermentemperaturen. (weiß eigentlich nicht warum, aber soweit 
funktionierts :) ) und aktiviere die Mischerpumpe.

Ansonsten schreibe ich auf die Sollwerte 10°C und schalte die Pumpe aus. 
(deshalb die langsame Abkühlung der Ist-Temperatur).

@Peter : Ich verstehe deine Frage leider nicht ganz. Kannst du mir das 
bitte nochmal erklären, dann kann ich alle Daten bereitstellen :)

von Peter* (Gast)


Lesenswert?

Hallo Martin,

bin mit nicht sicher welche Frage Du meintest.

Wenn Du den TF20 hast, möchte ich Dich nicht ins Unglück stürzen, in dem 
Du die Codierung auf "0" änderst. Vielleicht kann dein Installateur dazu 
was sagen.

Es währe interessant, wie sich der TF20 meldet um den Ta270 zu 
programmieren. Dieses Telegramm könnte man dann über Can-Bus senden und 
somit ist kein Stress mehr auf dem Bus mit abweichenden Daten.
anders:

Die Daten des Junkers_System werden indirekt geändert (Pseudo_TF20) und 
es werden nicht zusätzlich ständig Eigene_Daten auf den Bus gesetzt.

Auf dem Bus ist somit dann Ruhe.

Mit HSM bzw. HMM Telegrammen könnte man dann auch diese ersetzen.

von Dave G. (neuroquila-n8fall)


Angehängte Dateien:

Lesenswert?

Kleines Entwicklungs- und Erkenntnisupdate:
Diese "NiRen"-ähnlichen Module sind ziemlich fleckig was Zuverlässigkeit 
angeht.
Ich hatte jetzt großen Erfolg mit einem Modul von "Joy-It" wo als 
Transceiver nicht der TJA1050 sondern der MCP2562 eingesetzt wird. 
Darauf basierend werde ich jetzt wohl auch entsprechend PCBs designen...

Dazu habe ich große Anstrengungen unternommen das Projekt so einfach wie 
möglich für alle zu gestalten. Herausgekommen ist nebst der 
Konfiguration über eine Datei nun auch die Möglichkeit das Projekt über 
einen integrierten Webserver zu konfigurieren.

Damit ist es nun möglich ohne Programmierkenntnisse einen ESP32 zu 
bespielen und an die eigenen Bedürfnisse anzupassen.

Um den Fortschritt am Reverse-Engineering der Adressen und Daten zu 
beschleunigen habe ich eine erste Version eines Analysetools mit 
integriert, dass es zunächst auf rudimentäre Art erlaubt die Nachrichten 
und deren Veränderung visuell zu verfolgen.

Siehe: https://github.com/Neuroquila-n8fall/JunkersControl

Ich freue mich wie immer über Kommentare, Verbesserungsvorschläge und 
evtl. auch Beteiligung am Projekt!

von Bernd R. (Gast)


Lesenswert?

Hallo Experten

Ich habe heute mal alle über den CAN-Bus kommenden Signale meiner 
Junkers-ZSB betrachtet und da ist mir einer aufgefallen, den ich so 
vorher noch nicht auf dem Schirm hatte.

0x222 liefert drei Zustände:
#0100
#0110
#0111

Da bei Signal #0110 auch der Brenner an ist, vermute ich die 
Speicherladung.

Hat jemand von euch ähnliche Beobachtungen gemacht?

Gruß,
Bernd

von Peter* (Gast)


Lesenswert?

Hallo,

ZSB??

nun ein Can-Bus und eine Junkers müsste ZBS sein, die ZSB sollte HT3 
oder höher~~ sein.

Ich hatte damals die Adresse nicht mal gescannt. Es könnte ein Mischer 
Telegramm sein HSM oder HMM.

Glaub Dave hatte mal eine DOC ins Leben gerufen. Vielleicht kannst Du 
sie erweitern.

https://docs.google.com/spreadsheets/d/1JzmhEbFY_GSk0Dl_e5pb2zmsy9EPlQU7bUpb9bXKxCM/edit?usp=sharing

von Martin R. (zmaier)


Angehängte Dateien:

Lesenswert?

Hallo,

inzwischen war der Heizungservice da, jedoch hat der keinen 
Hardwaremangel gefunden, laut seiner Aussage tut die Therme was sie soll 
und funktioniert auch.
Ich habs dann versucht ihm zu erklären, dass die Soll-Temperatur nicht 
eingeregelt wird, der Brenner immer abstellt etc. Aber da stieß ich auf 
taube Ohren, er hat die Taste mit dem Schornsteinfeger gedrückt, die 
Therme lief los und somit war dann für ihn alles ok. Er sagt die 
Elektroden etc. da ist alles ok.

Ich habe jetzt meine Sollwertvorgabe deaktiviert, es ist nur die TA270 
dran.
Die Therme kann die Vorlauftemperatur nicht einregeln (so bei Uhrzeit 
5:40). Man hört auch das Gebläse kaum.
Drücke ich jetzt die Schornsteintaste dreht das Gebläse hoch, jetzt hört 
man schon, dass die Therme Leistung liefert. Nach 5Sekunden kann ich 
dann nochmal drücken, ab diesen Zeitpunkt regelt die Therme die 
Temperatur wie zu erwarten ein.

Also es braucht initial diesen Impuls von der Schornsteintaste?
Ich kanns schwer erklären, und verstehen tu ich es sowieso nicht :)
Aber was könnte da los sein?
Ich bin schon kurz davor die Schornsteintaste auch remote "schaltbar" zu 
machen, also ein Relais parallel zu schalten. Würde das Problem aber 
vorher schon gerne verstehen.

Irgendwelche Ideen?

: Bearbeitet durch User
von Dave G. (neuroquila-n8fall)


Lesenswert?

Nach den vollkommen unerklärbaren Phänomenen die ich bis jetzt an diesen 
Heizungen erlebt habe kann ich auch hier eventuell nur auf das Mainboard 
tippen, was einen weg hat. Die "Schornsteinfegertaste" ist ja die Taste, 
die u.A. das Kennfeld auf Emissionsprüfung stellt. Kein Wunder, dass es 
damit richtig anläuft.

von Peter* (Gast)


Lesenswert?

Hallo Martin,

in der Aufzeichnung wird wohl die Pumpe aktiv erwähnt, aber nicht 
gezeichnet?

Hast Du die Pumpen_Aufzeichnung deaktiviert. Oder hörst Du die Pumpe?

Hast Du evtl. zwei Pumpen, Mischer?

Ohne Pumpe arbeite die ganze Regelung mehr als schlecht.

Die Zeiten der "Schwerkraftheizung" sind vorbei.

von Martin R. (zmaier)


Angehängte Dateien:

Lesenswert?

Hallo,

die Werte für die Pumpen habe ich ausgeblendet, sorry für die 
Verwirrung. Beide Pumpen (Heizung und Mischerkreis) laufen.

Heute hatte ich auch wieder was Interessantes gesehen.
Wieder das übliche Takten und dann wurde Warmwasser gemacht und danach 
wurde die VL-Temperatur erfolgreich eingeregelt.

Die Therme treibt mich noch in den Wahnsinn, diese Saison sollte sie 
noch durchhalten, dann kommt was neues.
Falls jemand ein gebrauchtes Mainboard herumliegen hat, ich würds nehmen 
und mit dem probieren :)


sG
Martin

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

Martin R. schrieb:
> ...Wieder das übliche Takten und dann wurde Warmwasser gemacht und danach
> wurde die VL-Temperatur erfolgreich eingeregelt.

Takten heißt nach meiner Erfahrung Wärme wird nicht abführt.

Warmwasser hat mit dem Dreiwegeventil zu tun, vielleicht funktioniert 
das Ventil nicht einwandfrei und klemmt.

Seltsam ist das die Takt_Temperatur immer unterhalb der Solltemperatur 
ist, somit dürfte er doch gar nicht Takten. Die Taktung findet ja, wenn 
ich es richtig sehe, zwischen 25 und 35 Grad statt.

Ich glaube nicht das dein Board defekt ist, leider nur ein Gefühl.

von Martin R. (zmaier)


Lesenswert?

Hi,
takten ist vermutlich der falsche Ausdruck, die Solltemperatur wird 
nicht eingeregelt weil der Brenner vor erreichen der Solltemperatur 
schon abstellt.
Warum auch immer?

von Peter* (Gast)


Lesenswert?

Nun,
wird allgemein als "Takten" bezeichnet und zwar aufgrund des letzten 
Bildes sogar ein sehr schnelles Takten.

Deine Bilder zeigen hierbei ein konstantes Temperaturverhalten.

Eine Regelung findet nur zwischen den beiden Temperaturwerten statt. 
Scheinbar ungeachtet des Sollwertes, bis zur Unterbrechung.

Vermutung, evtl. sind hier im Hintergrund Heizung spezifische Werte im 
Eingriff bzw. Grenzwerte werden verletzt.

Habe ich richtig verstanden das Du HSM und HMM, also mindestens 2 evtl. 
sogar 3  Kreise(WW) hast.

von Martin R. (zmaier)


Lesenswert?

Hallo,

es sind ein gemischter Kreis, der Mischerkreis geht direkt zur 
Fußbodenheizung. Der heizkreis ist über eine hydraulische Weiche an den 
Mischer gehängt, dort wird sonst keine Energie abgeführt.
Wurde vom Vorbesitzer so gemacht, vermutlich wegen zu kleinem 
Volumenstrom der Therme.

sG
Martin

von Martin R. (zmaier)


Lesenswert?

Ich hab noch ein wenig im Internet gesucht, im HTD-Forum hab ich 
folgendes gefunden :
https://www.haustechnikdialog.de/Forum/t/173576/Junkers-ZSBR-7-25-A23-Probleme-mit-Regelung

"
Was war nun der Fehler?
Nach der Reinigung des Wärmetauschers hat mein erster Heizungsexperte 
die Abgasmessung durchgeführt und festgestellt, dass der CO2-Wert zu 
hoch war und die Gasmenge an der Gasarmatur CE 427 verändert. Er hatte 
Schwierigkeiten den CO2-Gehalt unter 10 % zu bekommen. Da er auch den 
quietschenden Lüfter hörte hätte er den Fehler eigentlich erkennen 
müssen. Er sagte nur, "Der Lüfter muss mal ausgetauscht werden".
Durch die geringere Brennluft (defekter Lüfter) und der demzufolge 
angepassten Gasmenge war die Kleinlast in die der Brennwertkessel ZSBR 
7-25 A23 durch Modulation fährt so klein, dass der minimale 
Ionisationsstrom von ca. 1 µA unterschritten wurde und der Brenner ohne 
Fehlermeldung abschaltete. Dass der Ionisationsstrom den Brenner 
abschaltet, war bei der Messung des Ionisationsstroms nicht direkt 
ersichtlich, da der Vorgang sehr schnell abläuft.
Nach der Reparatur des Lüfters und der damit höheren Brennluft war der 
Fehler nicht weg, da die Gasmenge weiterhin klein war. Erst als ich als 
Heizungsleihe verbotenerweise die Gasmenge um zwei Schraubendrehungen 
erhöht habe war der Fehler behoben und der Kessel arbeitet nun wieder 
ohne ewiges Takten.
"


Ich verstehe zwar den Zusammenhang nicht ganz, aber die Symptome waren 
exakt wie bei mir, denke da muss nochmal der Installateur zu mir kommen.
Vor 2 Monaten wurde bei mir auch der defekte Lüfter durch einen 
neuwertig (aber gebrauchten) getauscht, vielleicht hängt das alles 
zusammen?

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo Martin,

muss noch mal auf deine Anordnung deiner Hydraulischen Weiche zurück 
kommen.

Den Einbauort verstehe ich nicht ganz. Ist dieser identisch mit dem in 
der HMM Doc beschreibenden Beispiel. Hört sich seltsam an.

Es muss auch eine separate Pumpe im aktiven Mischerkreis vorhanden. Dazu 
findest Du eine gute Beschreibung unter

bosy-online.de/hydraulische_weiche.htm.

Vielleicht liegen hier deine Probleme.

von Thomas (Gast)


Lesenswert?

Hallo,

wie haben hier eine gut 20 Jahre alte Cerapur (ZSBR 3-16 A 21) im 
Keller. Die würde ich gern mit meinem HomeAssistant bekannt machen.

Langt für den CAN-Bus ein Junkers BM2 oder muss es ein BM1 sein? Von da 
über einen NiRen an den D1 mini, richtig? Oder brauchts auch noch eine 
Steuereinheit/Fernbedienung? Wenn ja (glaub gelesen zu haben, ohne ist 
nicht alles steuerbar): wäre eine TA 271 passend?

Danke für die Hilfe und nebenbei auch Respekt für eure Arbeit und das 
erarbeitete Know-How!

Thomas

von Peter* (Gast)


Lesenswert?

Hallo,

die Frage kommt mir bekannt vor? ...vielleicht etwas mehr lesen.

Nun Du benötigst ein HT_Board, nach meiner neusten Erkenntnis hat auch 
dein Ofen dies.
BM1 und BM2 ist (soll &Jörg) weitgehend identisch sein.

Wenn Du nicht "der" Softwerker bist, solltest Du als Zugang zu deinem 
System noch ein TA250 oder TA27x haben.

!kein Ta211 oder Uhr im Ofen.

NiRen und D1 Mini (warum nicht D1 R3 R32) sollte gehen, aber NiRen neee 
.... CANdiy-Shield V2 -Watterott zur Zeit verfügbar.

von Martin R. (zmaier)


Lesenswert?

@Peter:
Ja, hydraulisch schaut das genauso aus wie in der Doku, eine zusätzliche 
Pumpe für den gemischten Kreis ist vorhanden.

Das System hat letztes Jahr ohne Probleme funktioniert.
Aber aktuell tut sich die Therme schwer die VL Temp zu erreichen.
Der Installateur meinte, die Steuerplatine ist defekt und muss getauscht 
werden, kostet 600€ ohne MwSt und Einbau :)

Ich mach jetzt folgendes, extrem quick&dirty, aber die Therme muss 
diesen Winter noch durchhalten, nächstes Jahr kommt eine LWWP.

Wenn die VL-Temperatur nach 15 Minuten nach einschalten des Heizbetriebs 
nicht erreicht wurde, dann wird  die Schornstein-Taste gedrückt, 
10Sekunden gewartet und dann wieder gedrückt. "Drücken" erfolgt mittels 
Relais, parallel zum Taster. Damit klappts soweit problemlos, wenn auch 
sehr sehr "hingebastelt" :)

von Peter* (Gast)


Lesenswert?

Hallo Martin,

nun, Du bist vor Ort und kannst das sicher besser beurteilen...???

Aber bei eBay und...Kleinanzeigen sind momentan ein paar Heizungen 
günstiger als !600 Euro +++! zu haben. Handeln, kaufen...Sommer abwarten 
und evtl. einbauen oder lassen und in der Zwischenzeit weiter suchen.

Weil,...ich glaub nicht an einen so großen Fehler.

von Dave G. (neuroquila-n8fall)


Lesenswert?

Tja, wie bei mir. Ich habe kurzerhand einfach die Platine ausgebaut, die 
exakte Teilenummer notiert und habe dann nach dieser Teilenummer ein 
Ersatzboard gekauft. Damit lief dann wieder alles wie gewohnt und die 
Taktung steht jetzt mit durchschnittlich 5 mal die Stunde auch voll im 
Bereich des Vertretbaren.

Das Board auszutauschen ist echt einfach aber man muss natürlich vorher 
die Therme komplett spannungsfrei schalten. Für absolute Sicherheit noch 
den Gashahn zudrehen. Danach ist prinzipiell sämtliches Risiko 
ausgeschlossen. Wenn man sich das nicht zutraut, dann steht's halt doch 
leider bei den mehreren hundert € für eine Reparatur.

Für den Tausch habe ich übrigens ca 10 Minuten gebraucht und das neue, 
gebrauchte Board kostet um die 100€.

von Thomas (campino)


Lesenswert?

Hab mich auf das Abenteuer eingelassen ;-)

In der Cerapur steckt jetzt ein BM2, daran erstmal nur die TA 271 (bevor 
ich einen ESP dazwischenhänge, wollte ich erstmal die Standardfunktion 
sehen).

Klappt so enigermaßen: die beiden rechten PINs am Busmodul brauchts zur 
Kodierung per Widerstand (ohne kommt der Fehler CC, läuft jetzt also als 
"Modul 2").

Damit habe ich aber nicht nur ein kosmetisches Problem (Anzeige "Modul 1 
fehlt"), sondern auch keinen Außentemperaturfühler mehr.
Der war (bzw. ist noch immer) direkt an der Cerapur angeschlossen; wenn 
ich das richtig verstehe, sollte er eigentlich "umziehen" auf das 
Busmodul - allerdings sind die Anschlüsse da ja vom Kodierwiderstand 
belegt.

Jetzt also dauerhaft -20°C und entsprechend fehlende Regelung.
Was tun (und sagt jetzt bitte nicht: BM1 kaufen)?

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

Thomas schrieb:
> Klappt so enigermaßen: die beiden rechten PINs am Busmodul brauchts zur
> Kodierung per Widerstand (ohne kommt der Fehler CC, läuft jetzt also als
> "Modul 2").

Woher hast Du diese Weisheit? Steht da zufällig AF drauf. Wie 
Außenfühler.

Fehler CC:
CC blinkt.
Außentemperatur-NTC nicht erkannt.
(Heizgerät heizt entsprechend Außentemperatur von -20°C.)

Da scheint der Außenfühler nicht richtig kontakt zu haben.

Thomas schrieb:
> Der war (bzw. ist noch immer) direkt an der Cerapur angeschlossen; wenn
> ich das richtig verstehe, sollte er eigentlich "umziehen" auf das
> Busmodul - allerdings sind die Anschlüsse da ja vom Kodierwiderstand
> belegt.

Wo war der Außenfühler angeschlossen, doch am TA211 oder?

von Peter* (Gast)


Lesenswert?

Hallo,

wie alt ist deine Heizung und hast Du ein Textdisplay?
Passt alles irgendwie nicht.

von Thomas (campino)


Lesenswert?

Hallo und vielen Dank für die Unterstützung!

Die Cerapur ist vom Typ ZSBR 3-16 A 21, installiert 2001; sie hat ein 
Textdisplay, der Außenfühler ist "unten rechts" angeschlossen 
(Beschriftung A/F) und wird erkannt solange kein Busmodul mitspielt.

Die Klemmen A/F am Busmodul sind laut Anleitung/Serviceheft beim BM1 zum 
Anschluss des Außenfühlers, beim BM2 aber für den Kodierwiderstand.
Wenn ich A/F am BM2 offen lasse oder da den Außenfühler anschließe, 
kommt der Fehler CC - ist genau so dokumentiert.
Mit dem richtigen Kodierwiderstand wird das BM2 als Modul Nummer 2 
erkannt und prinzipiell funktioniert der CAN-Bus inkl. TA 271, nur wird 
halt angezeigt "Busmodul 1 fehlt" und es gibt natürlich keinerlei Daten 
vom Heizkreis 1 - und auch keine Außentemperatur.

Demnach fürchte ich, der Gedanke "egal ob BM1 oder BM2, die sind eh 
baugleich" ist nicht so ganz richtig ...

von Peter* (Gast)


Lesenswert?

Hallo,

muss Dir leider Recht geben. Habe gestern noch BM2 Doku (6720610043.pdf) 
heruntergeladen, hier steht eindeutig:

https://www.bosch-thermotechnology.com/de/de/wohngebaeude/service-und-support/dokumente/bedienungsanleitungen/

Zitat BM2:
Das BM 2 ist nur bei Kaskadenschaltung von
mehreren Heizgeräten mit busfähiger Bosch
Heatronic zu verwenden.

Hier werden auch die Widerstände aufgelistet als Beipack.

Kodierwiderstand Ω

BM 2/2 7870
BM 2/3 10000
BM 2/4 14700
BM 2/5 30100


Es ist seltsam, das diesbezüglich noch keine Info kam, es wurde doch 
schon BM2 verbaut.

Vielleicht kannst Du über eine andere Stelle die Außentemperatur 
einpflegen oder das Manko auf andere Weise beseitigen.

von Peter* (Gast)


Lesenswert?

Hallo Thomas,

ein Gedankenspiel von mir, vielleicht hast Du sogar eine bessere 
Variante mit dem BM2.

Dadurch das Bosch hier ein CAN-Bus_System zum Master/Slave System 
degradiert hat. Hast Du evtl. den Vorteil Dich als Master (!der ja 
fehlt) auszugeben. Ein ESP_Can könnte diese Aufgabe evtl. einfacher 
übernehmen als in der herkömmlichen Vorgehensweise, immer wieder 
dazwischen funken. Die Werte des Slave's werden zum Ist-Wert Master.

Ich kenne die Telegramme zwischen Master und Slave nicht, aber die 
könntest Du ja scannen.

Die "fehlende" Außentemperatur könnte trotzdem vorhanden sein, nur nicht 
ausgewertet werden. Da im Service Pkt. 1.9 die BM1/BM2 die gleiche 
Kennung hat, sollte sie andere Karten (Textdisplay-AF) trennen. 
Vielleicht einfach mal ursprünglichen Steckplatz mit Fühler messen. 
Sollte so unter 5V bzw. evtl. <24V liegen. Auswerten!

nur ein Gedanke.

von Jörg R. (rejoe2)


Lesenswert?

Das mit dem BM2 ist strange...

Es gibt jedenfalls mind. 2 Generationen von BM1 bzw. BM2, einmal recht 
schlank bestückt, und einmal mit einem "großen" CAN-Transceiver, der 
auch fehlertolerant ausgelegt ist (würde letzteres mal als V2 
bezeichnen). Bei mir hat jedenfalls die "neue" Variante von BM2 erst mal 
funktioniert, allerdings sind dann die Spannungen irgendwann in Regionen 
verschoben worden, in denen dann erst mal nichts mehr ging (mit dem 
ESP+Transceiver). Daher habe ich auch ein BM1 daliegen, das aber auch 
nicht funktioniert.
Bin grade noch an ein paar anderen Themen dran (und mit dem einigermaßen 
einverstanden, was die TA250 grade so vorgibt), daher die derzeit etwas 
spärliche Rückmeldung.
Seltsamerweise machen beide Module aus der von der Therme kommenden 
Spannung von 24V was anderes außerhalb der Spec, nämlich einmal knapp 
15V (BM1, alt) und einmal knapp 30V (BM2 neu, aber nach Verschiebung, 
das hatte erst saubere 24V geliefert!). Die TA funktioniert mit 
beiden...

Nachtrag: Am BM2 habe/hatte ich "ganz normal" den Außentempfühler 
angeschlossen, keinen Kodierwiderstand...

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

kann ich auf ganz Linie bestätigen, kenne schon alleine zwei BM1 
Bestückungsvarianten ohne jemals etwas darüber gelesen zu haben, warum 
weshalb hier Unterschiede gemacht wurden. Vermute allerdings, das die 
Änderung zur Stabilität des CAN-Bus führen sollte oder zur Erkennung von 
Fremdgeräten.

Allerdings habe ich auch Zweifel, das alle BM2 bei ebay auch BM2 sind. 
Ein BM2 benötigt (so PDF) keinen LM317 (To-220) für die Stromquelle des 
Außenfühlers und sind währen somit identisch mit BM1!??

Hier liegt evtl. auch eine zu knappe Stromversorgung im BM1, gewollt??

Die Probleme mit dem CAN-Bus hat wohl jeder schon erfahren und mein BM1 
hat damals 14,40V und Dave's 17V. Diese Unterschied sprechen schon für 
sich. Entweder ist fast jedes Modul defekt oder einfach schlechte 
Hardware.

In deinem Zusammenhangt mit der Benutzung des TA250 und BM2 fiel mir 
ein, das TA 250 nur einen Kreis steuern kann und dies auch nur 
vorgesehen ist. TA270/271 bzw. 300/301 ist vorgesehen für Kaskaden und 
mehrere Heizkreis (mit TF20, HSM und HMM). Somit hast Du scheinbar eine 
Benutzung (TA250) ohne Fehler, aber auch kein AF oder ?

Nun, kommt es für Thomas noch schlimmer TA271! War für mich halt nur 
eine Weiterentwicklung, aber!

TA271. pdf

Dieses Zubehör kann nur an ein
Heizgerät CERAPUR MAXX angeschlossen werden.
Für Kaskaden sind Heizgeräte ab
Fertigungsdatum FD 584 zu verwenden!

zu lesen in der TA271 Beschreibung.

von Thomas (campino)


Lesenswert?

Dann hab ich wohl gleich an mehreren Stellen Probleme ... und falsche 
Hardware.

Mein BM2 ist tatsächlich mit dem kleinen Chip bestückt; ich halte das 
allerdings eher für das neuere Modell, günstigere Bauteile, dafür evtl. 
eingeschränkter Funktionsumfang (z.B. nicht kompatibel mit BM1?).
Die TA271 hat übrigens keine Probleme bereitet - abgesehen vom fehlenden 
"System 1".

Da die Heizung nach dem Tausch der Hauptplatine (bzw. der gesamten 
Bedieneinheit) jetzt aber auch bei mir zufriedenstellend funktioniert 
(bis auf die fehlende nächtliche Pumpenabschaltung, aber das ist wohl 
ein anderes Thema), werde ich meine Bemühungen diebezüglich auch erst 
mal einstellen.

Ich hab aber mal die Spannung am AF gemessen - bei 0..3°C waren das 
1,80..1,76 V , vielleicht hilft es jemandem.

Nochmal vielen Dank euch allen und weiterhin viel Erfolg!

Thomas

von Peter* (Gast)


Lesenswert?

Hallo,

Schade..,

nun Du hast eine defekte Steuereinheit, die aber weitgehend 
funktioniert, Du hast ein CAN-Bus Adapter BM2 und ein Bedienteil TA271 
und siehst nicht die Möglichkeit dein Problem zu lösen!??

Gerade jetzt kann das Spiel beginnen. Na Gut, die Zeit..?? Die Zeit ist 
aber auch dein Vorteil die Du hast, deine Heizung läuft. Mein 
aufgezeigter Vorschlag mal ausprobieren.?? Vorsichtig am Pumpenausgang 
(Lampen montieren und an der Hochspannung (alte Elektroden montieren Zur 
Masse).....

@BM2
> eingeschränkter Funktionsumfang : nein, glaube ich nicht, die Größe der CPU: 
evtl. Möglichkeit die garantiert nicht genutzt werden. PORT's....usw. Aber ohne 
Schaltplan kann man nur Vermutungen tätigen.

@Pumpen
> bis auf die fehlende nächtliche Pumpenabschaltung: Warum??? evtl. Stromverbrauch 
ja/nein!!;

Hast Du ein isoliertes Haus,  wenn ja muss es sehr schlecht isoliert 
sein. Das Du die Heizung abschalten willst... Energie kontrolliert 
erhalten statt auskühlen. Ich gebe Dir Recht... hier gibt es Schwellen 
die berücksichtigt werden müssen und schwer bzw. nur langfristig zu 
ermitteln sind.

Was übrig bleibt ist der hohe Stromverbrauch unserer Pumpen. Junkers hat 
inzwischen eine Hocheffizienzpumpe als Ersatz UPMO 15-50 TTAO (130), 
alte Pumpen sind scheinbar nicht mehr zulässig. 350 Euro für 60W max,... 
besser Alpha2 15-60 (130) bzw. evtl. Wilo Stratos-PICO "-plus 15/1-6" 
oder so.
Natürlich kommt es auch auf die Anlage an.

@AF
Wenn Du mit CAN-Bus (BM2) gemessen hast, ist der Temperaturzweig doch 
bestromt. Somit kannst Du die Temperatur/Widerstandswerte (Beschreibung) 
als Stützpunkte zur Berechnung der Temperatur nutzen und interpolieren 
und per CAN_Bus unter 0x207 mitteilen.

von Thomas (campino)


Lesenswert?

Hallo,

ich les' hier schon noch mit, wahrscheinlich packt's mich doch 
irgendwann wieder ;-)

bzgl. Nachtabschaltung:
die verbaute Pumpe braucht halt um die 80 W, was nicht wenig ist, vor 
allem wenn keine Wärme zu verteilen ist.

Das Haus ist schon ganz ordentlich gedämmt und nachts wird - natürlich - 
eher nicht geheizt; aber die nicht smarten Thermostatventile (an den 
Raumkreisen der Fußbodenheizung) werden halt weiterhin fordern. Das war 
einer der Gründe, warum ich mich in die Steuerung einklinken wollte.

bzgl. BM2-Hardware(-Generation):
ich meinte nicht "kleiner = weniger Features", eher "kleiner weil neuer" 
(ganz früher gab's mal einzelne Transistoren), die Annahme (stimmt: 
Spekulation) war: es wurden beim Redesign Features weggelassen (evtl. 
noch nicht einmal bewusst), die nicht zwingend erforderlich waren ...

Gruß,
Thomas

von Jörg R. (rejoe2)


Angehängte Dateien:

Lesenswert?

Thomas schrieb:
> bzgl. BM2-Hardware(-Generation):
> ich meinte nicht "kleiner = weniger Features", eher "kleiner weil neuer"

Die Rechnung haut mAn. so nicht hin. Lt. FD-Nummer ist das "BM2" mit dem 
großen IC das neuere...
Das andere wurde als "BM1" verkauft. Wenn man in der Bucht sucht, findet 
man zu beidem auch beide Versionen.

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

nun BM2 (großer CPU) beinhaltet ein komplettes "80C51 System mit 
integriertem CAN-Bus" mit ROM (extern)und den Feinheiten der damaligen 
Zeit..16bit Adressbus usw. Beschreibungen des BM2 System liegen nur mit 
großem CPU vor.

Weiterhin wird BM2 als kompatibel zu BM1 angepriesen von Firmen die BM2 
ohne großen CPU verkaufen!?? Dies, stimmt wieder nicht mit der 
Beschreibung überein. Neuere Hardware sehe ich nicht.

Wie schon geschrieben währe dies interessant mal durchzutesten, aber 
wann ist HT3 (~2006-09) herausgekommen? Seit dem wird bei Bosch sicher 
auch keine Hardware HT2 weiterentwickelt.

Man kann sich freuen wenn es noch funktioniert.

von Dave G. (neuroquila-n8fall)


Lesenswert?

Nunja um da die letzten Zweifel auszuräumen hätte ich eine Idee.
Ich hätte ein funktionierendes BM1 zum Testen abzugeben, falls das 
Klarheit in die Probleme bringen könnte.

Falls gewünscht kann ich das dann auch stark vergünstigt überlassen.

von Peter* (Gast)


Lesenswert?

Hallo Dave,

Frage, hast Du mal deine Optimierung der Vorlauftemperatur über den 
Ventil_Status kontrolliert.

Ehrlicherweise habe ich ein Problem mit dem Prinzip aus deiner Formel 
heraus. Eine grafische Unterstützung währe hier vielleicht hilfreich.

Mein ähnliches bestreben den jeweiligen Ventilstatus zu nutzen die Last 
zu reduzieren erwies sich als Fehleinschätzung. Es kann nur daraus 
entschieden werden ob eine Reduzierung der Vorlauftemperatur im System 
möglich ist.
Die Reduzierung bringt aber nichts nennenswertes an Einsparung. Zu 
mindestens habe ich kein Unterschied festgestellt. Eine Einteilung in 3 
Zonen, zu heiß richtig, zu kalt sehe ich als zweckmäßig.

Hast ein Regelsystem am Heizkörper und stellst eine Temperatur ein, 
fängt er anfangs an zu Takten,  "an" "aus" mit kleinen Öffnungen (P). 
Reduzierst Du die Vorlauftemperatur mit gleicher Temperatureinstellung 
versucht er mit einer größeren Öffnung die fehlende Energie 
auszugleichen (Durchflusserhöhung). Einfach eine Verschiebung von 
Temperatur auf Masse, die Energie bleibt scheinbar gleich.. Bis es nicht 
mehr klappt " zu Kalt" (zur Temperatureinstellung).

von Joe Lucid (Gast)


Lesenswert?

Ich habe auf Ebay einen BM2 gekauft (mit kleinem chip). Habe keinen Can 
Bus Regler. Therme läuft nur mit Kodierwiderstand - sonst Fehler CC. 
Habe Gerät 2 eingestellt.

Scannen des Can Busses liefert die gleichen Updates von der Therme, die 
sonst unter 0x20x geschickt werden, aber statt dessen unter 0x23x. Das 
ergibt Sinn - in einer Kaskade müssen alle Thermen unterschiedliche IDs 
verwenden.

Mein Problem: die Therme reagiert nicht auf 0x25x oder 0xf9 und geht 
nach kurzer Zeit auf Error A8.

Meine Hypothese: Geräte die an einer BM2 hängen müssen genauso über 
einen anderen Id Bereich vom Regler gesteuert werden. Nur welcher? 
Einige Versuche liefern bisher keinen Erfolg.

Wahrscheinlich hat bisher keiner eine Kaskade belauscht, oder? Kann die 
Therme aus dem A8 Zustand wieder aufgeweckt werden durch Senden eines 
korrekten Codes? Falls ja könnte ich den ID Bereich einfach durchtesten.

von Joe Lucid (Gast)


Lesenswert?

Zum Thema BM2: es gibt offenbar zwei Klassen. Geräte der ersten lassen 
sich durch Anschluss des Aussenfühlers zu BM1 machen. Die anderen 
blockieren die Therme in diesem Fall mit Error CC. Für diesen 2. Fall 
ist es wichtig den BM2 mit anderen can bus Adressen zum laufen zu 
bekommen. Da der BM1 ja unbezahlbar ist.

von Peter* (Gast)


Lesenswert?

Hallo Joe,

nun nach den letzten Beiträgen über BM2 (hoffe doch gelesen) kann ich 
nur sagen deine freie Entscheidung.
Aber,... sollte man doch nutzen und wo sind die guten Bild von beiden 
Seiten BM2. :-).

Was heißt Du hast kein CAN-Bus Regler?

Joe Lucid schrieb:
> in einer Kaskade müssen alle Thermen unterschiedliche IDs
> verwenden.

Woraus leitest Du das ab?, ID heißt nicht unbedingt Gerät. Hier wird 
weitgehend mit einem Daten_Byte gearbeitet. Also stehen dir theoretisch 
7 byte zur Codierung der Routine zur Verfügung. Aber egal.

Joe Lucid schrieb:
> Mein Problem: die Therme reagiert nicht auf 0x25x oder 0xf9
Nun was sagen denn diese Routinen aus, 0xF9 war nach wie vor bei mir 
unbekannt, vielleicht ein Marker für xx.
0x25x sind Routinen die vom Ta250 versendet werden. Ein TA250 ist aber 
nicht fähig mit anderen Geräten zu arbeiten!! evtl. dein Error A8

Also musst Du, mindestens laut Bosch Junkers, einen TA270 oder > haben 
und dann werden sicher auch hier die Routinen ID's sich ändern.

Joe Lucid schrieb:
> Meine Hypothese:....

Dein TF20 und HMM im Kreis x: Scannen Im System?? wie gesagt deine 
Entscheidung BM2 viel Arbeit aber evtl. lösbar.

Joe Lucid schrieb:
> Zum Thema BM2: es gibt offenbar zwei Klassen. Geräte der ersten lassen
> sich durch Anschluss des Außenfühlers zu BM1 machen.

Bin sicher, hier werden einige auf den Beweis warten.

Joe Lucid schrieb:
> Für diesen 2. Fall
> ist es wichtig den BM2 mit anderen can bus Adressen zum laufen zu
> bekommen. Da der BM1 ja unbezahlbar ist

Verstehe ich nicht ganz,.. ersetze Therme 0 ! durch einen Arduino/Can 
oder so.. und mache Ihn zum Master der Kaskade. Kein BM1 kein Ta270... 
BM2 an deiner Therme. Alles erstmal Theorie!!! Winter ist kalt.

Master gibt Slave vor, in der Kaskade.

von Dave G. (neuroquila-n8fall)



Lesenswert?

Peter* schrieb:
> Hallo Dave,
>
> Frage, hast Du mal deine Optimierung der Vorlauftemperatur über den
> Ventil_Status kontrolliert.
>
> Ehrlicherweise habe ich ein Problem mit dem Prinzip aus deiner Formel
> heraus. Eine grafische Unterstützung währe hier vielleicht hilfreich.
>
> Mein ähnliches bestreben den jeweiligen Ventilstatus zu nutzen die Last
> zu reduzieren erwies sich als Fehleinschätzung. Es kann nur daraus
> entschieden werden ob eine Reduzierung der Vorlauftemperatur im System
> möglich ist.
> Die Reduzierung bringt aber nichts nennenswertes an Einsparung. Zu
> mindestens habe ich kein Unterschied festgestellt. Eine Einteilung in 3
> Zonen, zu heiß richtig, zu kalt sehe ich als zweckmäßig.
>
> Hast ein Regelsystem am Heizkörper und stellst eine Temperatur ein,
> fängt er anfangs an zu Takten,  "an" "aus" mit kleinen Öffnungen (P).
> Reduzierst Du die Vorlauftemperatur mit gleicher Temperatureinstellung
> versucht er mit einer größeren Öffnung die fehlende Energie
> auszugleichen (Durchflusserhöhung). Einfach eine Verschiebung von
> Temperatur auf Masse, die Energie bleibt scheinbar gleich.. Bis es nicht
> mehr klappt " zu Kalt" (zur Temperatureinstellung).

Benutzt werden daher bei mir Raumthermostate an der Wand und die geben 
auch die Leistung an, die benötigt wird. Ich setze ausschließlich 
Homematic IP ein und anscheinend sind die Teile lernfähig genug, wenn 
überhaupt, dass es wunderbar klappt. Das System balanciert sich relativ 
schnell ein. Ich habe dazu Bilder angehängt und erkläre die im folgenden 
Text.

Ich habe mittlerweile eine etwas komplexere Steuerung laufen. EG und OG 
werden prozentual gewichtet. Die resultierende 
Durchschnittsventilöffnung wird dann als Vorgabe für die maximale VLT 
benutzt.
Derzeit fahre ich zwischen 70/30 +/- 5: 70% Gewichtung EG gegen 30% 
Gewichtung OG.
Die VLT beträgt nun im Schnitt bei -5°C bis 0° ca 45°C, war vorher 
60-70°C. Vor dem Mainboardtausch taktete die Heizung auch fröhlich gegen 
85°, auch wenn ich nur 40° haben wollte. Der Durchschnitt machts. Dazu 
später mehr...

Da die Thermostate selbst schon mit Hysterese (3K meine ich) arbeiten 
und die Ventilöffnung daher schon selbst eine Toleranz mitbringt, sah 
ich das als sinnvollen Steuerwert an, musste aber sehen, dass zu viel 
Energie im OG angerechnet wird.

Da die Wärmeanforderung im EG größer ist als im OG, müsste daraus eine 
höhere VLT resultieren. In der Realität war die Taktung bei zu hoher VLT 
einfach zu groß. Es wurden kleine Schübe hoher Energie in die Heizkörper 
gepumpt.
Ich habe die Heizleistung meiner Therme auf das absolute Minimum 
reduziert, dadurch braucht diese auf Sparflamme deutlich länger um die 
Energie zuzuführen, benötigt aber eine deutlich geringere VLT um die 
Räume aufzuheizen, da jetzt ein konstanter(er) Energiestrom an den 
Heizflächen ankommt.

Ich sehe auf was du hinaus willst und ich verstehe auch die 
Problematiken eines so eng an einer Kennziffer geführten Systems. Man 
könnte argumentieren, dass eine höhere VLT effizienter ist, da nun nur 
ein mal kräftig Energie zugeführt wird und dann nur noch gering 
nachgeheizt werden muss. Das klappt aber nur in isolierten Häusern. Bei 
dem Bruchsteinmauerwerk hier von Anno 18xx klappt das nicht.

Ich habe mal eine Grafik angehängt von einem normalen, kalten Tag wie 
heute: Außentemperatur um 0°C +/- 5°. Gewichtung ist 75/25 aktuell.

Gestartet wird die Heizung um 5:30 und lasse sie schon auf 
Betriebstemperatur fahren. Wenn dann um 6:00 die Ventile sich öffnen, 
beginnt das eigentliche spektakel und das System regelt sich 
selbstständig ein.
Man sieht hier schön wie die Ventilöffnung die VLT regelt und es sich 
dann einpendelt. Alle Räume haben dann irgendwann im Verlauf des Morgens 
die nun hust *hust* verbotenen 21°C hust *hust*
Interessant ist hier auch auf die RLT zu schauen (Bild #3). Hier sieht 
man schön was der Delta-Wert in Kelvin zu bedeuten hat. Dieser steht bei 
mir auf 10K. Heizt man heißer, steigt auch die RLT selbstredend und wir 
wissen alle, dass hohe Temperatur gleich viel Energie bedeutet und jedes 
K weniger heißt auch eine Zugabe von weniger Energie. Also sparen wir 
hier den Sockelwert von sagen wir mal 10K VLT ein. Inwiefern das Kosten 
spart, kann ich leider erst nächstes Jahr bei der Abrechnung sagen.

Kleine Randnotiz dazu:
Eventuell verkaufe ich das Haus hier auch demnächst und mein nächstes 
Projekt wird dann wohl eine Ölheizung von 2016 werden, aber das steht 
noch in den Sternen... dementsprechend werde ich Fallabhängig keinerlei 
Aussagen mehr dazu treffen können. Wenn alles Spruchreif ist, würde ich 
mich freuen, wenn jemand das Projekt aktiv weiter betreuen könnte. Ich 
kann da dann nur noch beratend zur Seite stehen.
Wie gesagt, Zukunftsmusik.

von Peter* (Gast)


Lesenswert?

Hallo Dave,

wie immer beeindruckend.

> Benutzt werden daher bei mir Raumthermostate

Habe mir erst vor kurzen einen Temp /Feuchte Sensor gewünscht, so groß 
wie eine alte 10DM Münze selbstklebend 10 Jahre betriebsbereit usw..... 
aber mit Energiebedarfsangabe wauuu. Ja, ohne Wandsensor ist es mehr als 
schwer. Aber wir uns einig es kann nur ein Schätzwert sein. ELV?

EG und OG: bin ich mir nicht sicher, ob nicht eher der Raum als das 
System die Priorität erhalten sollte. In der momentanen Zeit ist es ganz 
sicher das System Sparsam.

> Heizleistung

Habe die gleiche Erfahrung gemacht, auch die Erfahrung das sich die 
Wärme ändert. Habe in einigen Bereichen des Haues Heizkörper mit glatter 
Oberfläche Design_heizkörper sie verlieren einfach ~Leistung, die 
angenehme Strahlungswärme.

Meine Heizleistung habe ich von 22KW auf 10 beschränkt, angeblich kann 
meine 7KW aber füllt dann ständig den Siphon auf?? Hatte den 
Hintergedanken die Taktung zu reduzieren. Von wegen, die blieb.
Nun ich habe wohl keine Fußbodenheizung, aber konnte ich bis 0°C noch 
fahren. Die Heizkörper hatte ich aber auch vor 15 Jahren auf 45 
ausgelegt, bis aufs Bad.

Nun 3 Grad Differenz,...ist viel, habe schon auf die alten ELV FHT 
geschimpft, die geben 0,5 Grad an sind aber auch mal 1,2°C und das merkt 
man.

> absolute Minimum
Ja genau, Türen schließen und selbst Lüften war ein Temperaturverlust.

> dass eine höhere VLT effizienter ist
Nein, verfechte ich auf keinen Fall, möglichst optimal heißt alle 
~Möglichkeiten abdecken.

> Gestartet wird die Heizung
Seltsam, bei mir werden die Heizkörper als erstes aktiviert, warum... 
weil ich die Wärme schnell abführen will. Ein geschlossener Heißkreis 
führt zur Taktung.(es ist kein Bypass_System vorhanden). Man sieht auch 
bei Dir das der Brenner sofort wieder abschaltet. Block!

>Bild 3
super, die Effiziens der Brennwerttechnik kommt zum tragen.

> Kleine Randnotiz dazu:
Hatte mich schon gewundert, das Du dein BM1 so einfach abgeben willst.

ÖL :-( --> Sanierung - Pflicht--> Wärmepumpe wird kommen. Nimm die 
Heizung lieber mit :-)..

Hier wird wohl bald jeder eine andere Heizung haben oder ergänzen. Hoffe 
die Preise sinken wieder. Meine Heizung sieht aus wie neu, wenigstens 
von außerhalb der Rohrleitung(WW Behälter?? meistens das Aus). Hybrid, 
Pufferspeicher(um die Taktung zu unterbinden) und Solar ist bei mir 
angesagt.

> wenn jemand das Projekt aktiv weiter betreuen könnte
?? Schade :-(

von Joe Lucid (Gast)


Lesenswert?

Peter* schrieb:
> Hallo Joe,
>
> nun nach den letzten Beiträgen über BM2 (hoffe doch gelesen) kann ich
> nur sagen deine freie Entscheidung.
> Aber,... sollte man doch nutzen und wo sind die guten Bild von beiden
> Seiten BM2. :-).

Ja - ich hab alles gelesen. Ich hatte den BM2 schon vor einiger Zeit 
gekauft, wo noch im wesentlichen Erfolgsmeldungen gepostet wurden.

>
> Was heißt Du hast kein CAN-Bus Regler?

Na - ich hab ursprünglich den TA 211 E als Regler, der ohne CAN bus 
arbeitet. Der BM2 ersetzt diesen. Von daher kann ich nicht auf Basis 
einer Paketaufzeichnung sehen, welche Kommandos die Therme erhalten 
muss. Es sind jedenfalls nicht die 0x25x ... - und den eigenen Status 
meldet die Therme auch unter 0x230 folgende.

>
> Joe Lucid schrieb:
>> in einer Kaskade müssen alle Thermen unterschiedliche IDs
>> verwenden.
>
> Woraus leitest Du das ab?, ID heißt nicht unbedingt Gerät. Hier wird
> weitgehend mit einem Daten_Byte gearbeitet. Also stehen dir theoretisch
> 7 byte zur Codierung der Routine zur Verfügung. Aber egal.

Na jedes Can Bus Paket hat ja eine ID und dann gegebenenfalls payload. 
Und ich habe beim Mitschnitt meiner die 0x230 und folgende als IDs 
gesehen. Die Therme reagierte nicht auf 0x250 folgende.

0x200 ist schon mehr als ein byte - ich glaube der Adressraum ist 16 
bit.

>
> Joe Lucid schrieb:
>> Mein Problem: die Therme reagiert nicht auf 0x25x oder 0xf9
> Nun was sagen denn diese Routinen aus, 0xF9 war nach wie vor bei mir
> unbekannt, vielleicht ein Marker für xx.
> 0x25x sind Routinen die vom Ta250 versendet werden. Ein TA250 ist aber
> nicht fähig mit anderen Geräten zu arbeiten!! evtl. dein Error A8
>
> Also musst Du, mindestens laut Bosch Junkers, einen TA270 oder > haben
> und dann werden sicher auch hier die Routinen ID's sich ändern.

Also TA xxx hab ich gar nicht. Ich möchte die Therme nur mit dem esp32 
fernsteuern statt der TA 211 E.

> Joe Lucid schrieb:
>> Für diesen 2. Fall
>> ist es wichtig den BM2 mit anderen can bus Adressen zum laufen zu
>> bekommen. Da der BM1 ja unbezahlbar ist
>
> Verstehe ich nicht ganz,.. ersetze Therme 0 ! durch einen Arduino/Can
> oder so.. und mache Ihn zum Master der Kaskade. Kein BM1 kein Ta270...
> BM2 an deiner Therme. Alles erstmal Theorie!!! Winter ist kalt.

Ich sende mit Dave's firmware das, was ein TAxxx sonst senden würde. 
Aber meine Therme geht eben sofort in A8 - auch wenn sie ihren eigenen 
Status a'la 0x200 folgende kommuniziert.

von Joe Lucid (Gast)


Lesenswert?

3k Hysterese ist natürlich katastrophal. Ich habe mir einen Satz HR20 
gekauft und bin ziemlich zufrieden damit. Werde aber eine neue Firmware 
dafür schreiben und die drahtlos machen - ähnlich wie OpenHR20.

(a) Für mich ist das konstante Regeln einer Zimmertemperatur die erste 
grosse Priorität. Wenn das schwankt wird es im Tiefpunkt zu kalt und man 
stellt wärmer -> höhere Durchschnittstemperatur.

(b) Die zweite Priorität ist, Zimmer so schnell wie möglich von einer 
niedrigen Abwesenheitstemperatur auf behaglich zu bekommen. Meistens 
stehen viele unserer Zimmer leer - wenn man das in 15 min warm bekäme 
könnte man alles auf 17 Grad lassen bis Wärme benötigt wird.

(c) Dritte Priorität ist minimale VL Temp damit die Basisheizleistung 
effizient erbracht wird.

Wenn man es durchspielt merkt man schnell wie sich die Punkte 
widersprechen: bringt man den VL auf maximale Temp um ein Zimmer zu 
boosten, so wird es überall sonst wärmer - bis die Thermostate merken 
dass der Vorlauf heiss geworden ist. Es müssen also die Thermostate die 
VL Temp kennen, um antizipierend gegenzusteuern.

Die Zeit ein Zimmer ohne überschiessen warm zu bekommen ist deutlich 
durch die Abkühlung des Heizkörpers limitiert. Man muss schon deutlich 
vor Zieltemperatur gegensteuern, damit es nicht zu warm wird.

Das Problem will ich so angehen, dass ich bei Zieltemperatur das Ventil 
des nächsten zu erwärmenden Raums öffne, die Soll VL Temp unterstelle 
und so den VL aktiv abkühle. Also als erstes die Küche warm, dann 
währende gefrühstückt wird, die Bäder hochziehen, dann die Büros usw.

Für a) ist es essenziell Abweichungen der Raumdynamik sofort zu 
bemerken. Ich denke das geht gut indem man die Differenz zwischen 
Heizkörper- und Raumtemperatur mit der Ableitung der Raumtemperatur 
vergleicht. So wird man eine Kerze, mehrere Personen oder 
Sonneneinstrahlung sehr schnell bemerken und kann entsprechend 
gegensteuern BEVOR die Temperatur überschiesst - ggf mit aktiver 
Heizkörperabkühlung wie oben. Ich denke der HR20 arbeitet im Rahmen 
seiner Möglichkeiten schon so. Da muss man nur in den Raum kommen da 
dreht der schon zu.

Mal sehen alles so klappt wie ich denke. Wird jedenfalls sicher ein 
interessantes Projekt - wenn ich denn je die Therme zu steuern schaffe 
:).

von Joe Lucid (Gast)


Lesenswert?

Je besser das Modell des Systems, desto weniger muss getaktet werden. 
Wenn ich weiss, dass ich die Küche von 16 auf 20 Grad bekomme indem ich 
den Heizkörper einmal auf 70 Grad bringe und ihn dann abkühlen lasse 
während das Zimmer aufheizt, so kann die Therme eine Weile durchgehend 
laufen und dann abschalten. Der Tod ist niedrige VL Temp zur Erwärmung 
eines einzelnen Raums. Das kann nicht ohne Takten gehen.

Leider habe ich bisher nirgendwo echte Daten zur Ineffizienz des Takten 
gesehen. Es ist alles nur Spekulation. Wenn man die Daten hätte könnte 
man weiter optimieren - zb. die leeren Zimmer mit mehr Hysterese fahren 
und damit Taktzyklen auf Kosten höherer Durchschnittstemperaturen 
einsparen.

von Peter* (Gast)


Lesenswert?

Hallo,

nur kurz
>Kommandos

nun hatte ich erst vor kurzem nochmals erwähnt. Dave hatte unter der 
Adresse

https://docs.google.com/spreadsheets/d/1JzmhEbFY_GSk0Dl_e5pb2zmsy9EPlQU7bUpb9bXKxCM/edit?usp=sharing

die "bekannten ID's" zusammengefasst. Bitte selektieren, was Du senden 
(TA250...) kannst und was Du empfängst (BM1). In Dave's Programm ist 
ganz sicher auch eine ID Liste.

Die ID'S sind dem System entsprechend unterschiedlich (s.BM2)..

Der gebräuchliche ID Bereich des CAN Bus 11 bit (0x7FF)
ext. Bereich ID ist 29 bit mit jeweils 1-8 Byte max. Es existieren aber 
auch Transportprotokolle die wesentlich mehr Bytes haben "scheinbar"....

CAN Bus Grundwissen auffrischen.

..next

von Joe Lucid (Gast)


Lesenswert?

Peter* schrieb:

> die "bekannten ID's" zusammengefasst. Bitte selektieren, was Du senden
> (TA250...) kannst und was Du empfängst (BM1). In Dave's Programm ist
> ganz sicher auch eine ID Liste.
>
> Die ID'S sind dem System entsprechend unterschiedlich (s.BM2)..

Ja schon klar -- das hab ich mir alles angeschaut. Nur bin ich offenbar 
der erste, der ein System nur mit BM2 und Kaskadengerät 2 versucht zu 
steuern. Das BM2 sendet alles, was im Spreadsheet unter 0x200 ... 0x20f 
beschrieben ist, allerdings mit um 0x30 erhöhten Ids, also 0x230 ... 
0x23f. Es reagiert leider nicht auf die Kommandos 0x250 ... 0x25f und 
geht statt dessen innerhalb von wenigen Minuten auf Fehler A8.

Es liegt nahe, dass weitere Kaskadengeräte dann unter 0x260 ..., 0x290 
..., 0x2c0 ... senden. Jedes Gerät braucht ja seinen eigenen 
Kommandobereich damit es separat zugeschaltet werden kann - insofern 
passt 0x250 ... etwas schräg in den Id Bereich. Aber es mag auch sein 
dass 0x250 ... für die Führungstherme ist und andere Kaskadengeräte 
anders gemapped sind. Jedenfalls funktioniert der naheliegende Bereich 
0x280 ... leider nicht.

Da ich den Fehlercode der Therme über den Can Bus auslesen kann, könnte 
ich den gesamten Adressraum automatisch testen, falls die Therme nach 
Empfang eines gültigen Befehls wieder aus A8 herauskommt. Mir wäre also 
sehr geholfen, wenn mir jemand sagen könnte ob die Therme aus A8 wieder 
herauskommt (ohne Neustart) und was das minimale Kommando ist um A8 zu 
verhindern.

Wie gesagt kann ich leider nicht den gültigen Kommandobereich 
aufzeichnen, da ich über keine TAxxx verfüge.

von Joe Lucid (Gast)


Lesenswert?

BTW - es ist möglich dass ein TA270 oder TA300 die Kaskadeninstanz 2 mit 
Kommandos versorgt die A8 verhindern, selbst wenn Kaskadeninstanz 1 
fehlt. Wenn also jemand einen BM2 erfolgreich mit Aussenfühler und TA270 
oder TA300 betreibt, könnte man durch Ersetzen des AF mit 
Kodierwiderstand 2/2 auf dem Can Bus möglicherweise sofort sehen, was 
der richtige Bereich ist.

Kann aber auch sein, dass auch in diesem Fall A8 auf dem Kaskadengerät 2 
angezeigt wird - weswegen ich mir für den Test ungern eine TAxxx kaufen 
möchte.

von Dave G. (neuroquila-n8fall)


Lesenswert?

Ich lasse die Heizung schon anspringen weil es immer einen Heizkörper 
gibt, der 100% geöffnet ist und das ist der in der Diele im EG. Da ist 
es bitterkalt aber das ist auch kein Wohnraum. Über diesen Heizkörper 
lasse ich überschüssige Energie abfließen, damit mir keine Eisbahn 
entsteht.
Diese halbe Stunde "vorglühen" sorgt auch dafür, dass es weniger 
Geräusche im Haus gibt. Die Vorbesitzer haben einfach die Rohre durch 
die Wand gequetscht. Das klackert und Tackert recht hübsch, wenn man 
morgens gleich auf Zieltemperatur heizt. Auf die Diskussionen mit meiner 
besseren Hälfte hatte ich dann einfach keine Lust mehr, warum wochenends 
man von der Heizung geweckt wird.

Mit Blick in die Zukunft:
Wenn das alles so klappt wie ich mir das vorgestellt habe, landet 
ohnehin umgehend Solar + PV auf dem Dach und dazu dann später eine 
Pumpe. Ich überlege sogar noch mehr Geld dann später in die Hand zu 
nehmen und auf Erdwärme zu gehen. Eine gut dimensionierte und effiziente 
Wärmepumpe kann nunmal bei arktischen Temperaturen nichts mehr 
ausrichten und kostet nicht deutlich weniger als eine Erdbohrung + 
Pumpentechnik etc. Ich habe mir sagen lassen, dass die gängigsten 
WP-Modelle bereits bei -10°C zu kämpfen haben. Finde ich nicht so toll.

Zum Thema raumgeführte Steuerung:
Das geht wirklich nur effizient mit Elektroheizkörpern oder Infrarot. 
Wasser ist zu träge dafür.

Zum Thema BM2, Kaskade, etc.:
Fakt ist wir brauchen hier eine TAxxx am Can-Bus. Ohne kriegen wir kein 
reverse engineering zustande. Das heißt dann wohl auch Umbaumaßnahmen 
bzw. Umrüstung an der Therme selbst.
Alternativ: In den sauren Apfel beißen und BM1 (das "echte") anschaffen, 
zusammen mit Ta270 oder so als Backup.

Das kostet Geld, was einem natürlich die, wie man es so schön nennt, 
"ROI" verhageln kann. Man gibt 100€ und mehr für Umrüstung aus und am 
Ende spart man nichts ein weil die Heizung bereits optimal eingestellt 
wurde. Das kann auch passieren! Habe jetzt zum Beispiel eine Nachzahlung 
von über 300€ anstehen, weil das Mainboard kaputt war und die Therme 90% 
der Zeit auf volle Pulle lief. Da half meine tolle Steuerung auch 
nichts... Shit in, Shit out!

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Zum Thema BM2, Kaskade, etc.:
> Fakt ist wir brauchen hier eine TAxxx am Can-Bus. Ohne kriegen wir kein
> reverse engineering zustande. Das heißt dann wohl auch Umbaumaßnahmen
> bzw. Umrüstung an der Therme selbst.
> Alternativ: In den sauren Apfel beißen und BM1 (das "echte") anschaffen,
> zusammen mit Ta270 oder so als Backup.

Am Ende mag das das Ergebnis sein - aber nicht zwangsläufig. Angesichts 
der Tatsache dass die Statusmeldungen meiner Therme 1:1 mit denen mit 
einer BM1 übereinstimmen (bis auf die Verschiebung von 0x30) halte ich 
es für nicht unwahrscheinlich (auch im Sinne der Annahme einer möglichst 
einfachen Implementierung der Firmware im BM2) dass die Kommandos 
ebenfalls bis auf eine Verschiebung übereinstimmen.

Durchaus denkbar dass das automatische Abscannen funktioniert - wenn 
denn der A8 Code reversibel ist. Das muss doch einem von Euch schon 
aufgefallen sein, ob A8 einen Neustart der Therme erfordert oder einfach 
nach Senden von gültigen Kommandos wieder verschwindet, oder? Und welche 
Kommandos A8 unterdrücken.

In einem vorherigen Beitrag sagte jemand ein beliebiges Kommando mit 
gültiger ID ohne payload würde A8 verhindern. In dem Fall wäre das 
Scannen trivial und schnell von mir zu implementieren.

von Joe Lucid (Gast)


Lesenswert?

Um es kurz zu skizzieren - sagen wir eine gültige ID ohne payload ist 
genug um die Therme aus A8 rauszuholen. Dann würde ich einfach von 0x0 
bis 0x7ff0 in 0x10 Abständen ein Paket ohne payload senden und jeweils 
warten welchen Errorcode die Therme zurück liefert. Das sind ganz 128 
Versuche. Die Therme liefert nämlich selbst im A8 Zustand den Fehlercode 
auf 0x236.

Ich könnte es auch einfach so versuchen - aber bei den Temperaturen 
kommen schnell Beschwerden von den Mitbewohnern :). Und ich kann mir 
nicht sicher sein ob die Can Bus Kommunikation zu dem BM2 überhaupt 
funktioniert.

Wenn Ihr mal in Eurem Erfahrungsschatz sucht komme ich wahrscheinlich 
schneller zum Ziel. Meine Mitbewohner würden es Euch danken!

von Joe Lucid (Gast)


Lesenswert?

Joe Lucid schrieb:
> Meine Mitbewohner würden es Euch danken!

Und ich!

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Zum Thema raumgeführte Steuerung:
> Das geht wirklich nur effizient mit Elektroheizkörpern oder Infrarot.
> Wasser ist zu träge dafür.

Ich habe ganz gute Erfahrungen mit PC Lüftern als Verstärker der 
Heizleistung traditioneller Heizkörper gemacht. Da kommt jede Menge mehr 
raus als bei natürlicher Konvektion.

Mit 88 Grad Vorlauf könnte man denke ich eine deutlich schnellere 
Erwärmung erreichen - mit oder ohne Lüfter. Und meine Therme ist 
deutlich überdimensioniert so dass die Erwärmung der Heizkörper sehr 
schnell erfolgen kann. In den Büros sind ausserdem die Schreibtische 
direkt an der Heizung - d.h. der Komfort steigt schneller als die 
Zimmertemperatur über Strahlungswärme (ähnlich wie Infrarot).

Das echte Trägheitsproblem ist ein mögliches Überschiessen der 
Zieltemperatur. Aber da bin ich optimistisch das mit feed forward 
Regelung und ggf aktiver Kühlung des Heizkörpers durch Mischen mit 
Wasser aus kalten Zimmern in den Griff zu bekommen.

Natürlich will man den Vorlauf nicht immer auf 88 Grad fahren, um die 
Effizienz passabel zu halten. Deswegen der Wunsch nach einer 
integrierten Steuerung der Therme und Ventile.

Am Ende wird man eine deutliche Verbesserung erreichen. Natürlich in 
Grenzen, die dann die praktisch nutzbare Absenktemperatur bei 
Nichtnutzung nach unten beschränken. Je nach Heizkörperausstattung und 
Voraussagbarkeit der Nutzung wird man die Absenktemperatur für jeden 
Raum individuell festlegen müssen - auch tageszeitabhängig.

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Das kostet Geld, was einem natürlich die, wie man es so schön nennt,
> "ROI" verhageln kann. Man gibt 100€ und mehr für Umrüstung aus und am
> Ende spart man nichts ein weil die Heizung bereits optimal eingestellt
> wurde. Das kann auch passieren! Habe jetzt zum Beispiel eine Nachzahlung
> von über 300€ anstehen, weil das Mainboard kaputt war und die Therme 90%
> der Zeit auf volle Pulle lief. Da half meine tolle Steuerung auch
> nichts... Shit in, Shit out!

Na komm - das echte ROI ist der Spass an der Sache! Aber beim BM1 ist's 
wirklich vorbei mit dem Spass. Das Ding kostet gerne ca. 300 Euro zur 
Zeit. Versuche ständig ein günstiges Exemplar zu ergattern.

von Peter* (Gast)


Lesenswert?

Hallo Dave,

> Ich lasse die Heizung schon anspringen...
Einen kalten Raum besitze ich auch und gleiches Problem. Meine 
Heizkörpereinstellung ist da momentan die einfache Funktion 15,5°C ohne 
Programm. Auch hier steigt der Ventilstatus in der Nacht, aber keine 90% 
mehr.

Erdwärme hatte ich mal ein Angebot, als ich ein Musterhaus besichtigt 
hatte.
"Ein Angebot, das Sie nicht ausschlagen können 20000Euro...."ist auch 
fast 20 Jahre her. einfach zu teuer.

@Joe

Wenn Du die Information hast, das dein BM2 zum BM1 werden kann, wo bitte 
ist das Problem noch? Kleinanzeigen Ebay TA270 ~~45 bis 80Euro.

Du schreibst Du hast keine Kommunikation (A8), dann musst Du auch eine 
Kommunikation aufbauen. Das geht nicht ohne, die BM1 und TA250... 
Junkers Bosch geben ganz sicher keine Infos darüber heraus und erst 
Recht nicht was sich der Softwerker sich so gedacht hat.

Das nur ein herumstochern, ein Restbus zu entwickeln ohne zu wissen was 
gesendet werden soll!!!??

Währe schön wenn Du ein paar Bilder des BM2 senden könntest. danke

von Joe Lucid (Gast)


Angehängte Dateien:

Lesenswert?

Peter* schrieb:

> @Joe
>
> Wenn Du die Information hast, das dein BM2 zum BM1 werden kann, wo bitte
> ist das Problem noch? Kleinanzeigen Ebay TA270 ~~45 bis 80Euro.

Meiner kann es eben nicht - aber wenn Du die vorherigen Beiträge 
durchliest dann funktioniert es bei manchen indem einfach statt 
Kodierungswiderstand der Aussenfühler angehängt wird. Meine Therme 
startet dann nicht mit Fehler CC. Es gibt offenbar unterschiedliche 
Versionen.

> Du schreibst Du hast keine Kommunikation (A8), dann musst Du auch eine
> Kommunikation aufbauen. Das geht nicht ohne, die BM1 und TA250...
> Junkers Bosch geben ganz sicher keine Infos darüber heraus und erst
> Recht nicht was sich der Softwerker sich so gedacht hat.

Man kann den Regler (TAxxx) mit Dave's Software und einem esp32 
ersetzen. Das ist es, was ich machen möchte. Ich brauche nur den 
passenden ID Bereich.

> Das nur ein herumstochern, ein Restbus zu entwickeln ohne zu wissen was
> gesendet werden soll!!!??

Meine Hypothese ist, dass die Kommandos die gleichen sind wie bei dem 
BM1 - nur an einen anderen ID Bereich gemapped. Wenn das richtig ist, 
muss ich den nur finden und das wäre einfach wenn der Fehlercode A8 
reversibel ist.

> Währe schön wenn Du ein paar Bilder des BM2 senden könntest. danke

Siehe Anhänge

von Jörg R. (rejoe2)


Lesenswert?

Jedenfalls meine Therme kommt wieder aus "A8", wenn man "irgendwas" 
dranhängt, das (irgend?) eine gültige Info sendet, ich würde das 
vorrangig mit der Raumtemperatur versuchen.

Das "nicht funktionierende" BM2 scheint ein "altes" zu sein (mit kleiner 
Bestückung), und ich würde annehmen, dass ein "2." in einer Kaskade 
eigentlich schon "glücklich" ist, wenn es eine Außentemperatur sieht. 
Die kommt nach meinem Verständnis ausschließlich von einem BM1.
Es kann aber auch sein, dass die "Position" BM1 auch die eines Art 
"Busmaster" ist, der die Adressabfrage eintaktet, das müßte man dann in 
die firmware integrieren, aber dazu müßte man wissen, wie die 
betreffende Logik ist (also falls jemand das in einer echten Kaskade 
hat...?).

@Dave: Ich würde gerne dein überzähliges Interface nehmen und stelle 
gerne auch willigen Testern mein(e) überzählige(n) zur Verfügung, sobald 
ich selbst wieder aktiv an dem Thema dran bin und ggf. auch weiß, wie 
man die effektiv nutzen kann (das Spannungsproblem...). Meine derzeitige 
Prio liegt derzeit allerdings noch woanders, das wird vermutlich erst in 
ein paar Wochen weitergehen.

Würde auch den "Notfallmaintainer" für die Firmware machen, falls sich 
niemand findet mit besseren C/C++-Skills (ich bin eigentlich DAU...).

: Bearbeitet durch User
von Jörg R. (rejoe2)


Lesenswert?

Joe Lucid schrieb:
> Meiner kann es eben nicht - aber wenn Du die vorherigen Beiträge
> durchliest dann funktioniert es bei manchen indem einfach statt
> Kodierungswiderstand der Aussenfühler angehängt wird. Meine Therme
> startet dann nicht mit Fehler CC. Es gibt offenbar unterschiedliche
> Versionen.
Gibt es, siehe auch meine Bilder weiter oben. Du hast das alte mit der 
"kleinen" Bestückung.
Das kann offenbar die Außentemperatur nicht selbst ermitteln, von daher 
würde ich diese vom ESP her auf den Bus schieben, und zwar unter der 
Adresse, die in Dave's Spreadsheet zu finden ist (keine Verschiebung).

> Meine Hypothese ist, dass die Kommandos die gleichen sind wie bei dem
> BM1 - nur an einen anderen ID Bereich gemapped. Wenn das richtig ist,
> muss ich den nur finden und das wäre einfach wenn der Fehlercode A8
> reversibel ist.
Könnte sein, dass das mit dem Mapping hinhaut. Wie geschrieben: Bei 
meiner Therme reicht es, wenn irgendeine gültige Info kommt, und das war 
auch das, was Dave immer berichtet hatte (da war es lange die Uhrzeit?).

Nach dem was du schilderst, klingt es aber danach, als wäre der ESP 
nicht in der Lage, was auf den Bus zu schreiben. Kannst du mal die 
Spannungspegel ausmessen? Und/oder auch die Widerstandswerte (evtl. ist 
auf dem alten BM1 noch ein Abschlusswiderstand?).

von Joe Lucid (Gast)


Lesenswert?

Jörg R. schrieb:
> Jedenfalls meine Therme kommt wieder aus "A8", wenn man "irgendwas"
> dranhängt, das (irgend?) eine gültige Info sendet, ich würde das
> vorrangig mit der Raumtemperatur versuchen.

Super! Vielen Danke! Das hilft doch schon mal weiter.

Jörg R. schrieb:
> Das "nicht funktionierende" BM2 scheint ein "altes" zu sein (mit kleiner
> Bestückung), und ich würde annehmen, dass ein "2." in einer Kaskade
> eigentlich schon "glücklich" ist, wenn es eine Außentemperatur sieht.
> Die kommt nach meinem Verständnis ausschließlich von einem BM1.

Das ist keine schlechte Idee. Ich bin aber etwas skeptisch weil die BM? 
ja nicht regeln sondern nur die Kommandos der TA??? umsetzen. Also 
brauchen die gar keine Aussentemperatur.

> Es kann aber auch sein, dass die "Position" BM1 auch die eines Art
> "Busmaster" ist, der die Adressabfrage eintaktet, das müßte man dann in
> die firmware integrieren, aber dazu müßte man wissen, wie die
> betreffende Logik ist (also falls jemand das in einer echten Kaskade
> hat...?).

Wenn jemand eine Kaskade hätte wäre das natürlich perfekt. Ich denke der 
TA??? würde eher den Busmaster spielen. Falls das überhaupt notwendig 
ist. Der Can Bus ist ja so konzipiert dass Kollisionen erkannt werden 
können. Jedenfalls schickt mein BM2 brav alle Statuspakete ohne 
aufgefordert zu werden.

Man kann wohl mit hoher Wahrscheinlichkeit vermuten dass die 
Kommando-IDs der Geräte 2-5 auf andere IDs als 0x250 - 0x25f gemapped 
sind, damit der Regler sie einzeln kontrollieren kann.

Vielleicht noch an Dave: unterbindet beim BM1 nur 0xf9 den Fehler A8 
oder reichen Pakete an andere gültige Adressen?

von Joe Lucid (Gast)


Lesenswert?

Jörg R. schrieb:

> Gibt es, siehe auch meine Bilder weiter oben. Du hast das alte mit der
> "kleinen" Bestückung.
> Das kann offenbar die Außentemperatur nicht selbst ermitteln, von daher
> würde ich diese vom ESP her auf den Bus schieben, und zwar unter der
> Adresse, die in Dave's Spreadsheet zu finden ist (keine Verschiebung).

Funktioniert der BM2 mit grossem Chip immer? Die gibt es einigermassen 
günstig - das wäre noch eine Alternative.

>
>> Meine Hypothese ist, dass die Kommandos die gleichen sind wie bei dem
>> BM1 - nur an einen anderen ID Bereich gemapped. Wenn das richtig ist,
>> muss ich den nur finden und das wäre einfach wenn der Fehlercode A8
>> reversibel ist.
> Könnte sein, dass das mit dem Mapping hinhaut. Wie geschrieben: Bei
> meiner Therme reicht es, wenn irgendeine gültige Info kommt, und das war
> auch das, was Dave immer berichtet hatte (da war es lange die Uhrzeit?).

Sehr cool. Dann mach ichs mit der Uhrzeit!

> Nach dem was du schilderst, klingt es aber danach, als wäre der ESP
> nicht in der Lage, was auf den Bus zu schreiben. Kannst du mal die
> Spannungspegel ausmessen? Und/oder auch die Widerstandswerte (evtl. ist
> auf dem alten BM1 noch ein Abschlusswiderstand?).

Die Pegel sehen ok aus und die Therme sendet auch das Ack bit wenn ich 
was schicke. Aber gerade durchgemessen: keine Seite terminiert den Bus. 
Das könnte also in der Tat Teil des Problems sein. Das teste ich beim 
nächsten Versuch durch.

Wie ist die Terminierung bei BM1/TA??? aus? 120 Ohm auf beiden Seiten?

von Jörg R. (rejoe2)


Lesenswert?

Joe Lucid schrieb:
> Das ist keine schlechte Idee. Ich bin aber etwas skeptisch weil die BM?
> ja nicht regeln sondern nur die Kommandos der TA??? umsetzen. Also
> brauchen die gar keine Aussentemperatur.
Der BMx braucht die Außentemperatur auch nicht, aber die Therme. Hatten 
wir hier weiter oben schon nette Diskussionen darüber, wie man "TA" und 
Therme jeweils "einordnen" soll. Fakt ist afaik: Die Therme läuft los, 
sobald sie eine Außentemperatur hat. Ganz egal, ob die vom "211" kommt 
oder vom physischen Außenfühler via BM1 "alt" oder BM2 "neu". Von daher 
wäre es nur logisch, dass die "alten" BM2 halt über den Bus diese 
essentielle Info beziehen, und "gut ist".

> Wenn jemand eine Kaskade hätte wäre das natürlich perfekt. Ich denke der
> TA??? würde eher den Busmaster spielen. Falls das überhaupt notwendig
> ist. Der Can Bus ist ja so konzipiert dass Kollisionen erkannt werden
> können. Jedenfalls schickt mein BM2 brav alle Statuspakete ohne
> aufgefordert zu werden.
Na ja, die Umsetzung des Bus-Konzepts in diesen Thermen ist jedenfalls 
einigermaßen "speziell", von daher erlebt man immer wieder 
Überraschungen...

Und die Thermen nehmen die übermittelten Vorgaben nicht sklavisch an, 
sondern verarbeiten die. Kommt was "zu komisches" raus, geht die Therme 
in eine Art "Notbetrieb" und regelt autonom.

> Man kann wohl mit hoher Wahrscheinlichkeit vermuten dass die
> Kommando-IDs der Geräte 2-5 auf andere IDs als 0x250 - 0x25f gemapped
> sind, damit der Regler sie einzeln kontrollieren kann.
Jeder Teilnehmer ein eigener Adressbereich (bzw. eine eigene 
"Normalverschiebung" klingt für mich logisch. Wir hatten eine Lücke 
zwischen 0x25x und 0x300. Würde also für einen 2. TN dann mal auf 0x26x 
tippen.

> Vielleicht noch an Dave: unterbindet beim BM1 nur 0xf9 den Fehler A8
> oder reichen Pakete an andere gültige Adressen?
Aus den Diskussionen mit ihm hatte ich im Hinterkopf mitgenommen, dass 
einfach überhaupt nur eine passende Adresse kommen muss, auch leere 
Payloads reichen aus, um die Therme aus dem Fehlerzustand zu holen.

von Jörg R. (rejoe2)


Lesenswert?

Joe Lucid schrieb:
> Funktioniert der BM2 mit grossem Chip immer? Die gibt es einigermassen
> günstig - das wäre noch eine Alternative.
Das kann ich nicht sagen, weil meiner nach den ersten Tests dann nicht 
mehr mit dem ESP kommunizieren wollte (da ist die Versorgungsspannung 
plötzlich auf ca. 30V hoch).
Mit der TA250 funktioniert der BM2 aber problemlos (in der Funktion als 
BM1).

> Sehr cool. Dann mach ichs mit der Uhrzeit!
Nimm' aus den genannten Gründen die Außentemperatur. Damit sollte auch 
die Therme ordnungegemäß laufen, wenn dieser Wert immer ok ist!

> Die Pegel sehen ok aus und die Therme sendet auch das Ack bit wenn ich
> was schicke. Aber gerade durchgemessen: keine Seite terminiert den Bus.
> Das könnte also in der Tat Teil des Problems sein. Das teste ich beim
> nächsten Versuch durch.
>
> Wie ist die Terminierung bei BM1/TA??? aus? 120 Ohm auf beiden Seiten?
Jedenfalls ich war nicht in der Lage, da sinnvoll was zu messen. Die 
Widerstandswerte schwanken zwischen spannungslos und in Betrieb 
gemessen... Wenn du das Ack siehst, dürfte alles ok sein.
Wir sehen mehr, wenn du erst mal was passendes auf dem Bus geschrieben 
hast.

von gradius-v (Gast)


Lesenswert?

Ich habe an meinem BM1

Joe Lucid schrieb:
> Meiner kann es eben nicht - aber wenn Du die vorherigen Beiträge
> durchliest dann funktioniert es bei manchen indem einfach statt
> Kodierungswiderstand der Aussenfühler angehängt wird. Meine Therme
> startet dann nicht mit Fehler CC. Es gibt offenbar unterschiedliche
> Versionen.

Ich betreibe mein BM1 ohne Außenfühler mit diesem branch von Daves 
Firmware: 
https://github.com/Neuroquila-n8fall/JunkersControl/tree/feature-outside-temp
Der Fehler CC läßt sich bei mir folgendermaßen unterdrücken:
In main.cpp hier msg.data[0] = 1 in msg.data[0] = 0 ändern.
1
      // Temperature regulation mode
2
      //  1 = Weather guided | 0 = Room Temperature Guided
3
      case 1:
4
        msg = PrepareMessage(configuration.CanAddresses.Heating.Mode, 1);
5
        msg.data[0] = 0;
6
        break;

Vielleicht hilft das auch in deiner Konstellation.

von Jörg R. (rejoe2)


Lesenswert?

gradius-v schrieb:
> Vielleicht hilft das auch in deiner Konstellation.

Coole Idee! Damit sollte sich rausfinden lassen, unter welcher Adresse 
der 2. TN diese Angabe erwartet, oder habe ich das Prinzip 
missverstanden?

von Joe Lucid (Gast)


Lesenswert?

Jörg R. schrieb:
> Der BMx braucht die Außentemperatur auch nicht, aber die Therme. Hatten
> wir hier weiter oben schon nette Diskussionen darüber, wie man "TA" und
> Therme jeweils "einordnen" soll. Fakt ist afaik: Die Therme läuft los,
> sobald sie eine Außentemperatur hat. Ganz egal, ob die vom "211" kommt
> oder vom physischen Außenfühler via BM1 "alt" oder BM2 "neu". Von daher
> wäre es nur logisch, dass die "alten" BM2 halt über den Bus diese
> essentielle Info beziehen, und "gut ist".

Ah ok - danke.

> Jeder Teilnehmer ein eigener Adressbereich (bzw. eine eigene
> "Normalverschiebung" klingt für mich logisch. Wir hatten eine Lücke
> zwischen 0x25x und 0x300. Würde also für einen 2. TN dann mal auf 0x26x
> tippen.

Ich werde die Therme beim nächsten Mal auf Gerät 3 kodieren. Mal sehen 
wo sie dann sendet. Man würde erwarten 0x260 - mal sehen.

> Aus den Diskussionen mit ihm hatte ich im Hinterkopf mitgenommen, dass
> einfach überhaupt nur eine passende Adresse kommen muss, auch leere
> Payloads reichen aus, um die Therme aus dem Fehlerzustand zu holen.

Ja so erinnere ich es auch.

von Joe Lucid (Gast)


Lesenswert?

gradius-v schrieb:
> Vielleicht hilft das auch in deiner Konstellation.

Hervorragende Idee! Vor allem weil es im Adressbereich der 
Regler->Therme Kommandos liegt (im Gegensatz zu Aussentemperatur). Damit 
werde ich es probieren.

von Joe Lucid (Gast)


Lesenswert?

gradius-v schrieb:
> Der Fehler CC läßt sich bei mir folgendermaßen unterdrücken

Meinst Du A8 oder wirklich CC? Das ist ja sonst noch ein ganz neuer 
Ansatz: BM2 ohne Kodierwiderstand und damit CC unterbinden. Vielleicht 
präsentiert sie sich dann ganz normal an 0x20x.

von Peter* (Gast)


Lesenswert?

Hallo,

Joe Lucid schrieb:
> Es reagiert leider nicht auf die Kommandos 0x250 ... 0x25f und
> geht statt dessen innerhalb von wenigen Minuten auf Fehler A8

das darf er auch nicht!!, weil er nicht BM1/TA270 ist, durch die 
Codierung hat er seine Aufgabe bekommen und die heißt, mit timeout der 
Masterheizung "bei bedarf" zu folgen (VLT).

A8 keine Kommunikation zum Bediengerät.

BM1/Ta270 muss ersetzt werden und was Heizung 2 mitgeteilt bekommt oder 
wie er es weiter sendet steht erstmal in den Sternen, weil du kein 
fehlerfreies System hast. Kann.. muss nicht...

BM2 muss die Id Gruppe (Soll) 0x25x ignorieren.

!! Ich würde vorsichtig sein.. mit Abschlusswiderständen 120Ohm die 
werden nicht einmal erwähnt. Überlastung Zerstörung !!

von Dave G. (neuroquila-n8fall)


Lesenswert?

Sobald die Therme ein Paket vom TA-Bereich sieht, springt sie 
eigenständig aus A8 wieder raus.

Man sieht schon vorher ob Kommunikation funktioniert, wenn der 
Außentemperaturfühler angeschlossen ist und die Temperatur im 
Infodisplay angezeigt wird. Verschwindet die Temperatur nun, ist die 
Kommunikation hinüber, kurz darauf kommt A8. Ich empfehle so oder so 
diesen Fühler anzubringen, falls noch nicht vorhanden. Dadurch hat man 
die Option auf einen guten Notbetrieb, wenn der ESP mal kaputt geht und 
grad keine Lösung bereit liegt. Ohne Fühler läuft das Gerät einfach 
ineffizient.

Sobald die Kommunikation wieder steht, taucht die Außentemperatur wieder 
auf und es bleibt nur der Eintrag im Fehlerspeicher übrig.

Ich habe sehr viele schlechte Erfahrungen gemacht mit diesem Thema. Am 
Ende vom Tag, und entschuldigt wenn ich das Gebetsmühlenartig 
wiederhole, kann auch wenn alles perfekt aussieht einfach das Mainboard 
von der Therme kaputt sein. Ich habe hier so viele Konstrukte 
ausprobiert die alle den A8 geschmissen haben zuletzt, dass ich bald 
wahnsinnig geworden bin.

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Man sieht schon vorher ob Kommunikation funktioniert, wenn der
> Außentemperaturfühler angeschlossen ist und die Temperatur im
> Infodisplay angezeigt wird.

Meine ZWR - 18/5 hat gar kein Infodisplay. Du meinst an der Therme, 
richtig? Denn für diese Tests ist der TA??? ja gar nicht verbunden.

Dave G. schrieb:
> Sobald die Therme ein Paket vom TA-Bereich sieht, springt sie
> eigenständig aus A8 wieder raus.

Dave G. schrieb:
> Ich habe hier so viele Konstrukte
> ausprobiert die alle den A8 geschmissen haben zuletzt, dass ich bald
> wahnsinnig geworden bin.

Wie passen diese beiden Sätze zusammen? Wenn jedes Paket vom TA-Bereich 
A8 verhindert, warum bist Du dann immer wieder dort gelandet?

von Dave G. (neuroquila-n8fall)


Lesenswert?

Wenn man Nachrichten schickt aber die Therme trotzdem auf A8 springt und 
das CAN Modul nachweislich in Senderichtung funktioniert, dann muss das 
nicht heißen, dass man etwas falsches schickt. Es kann auch bedeuten, 
dass das Mainboard der Therme oder das Busmodul einen Schaden hat.

Die Raumregler kommen mit solchen Diskrepanzen wunderbar klar.

von Joe Lucid (Gast)


Lesenswert?

Peter* schrieb:
> BM1/Ta270 muss ersetzt werden und was Heizung 2 mitgeteilt bekommt oder
> wie er es weiter sendet steht erstmal in den Sternen, weil du kein
> fehlerfreies System hast. Kann.. muss nicht...

Ich denke es ist wahrscheinlich dass die TA??? die Steuerung im 
wesentlichen übernimmt. Du siehst es daran dass die TA270 3 Geräte und 
eine feste Führungstherme unterstützt, während der TA300 5 Geräte regelt 
und die Führungstherme konfigurierbar ist.

Kann natürlich sein dass das Folgen der untergeordneten Geräte fest im 
bm? kodiert ist und die einzelnen Thermen nicht separat gesteuert 
werden. Dann würde die Steuerung nur die Rollen zuweisen.

So hätte ich das allerdings nicht gelöst, um Flexibilität für zukünftige 
Steuerungen zu erhalten.

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Wenn man Nachrichten schickt aber die Therme trotzdem auf A8
> springt und
> das CAN Modul nachweislich in Senderichtung funktioniert, dann muss das
> nicht heißen, dass man etwas falsches schickt. Es kann auch bedeuten,
> dass das Mainboard der Therme oder das Busmodul einen Schaden hat.
>
> Die Raumregler kommen mit solchen Diskrepanzen wunderbar klar.

Ein Alptraum - vor allem wenn die Raumregler damit klarkommen. Da muss 
ja doch noch irgendetwas instabil sein in unserem Ansatz.

von gradius-v (Gast)


Lesenswert?

Joe Lucid schrieb:
> Meinst Du A8 oder wirklich CC? Das ist ja sonst noch ein ganz neuer
> Ansatz: BM2 ohne Kodierwiderstand und damit CC unterbinden. Vielleicht
> präsentiert sie sich dann ganz normal an 0x20x.

Wirklich CC. Und die Message 0x258 = 0 unterdrückt den Fehler.
Ich habe auch einen TA300, der sendet 0x258 = 1 und die Therme geht ohne 
Außenfühler am BM1 sofort auf CC. Man kann am TA300 auch einen 
Raumfühler anschließen, ich schätze dann würde er auch 0x258 = 0 senden 
(nicht getstet!).

von Peter* (Gast)


Lesenswert?

Hallo,

Joe Lucid schrieb:
> Ich denke es ist wahrscheinlich dass die TA??? die Steuerung

Es ist schon so wie ich geschrieben (BM1/TA...)habe und vielleicht noch 
wesentlich komplexer. TA270<... ist nur ein "Bedienteil" (Soll) aber 
(Ist) ist BM1 bzw. evtl. Regelungsparameter der Thermen mit BM2.

Die normale Heizung mit BM2 ist ausgeblendet, sie wird geführt.

Ich verstehe nicht, das Du in deiner geschilderten Situation (Mieter mit 
Bewohner.) dich auf eine solche Erkundung wagst.

Schon mal überlegt, statt ein Außenfühler einen Widerstand anzuschließen 
evtl. ist das Hardwareproblem (Erkennung AF) gelöst und dann per SW 
selektieren. Der AF muss doch vorhanden sein (TA211E oder?).... aber 
nicht einen HW Fehler ignorieren.

...oder einfach überlegen... eine BM1/Ta270 zuzulegen. Man kann BM2 noch 
verkaufen noch.

Habe mir erst im Sommer eine alte Heizung ZBS22 gekauft für 150Euro bis 
vor die Tür kam der freundliche Mann.

verstehe ich nicht, Euer drumherum reden.

von Joe Lucid (Gast)


Lesenswert?

So - neue Erkenntnisse:

- Bm2 ohne Kodierwiderstand und mit 0x238 = 0 oder 0x208 = 0 bringt die 
Therme nicht aus dem CC Error raus.


- Mit Kodierwiderstand hab ich mir die logs nochmal im Detail angesehen 
und festgestellt dass ein zusätzliches byte für jedes update von der 
Therme gesendet wird - nämlich die Instanz die man mit dem Widerstand 
eingestellt hat.

Das ist natürlich sinnvoll - so passt alles auf einen Satz IDs.

Leider gelingt es mir nach wie vor nicht auch nur ein einzelnes Paket 
erfolgreich an die Therme zu schicken. Ich bekomme Acks aber komme die 
aus A8 raus. So kann das Problem immernoch auf der Id Seite oder der 
hardware Seite liegen.

von Joe Lucid (Gast)


Lesenswert?

Peter* schrieb:
> Hallo,
>
> Joe Lucid schrieb:
>> Ich denke es ist wahrscheinlich dass die TA??? die Steuerung
>
> Es ist schon so wie ich geschrieben (BM1/TA...)habe und vielleicht noch
> wesentlich komplexer. TA270<... ist nur ein "Bedienteil" (Soll) aber
> (Ist) ist BM1 bzw. evtl. Regelungsparameter der Thermen mit BM2.

Ich glaub wir haben da keinen Konflikt. Der TA??? regelt die 
Solltemperatur, und der BM? zusammen mit der Therme implementiert das, 
was natürlich auch eine Regelleistung ist.

TA??? implementiert selber Heizkurve, Timer, Raumgeführte Steuerung usw 
usf.

> Die normale Heizung mit BM2 ist ausgeblendet, sie wird geführt.

Der TA300 kann jede Maschine in der Kaskade zur Führungstherme machen. 
Ist halt die Frage wie das implementiert ist. Gibt es einen Befehl zur 
Zuordnung der Führungsrolle - oder schaltet der TA??? einfach manuell 
eine Therme primär an und dann wenn der Vorlauf 3K unter soll hinkt eine 
weitere?

Hast Du da spezifische Einsichten?

>
> Ich verstehe nicht, das Du in deiner geschilderten Situation (Mieter mit
> Bewohner.) dich auf eine solche Erkundung wagst.

Naja die Mitbewohner sind meine Familie. Und ich bin nicht besonders 
ängstlich.

>
> Schon mal überlegt, statt ein Außenfühler einen Widerstand anzuschließen
> evtl. ist das Hardwareproblem (Erkennung AF) gelöst und dann per SW
> selektieren. Der AF muss doch vorhanden sein (TA211E oder?).... aber
> nicht einen HW Fehler ignorieren.

Ja das mach ich doch die ganze Zeit so weil der Aussenfühler sofort zu 
CC führt.

von Joe Lucid (Gast)


Lesenswert?

Wäre natürlich wirklich möglich, dass die geführten Geräte auf Vorlauf 
Soll und Ist des Masters schauen und selbständig einspringen. Aber das 
erscheint mir unflexibel und beschränkt und deswegen die weniger 
wahrscheinliche Implementierung.

von Peter* (Gast)


Lesenswert?

Hallo,

es gäbe unter den vielen Möglichkeiten (Spielereien) der Sonderfunktion 
"Kaskade" auch evtl. die Möglichkeit die Masterheizung nur als 
Sollformation TA... zu nutzen und die Heizung x nur in der SW 
umzuschalten und seine Werte selbst zu berechnen. Deshalb vielleicht 
erst BM2. ("nur entgegengesetzte Spinnereien")

Zur Info: TA270 ... wird auch so mit BM10 und BM20 benutzt unter HT3.

Hast Du denn schon mal die erst Heizung BM1/TAxxx simuliert(ESP/Can) 
(mit AF Id) in dem Du alle IDs auf den Bus legst zeitlich korrekt.

von gradius-v (Gast)


Lesenswert?

Joe Lucid schrieb:
> - Bm2 ohne Kodierwiderstand und mit 0x238 = 0 oder 0x208 = 0 bringt die
> Therme nicht aus dem CC Error raus.

Und mit 0x258 = 0 ?

von Joe Lucid (Gast)


Angehängte Dateien:

Lesenswert?

gradius-v schrieb:
> Joe Lucid schrieb:
>> - Bm2 ohne Kodierwiderstand und mit 0x238 = 0 oder 0x208 = 0 bringt die
>> Therme nicht aus dem CC Error raus.
>
> Und mit 0x258 = 0 ?

Geht auch nicht. Das hab ich als erstes probiert, weil es schon in 
Dave's Code drin ist und ich nur den Parameter auf 1 setzen musste.

Habe inzwischen noch eine weitere Theorie: seht Euch mal den Anhang an. 
Alle Kaskaden benötigen einen HSM um die gemeinsame Vorlauftemperatur zu 
bestimmen.

Ich könnte mir gut vorstellen, dass Therme 1 anhand des Vorhandenseins 
der vom HSM gemeldeten VL Temp selber auf Kaskadengerät umschaltet (dh 
dann auch auf 0x23? meldet mit erstem payload byte 1). Und dass dann die 
einzelnen Thermen auf 0x28? (0x25? + 0x30, gleicher Offset wie 23? ggü 
20?) wieder mit führendem payload byte als Kaskadenadresse 
konfigurierbar sind.

Das wäre ein flexibler Ansatz. Es würde dem TA300 ermöglichen, das 
Führungsgerät einfach dadurch zu wählen, dass es als erstes aktiviert 
wird. Und er könnte so auch die zugeschalteten Thermen zufällig 
auswählen um Abnutzung zu verteilen (wie das die TA300 kann).

Fragt sich nur unter welcher Id der HSM die Vorlauftemperatur meldet.

von Joe Lucid (Gast)



Lesenswert?

Auch interessant (siehe Anhang):

Im TA300 lassen sich die Infos der einzelnen Kaskadengeräte auslesen und 
zusätzlich globale Parameter:

- Aussentemperatur
- Gemeinsamer Vorlauf Soll
- Gemeinsamer Vorlauf Ist
- Nachlauf Offset

Möglich dass einfach 0x20? für diese Parameter bei Kaskadenschaltung 
benutzt wird und die Therme 1 anhand einer auf 0x20? gesendeten 
Vorlauftemperatur auf Kaskadenmodus umschaltet. Aber das ist alles 
Spekulation.

Zweiter Anhang zeigt die flexiblen Kaskadenparameter der TA300 die es 
mir wahrscheinlich erscheinen lassen dass die TA300 selber die Kaskade 
implementiert.

von Joe Lucid (Gast)


Lesenswert?

Joe Lucid schrieb:

> Fragt sich nur unter welcher Id der HSM die Vorlauftemperatur meldet.

Ich glaub ich habs gefunden: 
Beitrag "Re: Junkers CAN-Bus Protokoll"

0x25a/0x220.

von Peter* (Gast)


Lesenswert?

Hallo,

vielleicht interessant für Dich:

habe hier noch ein Schreibtischaufbau (BM1/TA250/AF/Netzteil). Es juckt 
überhaupt nicht ob AF angeschlossen ist oder nicht (-20).

Sicher kann der Fehler noch unbemerkt über I2C der Heizung mit geteilt 
werden.
~~Vielleicht hilft es aber den Bereich einzugrenzen.

Wird BM2 im Gerät erkannt? Service in deiner Heizung.

von Joe Lucid (Gast)


Lesenswert?

Jörg R. schrieb:
> Thomas schrieb:
>> bzgl. BM2-Hardware(-Generation):
>> ich meinte nicht "kleiner = weniger Features", eher "kleiner weil neuer"
>
> Die Rechnung haut mAn. so nicht hin. Lt. FD-Nummer ist das "BM2" mit dem
> großen IC das neuere...
> Das andere wurde als "BM1" verkauft. Wenn man in der Bucht sucht, findet
> man zu beidem auch beide Versionen.

Habe gerade mal etwas recherchiert - mir scheint das sind beides BM1.

Produktnummern für BM1: 8744501086, 8748300289, 87472071490, 8748300370 
(kleiner chip)
BM2: 8748300379, 8748300347

Das würde ja dann auch dazu passen dass nicht alle BM2 funktionieren. 
Nur die, die in Wirklichkeit BM1 sind.

von Thomas (campino)


Lesenswert?

mein BM2 (mit kleinem Chip) war ein 8748300379, also demnach nur 
eingeschränkte Funktion, würde passen

von Peter* (Gast)


Lesenswert?

Hallo,

Zweifel hatte ich ja schon geäußert.

HW: wo für braucht ein BM2 eine Stromquelle LM317 to220 und die andere 
nicht; Beschreibung sind nur mit großen Aufbau.

Ich besitze zwei BM1 mit gleichen Junkers Bosch Nr....370 und gleichen 
"Front_Nr. ....227" die aber unterschiedlich in der HW sind.

Zwei weitere Nr. sind aufgefallen 0002 zu 0019 (~Layout_Nr.)und neben 
dem Strecke SK1 (~Versions_Nr.)im Kreis 0.2 zu 0.3.

Ich kenne solch eine Kennzeichnung nicht.

Aber was hilf Dir das alles, dann müsste doch dein BMx funktionieren.

von Peter* (Gast)


Lesenswert?

Hallo,

> eingeschränkte Funktion

woher kommt diese Aussage?

von Jörg R. (rejoe2)


Lesenswert?

Joe Lucid schrieb:
> Habe gerade mal etwas recherchiert - mir scheint das sind beides BM1.
>
> Produktnummern für BM1: 8744501086, 8748300289, 87472071490, 8748300370
> (kleiner chip)
> BM2: 8748300379, 8748300347
>
> Das würde ja dann auch dazu passen dass nicht alle BM2 funktionieren.
> Nur die, die in Wirklichkeit BM1 sind.
Das halte ich nicht für korrekt. Zum einen: Warum sollte jemand ein BM1 
als BM2 verkaufen, wenn er für ein BM1 mehr erlösen könnte? (OK, Fehler 
passieren; ist aber nicht unbedingt die Regel).

Zum anderen: Die beiliegende Bedienungsanleitung war für BM2, und die 
Abbildungen passen...
Würde behaupten, dass da jemand schlicht und ergreifend gemerkt hat, 
dass das Design von BMx alt nicht optimal war, eine neue HW-Revision 
gemacht hat und dann eben einen ausreichend potenten Chip genommen hat, 
der beides abdecken kann. Dann wurde nach und nach die SW so angepaßt, 
dass die selbständig erkennen kann, welche Funktion gewünscht ist... Bei 
der Bestückung hat man dann halt "Einheitsware" aufgebaut, warum auch 
immer, vielleicht, um die intern vorhandenen Spannungspegel besser im 
Griff zu haben.
(Es ist aber nach wie vor komisch, dass mein MBx-alt nur ca. 15V 
liefert, und das BMx neu eben neuerdings 30V. Beides außerhalb der 
spec...

von Joe Lucid (Gast)


Lesenswert?

Es gibt aber BM2 mit grossem Chip auch mit den BM2'er Produktnummern - 
z.b. https://www.ebay.de/itm/185128652217. Ich denke es ist möglich dass 
die HW identisch ist aber die Funktion über spezielle Firmware 
selektiert wird. Man siehts an den firmware Sockeln und den aufgeklebten 
letzten drei Ziffern der Produktnummer.

Solange wir kein Beispiel eines BM2 mit großem Chip und BM2 
Produktnummer haben, welcher nachgewiesenerweise als BM1 funktioniert, 
würde ich auch die boards mit grossem Chip nur mit den BM1 
Produktnummern kaufen.

Hab mir gestern einen 8748300289 mit grossem Chip gekauft (BM1 oder 2 
nicht näher bestimmt). Bei dem bin ich relativ optimistisch.

Mein Eindruck ist dass der 8748300289 mit grossem Chip derjenige ist der 
am häufigsten ohne nähere Kennzeichnung als BM1 oder 2 verkauft wird. 
Möglicherweise ists eine Spezialität dessen FW dass er in beiden 
Funktionen verwendet werden kann.

von Joe Lucid (Gast)


Lesenswert?

Jörg R. schrieb:
> (Es ist aber nach wie vor komisch, dass mein MBx-alt nur ca. 15V
> liefert, und das BMx neu eben neuerdings 30V. Beides außerhalb der
> spec...

Ich hab in irgendeiner Junkers Anleitung gelesen dass man das Bus Modul 
ersetzen soll wenn die gelieferte Spannung nicht im Referenzbereich ist. 
Scheint also ein häufiges Problem zu sein. Leider finde ich die Quelle 
gerade nicht mehr.

von Joe Lucid (Gast)


Lesenswert?

Joe Lucid schrieb:
> Jörg R. schrieb:
>> (Es ist aber nach wie vor komisch, dass mein MBx-alt nur ca. 15V
>> liefert, und das BMx neu eben neuerdings 30V. Beides außerhalb der
>> spec...
>
> Ich hab in irgendeiner Junkers Anleitung gelesen dass man das Bus Modul
> ersetzen soll wenn die gelieferte Spannung nicht im Referenzbereich ist.
> Scheint also ein häufiges Problem zu sein. Leider finde ich die Quelle
> gerade nicht mehr.

Hier: 
https://www.heizungfehlermeldung.de/fehler.php?merk=6&ketel=89&storing=2471&subcode=0

von Peter* (Gast)


Lesenswert?

Hallo,

angesteckt von diesen ganzen Spekulationen, die hier neuerdings 
vertreten werden, habe ich mir mal "ein" !!Verkäuferbild BM2 (kleine 
Bestückung)!! genauer angeschaut.

Alle Bezeichnungen auf dieser Platine waren identisch mit meiner BM1 nur 
der Klebestreifen war halt BM2. Ich habe nicht ein BOSCH Junkers 
Verzeichnis, Dokument gefunden das mehr als 2 Platinen darlegt für beide 
Versionen.

Man kann am "sichersten" davon ausgehen das Bosch oder Auftragsfirmen 
auch vor 20 Jahren den Entwicklungsstandard eingehalten hat und nicht so 
ein durcheinander produziert haben.

Letztlich nochmals auf den HW_Stand des angeblichen "BM2 (kleine 
Bestückung)". Warum sollte ein Kaskaden_Modul mit einer Versorgung des 
TAxxx versehenen werden und Led's weggelassen werden, vielleicht so 
verständlich.

Es geht in der Entwicklung, Herstellung und dem Verkauf nicht um 100te 
von Euros sondern um Cent Beträge oder damals Pfennige.

@Versorgungsspannung am BM1 liegt bei max. 24V die Versorgung des TAxxx 
hingegen bei 17-24V (Ta250; an gesteckt) dies liegt an der Stromquelle 
(eine Art Sicherung) auf dem BM1 (LM317).

30V....eine höhere Spannung als 24V beinhaltet doch automatisch das vor 
dem Stecker SK1 der defekt liegt. --> Spannungsversorgung auf der 
Hauptplatine.
evtl. mal den Wechselstromanteil messen /belastet/unbelastet/??.

@Joe
warum Du noch immer nicht einfachsten Weg gehen willst...?????? Du 
verrennst Dich.

von Joe Lucid (Gast)


Lesenswert?

Peter* schrieb:
> warum Du noch immer nicht einfachsten Weg gehen willst...?????? Du
> verrennst Dich.

Na mach ich doch. Deswegen habe ich ja jetzt den 8748300289 gekauft. 
Einen Versuch war es wert mit dem BM2 mit kleinem Chip. Aber bei diesen 
Temperaturen kann ich einfach nicht längere Tests fahren ohne mir hier 
eine Ehekrise einzufahren.

von Peter* (Gast)


Lesenswert?

Hallo,

kleine Korrektur,

Peter* schrieb:
> 30V....eine höhere Spannung als 24V beinhaltet doch automatisch das vor
> dem Stecker SK1 der defekt liegt. --> Spannungsversorgung auf der
> Hauptplatine.

es muss natürlich ST1 heißen.

von Joe Lucid (Gast)


Lesenswert?

Joe Lucid schrieb:
> Wenn man es durchspielt merkt man schnell wie sich die Punkte
> widersprechen: bringt man den VL auf maximale Temp um ein Zimmer zu
> boosten, so wird es überall sonst wärmer - bis die Thermostate merken
> dass der Vorlauf heiss geworden ist. Es müssen also die Thermostate die
> VL Temp kennen, um antizipierend gegenzusteuern.

Hab heute nacht mal gemessen wie gross dieses Problem ist. 
Heizkörperventile sind nachts auf 16 C gestellt, VL Temp Absenkung von 
20 C nachts. Temperatur fällt schön auf 16 C - kein Problem. Aber wenn 
die Heizung wieder anspringt überschiesst die Zimmertemperatur auf 18.3 
C - miserable Regelleistung.

Wenn die Ventilregelung nicht die VL Temp kennt ist es nicht möglich 
eine konstante Temperatur einzuregeln.

Das zweite Problem mit der Nachtabsenkung ist die Temperatur der Möbel, 
Fussboden etc im Raum. Die folgt der Zimmertemperatur mit Verzögerung 
und morgens fühlt es sich deswegen kälter an die Lufttemperatur. Eine 
gute Steuerung würde das kompensieren, indem es die aktuelle Temperatur 
der trägen Massen im Zimmer modelliert und eine konstante gefühlte 
Temperatur liefert, indem die Lufttemperatur erhöht wird, bis die trägen 
Massen auf Zieltemperatur aufgeheizt sind.

Das bedeutet natürlich wiederum mehr Energie als sonst, so dass die 
Ersparnisse der Nachtabsenkung teilweise aufgehoben werden. Es folgt, 
dass die eigentlichen Ersparnisse der Nachtabsenkung zu den Zeiten 
eingefahren werden, wenn die Zielabsenkungstemperatur erreicht ist und 
konstant gehalten wird.

Hab gestern um 19:00 mein Büro auf 16 C gestellt und der Fall von 20 auf 
16C dauerte ca 5h - schon die Grössenordnung der Nachtabsenkung von 
23:30 - 5:30. Man kann ableiten, dass komplette Absenkung mit Heizen bei 
Bedarf viel, viel mehr bringt als Nachabsenkung, die hier wahrscheinlich 
nur auf ca 18 grad erfolgen dürfte um überhaupt was zu sparen - 
jedenfalls bei gleichem Komfort über Ausgleich der subjektiven Kühlung 
über träge Massen durch höhere Lufttemperaturen.

von Joe Lucid (Gast)


Lesenswert?

Das coole an einer integrierten Steuerung wird sein, dass die träge 
Masse jeden Raumes automatisch bestimmt werden kann, sowie die 
durchschnittlichen Nutzungsintervalle. Damit kann die optimale 
Absenktemperatur automatisch gewählt werden.

Hier spielt natürlich auch die Aussentemperatur zur Abwesenheit eine 
grosse Rolle: ist es z.b. nachts 10 C kälter als tagsüber, so spart die 
Absenkung nachts deutlich mehr ein als bei konstanten 
Aussentemperaturen. Auch das kann man über Wettervorhersage voraussehen 
und bei der Wahl der Absenktemperatur berücksichtigen.

von Joe Lucid (Gast)


Angehängte Dateien:

Lesenswert?

Wenn man sich diesen Chart ansieht, wird klar dass die Aussentemperatur 
natürlich der Sonneneinstrahlung folgt. Die grössten 
Einsparungspotentiale liegen also in den frühen Morgenstunden. Das 
Wohnzimmer nur von Mittags bis Mitternacht zu heizen sollte eine massive 
Einsparung bedeuten. Und zumindest in der Woche sollte man vor mittags 
auch nicht "wohnen" :).

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Ich habe die Heizleistung meiner Therme auf das absolute Minimum
> reduziert, dadurch braucht diese auf Sparflamme deutlich länger um die
> Energie zuzuführen, benötigt aber eine deutlich geringere VLT um die
> Räume aufzuheizen, da jetzt ein konstanter(er) Energiestrom an den
> Heizflächen ankommt.

Da ich ja auf die Lieferung meines BM warte, habe ich mir dieses 
Wochenende mal angeschaut, was die Therme so macht. Ich hatte einen 
relativ hohen Vorlauf um on demand hochheizen zu können und das Ding 
taktete in einem durch.

Dein Kommentar deckt sich mit meinen Erfahrungen, wenn es auch auf den 
ersten Blick absurd erscheint: eine höhere durchschnittliche VL Temp 
sollte natürlich zu besserem Heizen führen, tut es aber nicht unbedingt. 
Die Therme springt nur wild an und aus.

Ich denke der Hintergrund ist folgender: bei höherer VL Temp stellen 
sich die Ventile weitgehend zu und so zirkuliert nur wenig Wasser durch 
den Heizung/Therme Kreislauf. Das meiste Volumen zirkuliert durch den 
internen Bypass in der Therme. Letzteres heizt sich natürlich schnell 
massiv auf, was die Therme dann ausschaltet - bevor die Heizkörper viel 
von dem warmen Wasser sehen.

Daher sollte die Steuerung die Vorlauftemperatur so steuern, dass die 
Ventile möglichst weit offen sind. Mit der Heizkurve lässt sich einiges 
machen, aber der Clou auf den ich gekommen um das Problem ohne eigene 
Steuerung anzugehen ist in Zimmern mit zwei Heizkörpern ein Ventil 
komplett offen zu stellen und das andere alleine steuern zu lassen. So 
ist auch in Zeiten in denen die Thermostate die Heizkörper zu machen 
wollen zumindest ein guter Grundkreislauf gegeben.

Habe also dazu die Heizkurve sehr weit runtergedreht und habe jetzt ein 
viel, viel gutmütigeres Verhalten.

Nach der Erkenntnis, dass die gefühlte Temperatur (Strahlungstemp + 
Lufttemp) / 2 ist und ich (noch) keine Steuerung habe, die das 
berücksichtigt, hab ich die Nachtabsenkung mal ganz raus genommen.

Es ist erstaunlich wie viel besser sich das anfühlt. Hab die 
Zieltemperatur jetzt auf 19 C runtergefahren und egal ob das Thermometer 
auf Möbeln steht oder in der Luft hängt - ich bekomme 19 C. Und es fühlt 
sich viel wärmer und angenehmer an als 20 C vorher.

Einsparpotential ist allerdings schon vorhanden. Die Wärmeleitung nach 
draussen ist durch die durchschnittliche Aussenflächentemperatur 
bestimmt. Und wenn man nachts (oder bei Nichtnutzung) absenkt ist diese 
natürlich deutlich geringer selbst wenn die gleiche gefühlte Temperatur 
durch höhere Lufttemperatur eingestellt wird.

Zu viel in der Richtung kann man aber nicht machen, weil der Komfort 
darunter leidet.

von Jörg R. (rejoe2)


Lesenswert?

Peter* schrieb:
> @Versorgungsspannung am BM1 liegt bei max. 24V die Versorgung des TAxxx
> hingegen bei 17-24V (Ta250; an gesteckt) dies liegt an der Stromquelle
> (eine Art Sicherung) auf dem BM1 (LM317).
>
> 30V....eine höhere Spannung als 24V beinhaltet doch automatisch das vor
> dem Stecker SK1 der defekt liegt. --> Spannungsversorgung auf der
> Hauptplatine.
> evtl. mal den Wechselstromanteil messen /belastet/unbelastet/??.

Danke für den Hinweis. Hatte bisher immer nur ohne laufendes BMx am 
Stecker gemessen, und da lagen dann auch tatsächlich die 24V an. Das 
schaute also OK aus, ABER: Mit angestecktem BM2 liegt auch an diesem 
Stecker dann deutlich mehr an als die Spec sagt (um die 28V), und der 
Versuch, die Wechselspannung dort zu messen zeigte um die 58V an. Weiß 
zwar nicht, wie genau diese Messung ist (billiges Multimeter), aber 
vermutlich ist es in der Tat so, dass der Fehler doch auf der 
Hauptplatine zu suchen ist.

Stellt sich die Frage, wie am besten weiter machen. Mal (bei moderateren 
Außentemperaturen) das MB rausholen und die Nummer abpinnen ist sicher 
eine gute Idee, vielleicht bekomme ich ja was passendes gebrauchtes 
(stellt sich dann nur die Frage, ob das besser ist).
Aber immerhin könnte man dann ggf. einen Reparaturversuch starten. 
Vielleicht ist es auch "nur" ein ausgetrockneter Kondensator... (Falls 
jemand eine Idee hat beim Blicken auf eine ausgebaute Hauptplatine: 
Gerne her damit, ich bin fachlich nicht qualifiziert...).

von Peter* (Gast)


Lesenswert?

Hallo,

in der Tat solltest Du ein Messgerät verwenden das auch richtig misst!!

Wenn am Stecker ST1 bzw. ST9 eine Spannung von 24 V anliegt ist das ok, 
aber die Logik verfällst Dich wenn bei aufgestecktem Stecker BM2 die 
Spannung steigt.

Woher soll die Spannung kommen, leitest Du die über CAN-Bus ein. (3te 
Leitung GND--->  Masseversatz)

Die Spannungsversorgung auf der Platine regelt hier maximal die 5,0 V 
Versorgung und BM1 TAxxx auch ~BM2 (!! besitze kein BM2, keines der 
angeblichen beiden Bestückungsvarianten und werde mir auch keins kaufen 
!!) .

28V werden die 78L05 noch verkraften können, aber ~58V ganz sicher 
nicht!! hier würde nichts mehr laufen.

Mein Vorschlag, ein besseres Messgerät leihen und die richtigen 
Messpunkte suchen ST1(1,3 VB<->GND) oder ST9(Spiegelverkehr) und 
nochmals messen. "Vorsichtig"

Deine Therme läuft doch scheinbar... sonst gar nichts, Sommer abwarten 
immer besser.

Vor eineinhalb Jahren hatte ich die Platine TA211 vermessen und habe 
beim schalten der Gasarmatur erhebliche Störspitzen gemessen.

Ich glaube das dies der Killer der Hauptplatinen ist, aber nur eine 
Vermutung.

Denke an deine Eigenverantwortung!!

von Dave G. (neuroquila-n8fall)


Lesenswert?

Ich bin mir bei dem Thema Nachtabsenkung auch noch nicht vollends einig. 
Ich denke es ist besser die Thermostate per Zeitplan auf 17° 
einzustellen und die Heizung entsprechend laufen zu lassen, statt 
komplett abzuschalten. So wird auch noch die Restwärme im Kreislauf für 
eine gewisse Zeit benutzt. Hätt ich nur eine gute Möglichkeit den 
Gaszähler dabei zu betrachten... aber geht bei mir leider so garnicht.

Mit meiner Steuerung sollte das absenken auf 17° bewirken, dass eine VLT 
von vielleicht maximal 30° resultiert und verhindert, dass das Delta zum 
morgentlichen aufheizen zu groß wird. Ich weiß nur nicht, ob man dadurch 
etwas spart oder das Gegenteil bewirkt.

//EDIT: Ich deaktiviere das einfach mal für eine Nacht und schaue, was 
so passiert.

: Bearbeitet durch User
von Joe Lucid (Gast)


Lesenswert?

Inzwischen ist meine Meinung wie gesagt dass die potentielle Ersparnis 
bei echter Nachtabsenkung komplett aus der Reduzierung der 
durchschnittlichen Temperatur der Wände, Decken, Böden etc resultiert. 
Dem gegenüber steht der Mehrverbrauch durch höhere Vorlauftemperatur 
beim Aufheizen.

Da die Aussenflächen und Möbel mit Nachtabsenkung durchschnittlich 
kälter sind als ohne, fühlt sich eine feste Zimmertemperatur kälter an. 
Der Körper erfährt nicht nur die Abkühlung durch die Luft, sondern 
zusätzlich die Wärmestrahlung von Aussenflächen und Möbeln - und wenn 
diese kälter sind als die Luft so wird dem Körper zusätzlich Wärme 
entzogen.

Deswegen ist sicher ein signifikanter Teil der Einsparung bei 
traditioneller Nachtabsenkung einfach in der niedrigeren operativen 
Temperatur (= 1/2 * (Strahlungstemp + Lufttemp) gegeben. Man toleriert 
über den Tag, aber besonders morgens, eine kältere operative Temperatur. 
Das ist natürlich gemogelt. Ich denke man müsste die eingeregelte 
Temperatur entsprechend kompensieren.

Je grösser die Absenkung desto mehr können sich Flächen und Möbel 
entsprechend ihrer thermischen Masse und ihrer Wärmeleitung 
unterschiedlich stark abkühlen. Das hab ich bei mir stark beobachtet - 
es ist nicht angenehm und Teile des Zimmers werden unangenehm kalt.

Hier möchte ich aber noch mehr experimentieren. Wir haben einen riesigen 
Wohnbereich, der am teuersten zu heizen ist, aber eigentlich erst an 
Nachmittag gebraucht wird. Man könnte den komplett auskühlen lasst und 
dann ab Mittag deutlich wärmer als Zieltemperatur aufheizen, so dass 
sich  Kaltflächen aufwärmen können. Und dann ab 14:00 normal weiter 
heizen, mit  etwas erhöhter Temperatur wg immer noch kühlerer Flächen 
und Möbel. Ob dass aber dann noch was spart - wer weiss.

Bei Deinen Charts oben fiel mir auf wie häufig die Therme taktet (ca 
alle 6 Minuten?) - so wie das bei mir war. Nachdem ich jetzt viele 
Ventile annähern komplett offen habe, die Taktsperre ausgeschaltet und 
statt dessen 30 C Schaltdifferenz eingestellt habe, taktet mein Therme 
ca alle 11 Minuten. Dabei sieht man, dass sie am unteren Ende auf ein 
echtes Abkühlen des Nachlaufs wartet und sie heizt längere Zeit am 
oberen Ende. Insgesamt scheint mir das positiv zu sein.

von Joe lucid (Gast)


Lesenswert?

Ich denke man muss die Vorlauftemperatur als Steuergrösse nehmen und als 
Steuerziel die Ventile möglichst weit zu öffnen - dabei von Deinem 
Flurventil abgesehen.

Die 10kw minimale Leistung die diese Thermen erzeugen brauchen einfach 
eine Menge Durchfluss um bei Erhitzung des Nachlaufs abzuschalten (statt 
der internen Soße).

von Joe lucid (Gast)


Lesenswert?

Gut wäre auch den hydraulischen Abgleich über die Ventile zu machen - so 
dass man auch mit nur einem geöffneten Ventil guten Durchfluss bekommt. 
Falls das geht.

Für das Boosten eines Raumes ist das wohl die einzige Möglichkeit ein 
Takten der Therme zu vermeiden.

von Dave G. (neuroquila-n8fall)


Lesenswert?

Das mit der Taktsperre und Delta muss ich auch mal ausprobieren. Vorher 
taktete die Heizung übrigens auf jeden Fall alle 3 Minuten, blieb der 
Brenner für ein paar Sekunden an und ging dann wieder aus.

von Joe lucid (Gast)


Lesenswert?

3 Minuten ist die voreingestellte Taktsperre. Da warst Du also am Limit.

von Peter* (Gast)


Lesenswert?

Hallo,

...ernsthaft?

Man sollte sich doch noch in der Realität bewegen, wenn schon nicht mehr 
im Thema..?

Verschachtelte Regelkreise, der dynamischer Abgleich über 
Thermostatventile mit einer Heizung die vielleicht 10-20 Jahre hinter 
sich hat. Vorlauftemperaturreduzierung und gleichzeitige 
Taktzeiterhöhung und das soll noch funktionieren.

Dave's Gedanken und dessen Gebäude kann ich noch in Einklang bringen, 
aber...

Sorry, ist nicht böse gemeint.

Aber ich denke auch an Leute die mitlesen oder die vielleicht den 
Schritt ebenfalls wagen mit Ihrer alten Heizung zu kommunizieren und von 
solchen nicht nachvollziehbaren Gedankenspielereien abgeschreckt werden.

Danke

von Dave G. (neuroquila-n8fall)


Lesenswert?

Naja gut irgendwann wird der Thread hier sowieso so lang werden, dass 
Informationen unweigerlich verloren gehen, weil niemand Lust hat sich 
hunderte Beiträge durchzulesen. Daher würde ich auch gerne irgendwie die 
Erkenntnisse (also die fundierten zumindest) in ein Wiki auf Github oder 
so schreiben, damit erstens nichts verloren geht und zweitens Struktur 
drin ist.

Was haltet ihr davon?

von Peter* (Gast)


Lesenswert?

Hallo Dave,

super

Danke

von Dave G. (neuroquila-n8fall)


Angehängte Dateien:

Lesenswert?

Hier sind übrigens noch meine Erkenntnisse von gestern auf heute bzgl. 
Nachtabsenkung an/aus.

Ich lass das einfach mal kommentarlos stehen und frage euch nach eurer 
unverfälschten Meinung dazu.

von Peter* (Gast)


Lesenswert?

Hallo,

was ich sehe, eine 3/4 Stunde weniger aufheizen zu ~16 kurze Starts in 
der Nacht.

Nehme an im ersten oberen Bild ist die Pumpe auch nicht aktiv.
Der Gaszähler könnte natürlich hier das wirkliche Ergebnis erbringen.

Für dein Gebäude finde ich sieht es gut aus mit aktiver Heizung.

Lese auch noch am Morgen zur gleichen Zeit immer den Zählerstand ab.
Projekt Gaszähler mit Mouse_Sensor liegt noch auf Eis, keine Zeit.

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Hier sind übrigens noch meine Erkenntnisse von gestern auf heute
> bzgl.
> Nachtabsenkung an/aus.

Man kann sehen, dass der Raum tiefer auskühlt mit Nachtabsenkung - die 
Therme läuft noch mittags wesentlich länger, da nicht nur der 
Wärmeverlust sondern auch das Wiederaufheizen der trägen Massen erfolgt 
-> sollte sich heute weniger kalt angefühlt haben. Aber so gross ist der 
Unterschied nicht, da Du ja über die Ventile indirekt absenkst. Ich 
heize zur Zeit mit einer konstanten Zimmertemperatur durch - aber BM 
heute angekommen. Leider bin ich jetzt erstmal mit anderem Kram 
beschäftigt. Bäh.

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Was haltet ihr davon?

Gute Idee.

von Joe Lucid (Gast)


Lesenswert?

Peter* schrieb:
> Aber ich denke auch an Leute die mitlesen oder die vielleicht den
> Schritt ebenfalls wagen mit Ihrer alten Heizung zu kommunizieren und von
> solchen nicht nachvollziehbaren Gedankenspielereien abgeschreckt werden.

Ach was, da mach Dir mal keine Sorge. Ein bisschen Brain-Storming 
inspiriert oft! Und wo Du so häufig sagtest: "warum so kompliziert, häng 
doch einfach eine TA 270 dran" - das ist der Grund: Wenn ich mir die 
Mühe mache, meine Heizung neu zu steuern dann möchte ich auch die 
Grenzen austesten.

Ich finde die haustechnikdialog.de Foren unterhaltsam. Da prallen Welten 
aufeinander - Heizungstechniker und Tech-Menschen. Und zwar genau weil 
das übliche Setup von überdimensionierter Therme und abwürgenden 
Digital-Thermostaten (wie bei Dave und mir) ein prinzipielles Problem 
darstellt. Die haben sogar einem Namen für die Konstellation: 
http://www.bosy-online.de/Kuhschwanzheizung.htm.

Das ist schade - denn im Prinzip könnte man viele spezielle Probleme 
dieser Konstellation mit Digital-Thermostaten viel besser lösen. Also 
offen bleiben.

von Joe lucid (Gast)


Lesenswert?

Die Idee ist immer mindestens einen Heizkörper als Pufferspeicher zu 
benutzen indem jegliche Drosselung bei angeschaltetem Brenner 
rausgenommen wird.

von Dave G. (neuroquila-n8fall)


Lesenswert?

Das mit dem Kuhschwanz kenne ich sogar. Wenn man versucht nur durch 
digitale Raumthermostate das System einzuregeln, dabei aber nicht den 
Kessel an die Gegebenheiten einstellt, dann geht das schief. Da wir hier 
versuchen eine total alte aber immernoch perfekt funktionierende 
Regeltechnik ins moderne Zeitalter des Smarthomes zu heben, entstehen da 
sicher tolle Situationen. Die meisten Heizungstechniker werden das was 
wir hier machen als totalen Quatsch abstempeln aber ich habe bereits 
eine Einsparung erfahren, also ist das was ich hier mache besser als das 
was die Heizung bis dato alleine gemacht hatte.

Meiner Einschätzung nach macht es allerdings kaum einen Unterschied die 
Nachtabsenkung abzuschalten. Die Temperaturdifferenz kommt ganz klar von 
der Außentemperatur, die nun weit über 0° liegt. Ich werde das nun 
weiter beobachten. Wenn die Temperaturen wieder ins negative fallen, 
werde ich weitere Vergleichsdiagramme ziehen.

Übrigens wurde ich auf einen Bug aufmerksam gemacht. Irgendwo beim 
Refactoring ist da ein INT zu einem UINT geworden. Die Außentemperatur 
ist jetzt stets positiv. Das werde ich noch fix beheben.

von Joe Lucid (Gast)


Lesenswert?

Dave G. schrieb:
> Meiner Einschätzung nach macht es allerdings kaum einen Unterschied die
> Nachtabsenkung abzuschalten. Die Temperaturdifferenz kommt ganz klar von
> der Außentemperatur, die nun weit über 0° liegt. Ich werde das nun
> weiter beobachten. Wenn die Temperaturen wieder ins negative fallen,
> werde ich weitere Vergleichsdiagramme ziehen.

Ich habe eine Wochenendhütte, die ich diesen Sommer mit Solar und einer 
Klimaanlage ausgestattet habe. Habe da eine Gastherme aber kann die 
Klimaanlage auch zum heizen verwenden. In der Woche heize ich nicht - 
Temperatur geht also vielleicht 10 C runter.

Folgendes ist mir aufgefallen: Die Klimaanlage läuft auf 100% und die 
Temperatur steigt sehr langsam - über viele Stunden. Aber Sonntag, wenn 
die Hütte aufgeheizt ist, fängt sie an zu Takten wenn sie nur noch die 
Temperatur hält. Und die AC kann auf 25% drosseln.

Mit anderen Worten: das Aufheizen der trägen Massen kostet viel mehr, 
als ein Haus bei konstanter Hitze als Verlust an die Aussenwelt abgibt.

Du kannst es Dir auch an Deinem Haus klarmachen: bei tiefen Temperaturen 
macht für den Energieaustausch nach draussen keinen so grossen 
Unterschied ob die Innentemperatur bei 21 oder 17 C liegt. Wenn Du 8h 
die Heizung aus hast dann musst Du am nächsten Tag zusätzlich zum 
normalen heizen die Energie zuführen um die Massen wieder aufzuheizen. 
Und wir wissen wieviel das ist: Die normale Heizlast über 8h, die Du 
unterdrückt hast. Also zb fahre die Heizung doppelt sich stark wie sonst 
für 8h.

Aber die gute Nachricht ist - das ist nicht nötig. Man kann weniger 
heizen und die Massen bei tieferen Durchschnittstemperaturen lassen 
solange die Luft warm genug ist. Und da der Energietausch mit der 
Aussenwelt proportional zur Differenz zwischen Aussentemperatur und 
Temperatur der Wände, Decken usw ist reduziert das die Heizlast.

von Joe Lucid (Gast)


Lesenswert?

Gute Nachrichten: bin endlich dazu gekommen den BM? (8748300289) mit 
Dave's Firmware zu installieren und alles läuft tadellos!

Also ein weiterer Beleg für die Hypothese dass Bus Module mit der 
Produktnummer 8748300289 unabhängig von der Kennzeichnung als BM1 mit 
analogem Aussentemperaturfühler an AF funktionieren.

von Joe Lucid (Gast)


Lesenswert?

Hab noch eine neue Idee für Installationen, die (wie ich noch) keine 
drahtlosen Heizkörperthermostate habe: regele die Vorlauftemperatur so 
dass sich die Taktungsfrequenz auf einem vernünftigen Niveau einstellt.

Insoweit die Taktungsfrequenz als Indikator für die Ventilstellung 
gesehen werden kann, könnte das vernünftige Resultate bringen - 
jedenfalls ohne Nachtabsenkung.

von Joe Lucid (Gast)


Lesenswert?

Tja - nur ignoriert die Therme die Vorlauftemperatur, die ich ihr sende. 
Ich bekomme keinen A8 - aber sie taktet immer um die manuell 
eingestellte maximal VT. Ideen?

von Joe Lucid (Gast)


Lesenswert?

So - jetzt funktioniert es. Hab noch 0x250 = 1 zu den zyklisch 
gesendeten Werten dazugefügt. Das scheint den Erfolg gebracht zu haben.

Vorlauf temp optimierte Taktperiode von 10 Minuten scheint auch ganz gut 
hinzuhauen. Aber jetzt dann mal auf zur ernsthaften Steuerung.

von Joe Lucid (Gast)


Angehängte Dateien:

Lesenswert?

Angehängt ist die erste Nacht Probelauf meiner raumgeführten 
Vorlauftemperatursteuerung für den Wohnbereich. Ich benutze zwei 
Thermometer - eins auf dem Couchtisch was sehr träge reagiert und eins 
hängt in der Luft und reagiert schneller. Orange ist der Mittelwert 
zwischen beiden, der die gefühlte Temperatur annähert. Blau ist die 
Vorlauftemperatur. Beide Heizkörperventile sind komplett offen.

Maximalabweichung über die Nacht: 0.05 C. Durchschnittliche Taktperiode 
ist ca 15 Minuten. So hatte ich mir das ganze vorgestellt.

von Bernd R. (bernd_r860)


Lesenswert?

Hallo Leute,

heute ist mein Mini-PC, mit dem ich mittels eines Lawicel CANUSB am BUS 
meiner Heizungsanlage gehorcht und per MQTT an meinen HomeAssistant 
geschickt habe, bedauernswerterweise abgeraucht.

Hier (Beitrag "Re: Junkers CAN-Bus Protokoll") wurde 
erwähnt, dass dies einfacher mit einem Arduino und noch ein paar anderen 
Komponenten einfacher und stromsparender geht.

Wärt ihr bitte so freundlich und würdet mir erklären, was ich genau 
brauche
und wie ich es machen muss?

Ich habe z.B. keine Ahnung was ein NiRen ist. :-/

Das wäre super nett von euch.

Gruß,
Bernd R

: Bearbeitet durch User
von Peter* (Gast)


Lesenswert?

Hallo,

fangen wir hinten an "NiRen". Hier ein Link.

https://www.electronicshub.org/arduino-mcp2515-can-bus-tutorial/

wie immer mein Rat:
a) CANdiy-Shield-V2-CAN-Bus-Shield --Watterott

nun das zweite Problem ist, wie bindest Du diese Information in dein 
bestehendes System ein.

dann wirst Du evtl. den Arduino durch den ESP32 oder ESP8266 ersetzen 
mit geringer SW oder HW Anpassungen.

b) ESP32 NodeMCU D1 R32 WLAN Entwicklungsboard mit CH340G und WiFi + 
Bluetooth IoT mit Mikro USB kompatibel mit Arduino; Anpassung des SPI an 
CANdiy Shield evtl. über ICSP.

Probleme sind hier beschrieben; kein Abschluss CAN auf der Platine, muss 
gehen.

von Bernd R. (bernd_r860)


Lesenswert?

@Peter

Okay, ich kaufe also das hier 
(https://shop.watterott.com/CANdiy-Shield-V2-CAN-Bus-Shield) und das 
hier https://www.az-delivery.de/products/esp32-d1-r32-board.

Was bedeutet "Anpassung des SPI an CANdiy Shield evtl. über ICSP"

...und wie geht es dann weiter?

Gruß,
Bernd

von Peter* (Gast)


Lesenswert?

Hallo,

nun das sollte deine Entscheidung sein, was Du kaufst, es ist nur ein 
Rat von mir. Was halt bei Dir passt.

Die SW Anpassung, nun ...die wirst Du nur alleine bewältigen können.

Von ESP32 (WLAN...) auf MQTT bzw. dein System bzw. Dave's Programm.

Die Can-Bus Platine ist für Arduino Uno bis Due vorgesehen die Anbindung 
setzt die ICSP Schnittstelle voraus.

Die ESP32 Platine hat die nicht, Du musst über die ESP SPI_Pinne gehen 
an CAN_Bus_ICSP. Löten oder stecken, lass mich nicht lügen, glaube nur 3 
Leitungen.

SW für Can-bus ist hier oder bei Dave behandelt worden.

von Bernd R. (bernd_r860)


Lesenswert?

Also, ich folge gerne deinem Rat, weil ich nämlich keinen Plan habe was 
ich sonst machen soll und habe die beiden genannten Komponenten jetzt 
gekauft.

Peter* schrieb:
> Du musst über die ESP SPI_Pinne gehen an CAN_Bus_ICSP. Löten oder
> stecken, lass mich nicht lügen, glaube nur 3 Leitungen.

Gibt es dazu irgendwo eine bebilderte Anleitung, bzw. geht es ein 
bisschen genauer für Idioten wie mich.  ;-)

Wie geht es dann weiter.

Ich brauche eine Anleitung.

LG,
Bernd

von Peter* (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

oh Mann..., hoffe Du hast ein Lötkolben oder kennst ein mit Lötkolben.

Platine CAN-Bus Draufsicht Lan Stecker links:

Level_Jumper mit SMD_Brücke von 5 V auf 3V3 um löten. Es ist etwas 
Feinmotorig gefragt.

Einlöten der Jumper JP1...JP3.

Arduino Steckerleisten einlöten,

wenn Du die Platine nicht noch für andere "Arduino" versuche benutzen 
willst...(Bild), brauchst Du den ICSP_Stecker nur einlöten, wenn Du 
keine separaten 3 Pinhead's (SPI-Schnittstelle) hast und "dann" auf der 
Bestückungsseite statt auf der Bottom_Seite.
Als letztes wird "der" oder die Lan_Stecker aufgelötet.(Bild) Man 
braucht normal nur ein aber...

Halbdefektes Lan-Kabel defekten Stecker abschneiden und...
Kabelbelegung(GND nicht vergessen)) findest Du bei Watterott.

Solltest Du das anständig machen wollen kannst die nachfolgenden 
Leitungen auch auf der Can-Bus Platine, schön mit Draht verlöten.

!! ICSP Leitungen auf Can-Bus Platine: (Bild)

SPI_Schnittstelle:

Pin_SCK an PIN13 (braun);

Pin_MOSI an Pin11(rot);

Pin_MISO an Pin12(blau),

Achtung!! Pin11...13 sind abhängig von der Wahl der Schnittstelle in der 
SW

Natürlich alles ohne Gewähr!! Eigenverantwortung usw.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

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

Formatierung (mehr Informationen...)

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




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

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