Integration eines wassergeführten Kamins von Leda

Begonnen von whoami, 09 Dezember 2018, 22:59:14

Vorheriges Thema - Nächstes Thema

Wohnmaschine

Hallo Otto,

die Ledatronic 3 führt einen CAN Bus über einen RJ12 Stecker heraus. An den kann man ran.
Da ich keine Weiche hatte, habe ich einfach ein Kabel innen in der Ledatronic an den 120Ohm Abschlusswiderstand gelötet.
Im angehängten Foto der LT3 ist das R90 rechts unten bei der CAN Buchse.

Mein üblicher Angsatz mit dem USBtin von Thomas Fischl und einem Framework aus dem WPL15 Modul von Radiator (https://forum.fhem.de/index.php/topic,35614.msg450042.html#msg450042) ging nicht.
Der Kachelofen steht ja mitten im Wohnzimmer und ein Kabel hätte den Ehefrieden erheblich belastet.

Also habe ich ein NodeMCU (NodeMCU Lua Lolin V3) über einen Pegelwandler (TXS0108E) an ein CAN Shield (MCP2515 CAN bus für Arduino) angeflanscht - zusammen Hardware für unter 10€.

Die Quellen der Firmware stelle ich gerne zur Verfügung, muß aber noch Codeteile entfernen für die ich keine Lizenz zur Weitergabe habe. Das wird wohl erst nächste Woche was.

Der CAN BUS selbst läuft auf 125 KBPS. Es werden nur Standardframes mit 8 Byte Payload übertragen.

Grüße
Wohnmaschine

Wohnmaschine

Ok, ging doch schneller als gedacht.
Anbei die Firmware. Ich habe auf die Schnelle viel Code weggestrippt. Die FW compiliert, also sollte sie auch laufen  8)

Gebaut habe ich sie mit Platformio https://platformio.org/.

Nehmt sie als "Proof of Concept". Ist nix elegantes, aber bei mir läuft sie.
Die Anpassungen für das Netzwerk müssen in mqtt.cpp vorgenommen werden.

Falls sie nicht läuft - selber suchen.
Die Pin Belegung habe ich in main.h beschrieben.

Gruß
Wohnmaschine

Prof. Dr. Peter Henning

Ich klinke mich hier mal ein, denn wir müssen unseren Kaminofen aus dem Jahr 1999 innerhalb der nächsten 4 Jahre entweder austauschen oder nachrüsten. Und wenn austauschen, ist ein geregelter Kamin natürlich die Wahl.

LG

pah

Otto123

Hallo Wohnmaschine,

danke Dir, mal sehen ob ich damit zurecht komme. Ich habe zwei Kamine mit Brunner EOS Abbrand Steuerung, da reden Teile auch über den CAN Bus.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Magnumschuetze

Hallo Wohnmaschine,

erst mal vielen Dank für deine Mühe. Wenn das vollends klappt, bin ich dann in der Lage auch meine Ledatronic mit einzubinden.
Im Moment tue ich mir mit der Pin-Belegung schwer. Könntest Du ein Foto von deinem Aufbau posten?

Vielen Dank vorab!

Wohnmaschine

Hallo Magnumschuetze,
bin gerade auf Dienstreise. Deshalb eine schnelle Skizze mit Powerpoint  ::) von meinem Aufbau.

Wenn ich wieder etwas Zeit habe, dann mache ich den Code nochmal hübsch.

Grüsse Wohnmaschine

Wohnmaschine

Hallo Magnumschütze,
habe das PDF noch um das gewünschte Bild ergänzt, ein einfacher Fädelaufbau.
Der Blaue Klops ist ein 5V Netzteil.

Im Bild der Pinbelegung hatte noch ein Pull-Down Widerstand gefehlt. Er hält den Pegelkonverter während
des Boot Vorganges inaktiv.

Groß
Wohnmaschine

Magnumschuetze

Hallo Wohnmaschine,

danke für das Update. Ich hab schon verschiedene Verkabelungen versucht und es nicht zum Laufen bekommen. Bin Software-Entwickler und Hardwareseitig nicht so bewandert. Nen 4,7 KOhm Widerstand habe ich keinen, daher habe ich einen 5k eingebaut. Leider hilft das nicht, im Serial Monitor (ich habe mal ein paar mehr Ausgaben eingebaut) sehe ich, dass er keine Verbindung zum MCP2515 hinbekommt. Denkst Du es kann an den 0,3 kOhm liegen? Dann bestell ich neue Widerstände...

Viele Grüße
Magnumschütze


Wohnmaschine

Hallo Magnumschuetze,

nö, der Wert des Widerstandes ist eigentlich egal.
Also verstehen sich der MCP und der nodeMCU nicht.

Wenn Du ein Multimeter hast, dann teste doch erst einmal, ob der Spannungspegel im Betrieb am Pegelconverter OE dem "High" level entspricht.
Wenn nein, dann ist der Pegelwandler inaktiv. Richtigen PIO erwischt?
Falls Du kein Multimeter hast, kannst Du den Widerstand probeweise auf +5V statt Masse hängen. Wenn es dann läuft, dann prüfe, ob Du den richtigen PIO erwischt hast.
Der OE sorgt dafür, dass während des Einschaltens, wenn die Betriebsspannungen noch nicht stabil anliegen, der Pegelwandler geblockt ist.

Wenn der Pegelwandler läuft, dann versuche doch mal als nächstes, ob am CAN Modul SI und SO vertauscht sind.

Gruß Wohnmaschine

Wohnmaschine

Hallo Magnumschuetze,
ein kleiner Hinweis zur Stromversorgung ist mir noch eingefallen.
Leuchtet denn am MCP die kleine LED? Wenn nicht, bekommt der keine 5V.
Beim nodeMCU Lolin v2 konnte man über die USB Buchse ein USB Netzteil anschliessen, und dann die 5V vom nodeMCU Board weiterverwenden.
Ab V3 ist da jetzt aber eine Diode drin, und man kann die 5V vom USB Anschluss nicht mehr verwenden.
Deshalb habe ich auch ein kleines 5V Netzteil verwendet, und nicht ein USB Steckernetzteil an der USB Buchse des nodeMCU.


Wohnmaschine

Magnumschuetze

Hallo Wohnmaschine,

danke für deine Unterstützung, es will leider immer noch nicht laufen.

Ich hab die Spannung am OE gemessen, sind 3,3 V. Die Pins hab ich schon mehrfach überprüft, daran liegt es glaub nicht. Die LED am CAN-Shield leuchtet rot, er bekommt 5,18 V.
Wenn ich CAN H gegen CAN L messe, kommen ungefähr 2,7V. Übrigens habe ich einen NodeMCU V3.2, da kannst am VU die 5V wieder abgreifen, siehe letztes Bild.

Denkst Du es kann ein Hardwaredefekt vorliegen?

Viele Grüße
Magnumschütze

Tedious

Tolle Idee! ich klinke mich mal ein, bei mir steht dieses Jahr gezwungenermaßen auch der Wechsel des Kachelofeneinsatzes an (Bj. 1985), denn kommt auch eine wasserführende Variante ins Haus.
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Wohnmaschine

Hallo Magnumschuetze,
so aus der Ferne tippe ich mal auf irgendeinen Kabeldreher. Die Hardware ist eigentlich sehr robust.

Damit Du nicht immer vor dem Kamin knien musst, mal ein Tip zum debuggen. Der MCP unterstützt einen Loopback Modus, bei dem er intern gesendete Daten auf den Empfangskanal gibt. Den habe ich auch benutzt bis ich meine zwei Verdrahtungsfehler gefunden hatte. Erst dann bin ich an meine Ledatronic gegangen.

In der dem Sourcepaket das ich gepostet hatte findest Du unter lib/MCP_CAN_lib-maste/examples ein paar Beispiel Sketches. Der erste heisst CAN_loopback. Verwende den einmal, dann kannst Du schön mit der Konsole den Aufbau debuggen. An CAN_H und CAN_L brauchst Du dabei nichts anschliessen.

Reihenfolge zum Debuggen.
Prüfen das CS Signal. (Chip Select) es selektiert den MCP an. Funktioniert dies nicht, dann geht sowieso nichts. (GPIO15  D8     HCS      : Output SPI Chip Select für MCP2515).
Als nächstes würde ich mir die TX/RX Datenleitungen ansehen, probiere sie ggf. über Kreuz zu vertauschen (GPIO12  D6     HMISO    : Output SPI to Slave MCP2515
GPIO13  D7     HMOSI    : Input SPI from Slave MCP2515 ).
Wenn dann noch der Sys Clock richtig angeschlossen ist, sollte alles gehen.

Grüße
Wohnmaschine


Grüße
Wohnmaschine

Morpheus

Hallo Magnumschuetze

derCAN-Bus meiner Ledatronic3 läuft mit 16MHz, hatte den Fehler auch zuerst bei der Verkabelung gesucht. aber mit Änderung auf MCP_16MHZ läuft das seit gestern einwandfrei. Die LEDATHERM Komplettstation KS04 für die Wassertasche sendet ihre Daten mit x288.
Byte1 Speichertemperatur oben
Byte2 Speichertemperatur unten
Byte3 Temperatur in der Wassertasche
Byte4 Leistung der Pumpe in %

Danke an Wohnmaschine

Morpheus

Wohnmaschine

Hallo Morpheus,
guter Hinweis!
In der Tat sind auf den Can Bus Modulen unterschiedliche Quarze verbaut. Beim Initialisieren muss man daher einmal die richtige Frequenz im Code angeben. Damit werden dann andere Zeiten aus einer Timingtabelle ausgelesen. Die Geschwindigkeit der Ledatronic ist dabei aber gleich. Bei Magnumschuetze hatte ich schon auf seinen geposteten Fotos geschaut, aber er hat auch einen 8 MHz Quarz verbaut.

Grüße
Wohnmaschine