Hallo zusammen ich weis das Thema RS232 wurde schon 1000 mal behandelt aber irgedwie komme ich noch nicht auf einen grünen Zweig. Ich versuche gerade über einen Atemega8 RS232 "Hex" Daten auf meinen Laptop für Testzwecke senden und und Empfangen. Der Grund dafür ich habe ein mitgeschnittenes Protokoll meiner Heizung die an eine Visual.software Daten übermittelt. Ich möchte an meinem Atemega8 die gleichen Daten Empfangen und auf einem Display ausgeben. Um Daten zu Empfangen muss ich vorher immer Daten in HEX senden. Im Anhang habe ich die mitgeschriebenen Daten: Mein Aktuelles Testprogramm sieht so aus. #include <avr/io.h> #include <stdlib.h> #include "lcd.c" #include <stdarg.h> #include <stdlib.h> #include <avr/io.h> #define F_CPU 3686400UL #define UART_BAUD_RATE 9600 void initUART(void) { UBRRL = (F_CPU/UART_BAUD_RATE/ 16L)-1; //Baudrate festlegen UCSRB = 24; //RX TX ein } void putChar(char data) { while (!(UCSRA & 32)); //Warteschleife bis vorheriges Zeichen gesendet wurde UDR = data; } void print (char buffer[]) // Unterprogramm zum Senden, sendet so lang bis 0 erscheint { for (int i=0; buffer [i] != 0; i++) putChar(buffer [i]); } int main (void) { initUART (); // Einbinden Schnittstelle char wert_str[16]; //10 wandeln in dez 16= HEX gibt größe die zu Sendende Zeichenkette auf Display an unsigned int anzeige; unsigned int gedrueckt; //zum entprellen int werthoch; int wertrunter; char Zeichen; unsigned int read; // PD0 und PD1 reserviert für TX und RX PORTC = 0xf8; // Pull UP bei C3 Taster weiter , C4 Taster hoch , C5 Taster runter PORTB = 0XFF; lcd_init(); lcd_on(); // Display an while (1) { {print ("0X4D"); } if (UCSRA&(1<<RXC)) // schaut ob Messwerte auf der RS232 Schnittstelle sind {Zeichen = UDR; } itoa (Zeichen, wert_str, 10); // Wandelt Analogwert zu einem String um 10= dez und 16= HEX lcd_goto(1,1); // 2 Zeile und den Anfangspunkt des Textes je nach PIN lcd_write_s (wert_str); // Schreibt den String auf das Display lcd_write_s (" "); // ????
willst Du mit Deinem Mega8 die Lambdatronic simulieren und Daten per RS232 an die Visu-Software schicken ? Einfacher ist es den AVR per RS232 an die Lampdatronic anzuschliessen und die Daten auszulesen. Google mal "Fröling Daten auslesen", da wirst Du bestimmt fündig. Das Protokoll was in Deinem HTML-File "init" steht ist bekannt. Die Prozedur zum Auslesen auch. Viel Spass dabei :-)
Ja ich will die Daten der Lambdatonic auslesen und auf einem LCD Panel das am Atemega8 hängt ausgeben. Ja es gibt einiges zur Heizung leider meist nur zu neueren Versionen. Daher muss ich das Protokoll entziffern.
http://www.holzvergaser-forum.de/index.php/forum/froehling/50090-annonce-p4d-visualisierung-und-einstellung-der-s-3200-via-com1 schau mal hier ;-)
der Link aufs holzvergaser forum bringt nix. dort wird mit der S3200 kommuniziert. Wenn Du mir Deine email gibst, helf' ich Dir dabei. Ich mache das Auslesen der Daten mit einem P2.
Danke für den Link leider passen die Daten nicht zu der Lambdatronic S3100 hier werden andere Befehle gebraucht.
Ja das sieht super aus da kann ich doch glatt das Wochenende mit Programmieren beginnen. Vielen Dank
Lambdatronic schrieb: > sag' ich doch! > Probier es mal mit -> siehe Anhang :-) Hast du auch Infos zum interpretieren der Daten?
Prinzipiell läuft es ganz grob' gesagt so ab: Man startet die Kommunikation wie un Bild S3100 oben. (Use ID kann auch 0x01=Kunde sein) Dabei sendet die Regelung alle Ihre Einstellungen/Einstellmöglichkeiten. Die beginnen bei Antwortstrings mit "MA..." und laufen bis "MZ...". Danach muss man auf den "Messwertstring" (M1....) wechseln. Nun wird abwechselnd M1 (messwerte) und M2 (Uhrzeit/Datum) abgefragt. Ist man dabei zu langesam geht die P2-Regelung in ein Timeout und hört auf zu senden. Dann muss man wieder ganz von vorne beginnen. Die beiden Bilder zeigen was hinter den Ma...MZ steckt und wie der Messwertstring M1.. interpretiert werden muss (:2 bedeutet der gesendete Wert muss halbiert werden um den echten zubekommen) Für detailierte Infos müsste ich mal in meinem Projekt (hab' ich vor 5 Jahren begonnen) nachschauen. Viel Spass damit :-)
He das klingt schon echt gut ich war ganz auf dem falschen Pfad habe die Messwerte unter MA vermutet. Vielen Dank schon mal. Falls Sie noch einen Quellcode hätten würde es mich natürlich auch sehr freuen. Ich hatte vor in C++ auf dem Atemega8 die Daten auszuwerten. Danke
Hallo zusammen, ich hätte bitte eine Frage: wie weit ist jetzt die Software? - oder Script? Ich bin soweit mit dem ersten Schritt - MA Daten, aber nicht weiter. Irgendwann sendet die S3100 Steuerung MZ... und ich gehe nicht mehr weiter. Ich glaube bis zu dem M1,M2 Parameter wird schon noch ein langer Weg, oder? Über eine Rückmeldung werde ich sehr dankbar.
Hallo Tom, nach MZ sollte permanent "M2..." (Zeit und Datum) vom P2 gesendet werden. Nun "schaltet" man mit folgendem Befehl "Rb..." auf "M1..." um. Ich sende dan folgenden String: StartLog[15] = "Rb\x03\x00\x00\x00\x00\xB7M2\x01\x01\x00\x81"; ist gleich "R,b,3,0,0,0,0,183" + "M,2,1,1,0,129" (sind 2 Befehle!)
Hallo und DANKE für die Rückmeldung! Es ist tatsächlich sehr NETT! Also: Frage: 52 61 02 FF F9 02 AD ( R a ... Chksum) = Anmeldung (-7) Antwort: 52 61 01 01 00 B5 ( R a... Chksum) & 4D 41 05 53 00 02 00 03 00 EB ( M A data-lang(5) data(53,00,02,00,03) Chksum (hi/low)) Frage: 4D 41 01 01 00 90 Antwort: 4D 41 0c 49 00 1c 07 2B 5A 75 73 61 6E 64 04 1A (M A ... + Zustand..) Frage: 4D 41 01 01 00 90 ..... usw (ca. 25 Mal bis die Board-temperatur am Ende kommt) & Antwort : 4D 5A 01 41 00 E9 gesendet wird (M Z ... ) und dann NICHTS mehr! Wenn weiter irgendein Befel gegeben wird, antwortet die Steuerung immer 4D 5A 01 41 00 E9. WAS SOLL ICH JETZT SENDEN --- damit die Steuerung mit mir weiter redet? Danke nochmal und ... sorry für die blöde Fragen! Vielleicht es ist offensichtlich leicht, aber ich blicke nicht durch!
Hallo Tom, sorry ist schon ziemlich lange her dass ich das gemacht habe, oben fehlt was.... Mit "MZ..." wird jedesmal der Wechsel auf das nächste "M..." gemacht. Wenn nur noch "MZ..." von der Heizung kommt, kannst Du mit "M 2 <1> <1> <0> <129>" x01 x01 x00 x81 die Kommunikation am laufen halten indem man die Zeit/Datum abfragt. JETZT kannst Du mit dem Doppel-Befehl "Rb..." (siehe oben) auf "M1..." wechseln, siehe angehängtes Bild. Mann muss dann beachten dass M1 und M2 abwechselnd abgefragtr werden. Berichte bitte ob es funktioniert. Ich habe auch diesen Thread eröffnet -> Fröling P2 S3100 und AVR-NET-IO Kannst ja mal nach suchen. Grüsse aus Hessen!
Hallo zusammen arbeite auch noch an dem Programm ich weiß nicht genau wann ich es fertig habe da ich gerade viel beruflich eingespannt bin. Poste aber den Quellcode sobald ich Ihn habe. Nochmals Danke für die vielen Informationen.
Hallo, ein bisschen bin ich weiter, aber nicht viel! Wenn die MA Sequenz zu Ende kommt (MZ...) sende ich M2 .. die S3100 antwortet wieder mit MZ, dann habe ich versucht Rb...+ M2, die Regelung antwortet mit Rb...MZ ( also ist schon mindestens etwas!) und dann immer wieder das gleiche! Wenn M1, oder M2 gesendet (abgefragt) wird antwortet die Regelung nur mit MZ. Wenn in Kombination Rb+M1(oder+M2) kommt (s.oben) Rb...MZ und das war's. Die Kommunikation bleibt aktiv - aber die Steuerung bleibt genauso stur! Nochmal DANKE für die Unterstützung. Grüß
Hallo Tom, poste mal Deine Email Adresse, dann kann ich Dir mal ein bisschen selbst erstellte Doku zumailen.
Hallo
es ist ganz einfach....tom.neagu@gmail.com.
So wie ich gesehen habe, es ist eigentlich nicht so wichtig die "-7"
Anmeldung.
Wenn direkt am Anfang eine R a Frage gestellt wird (52 61 01 01 00 B5),
es gibt ein R a... Antwort (Ra<1><\0><\0>? ), R b... Frage >>> R b...
Antwort...und so geht es weiter bis am Ende
sprich R z... wenn die Steuerung anfängt sämtlichen Daten zu senden.
Rinigen <\0><6>p<24>1??<\0>??
wam??????<24><15><7><28>*q~??
M???????<5><\b>?<\0>hq??u???bpl<20>??<16>?????h??-?P?EHp?JG???q?????A<\n
>I<\0><28><7>
+stato<\0>d<\0>zen
4<4>R??v?o???o?sSp?L<2>???w?3G?0/<\0>E?<25>p?Ffyv????hR<\b>???22?Y<23>K
??W.?-@<\n>??%?S=??6?<18>?<5>??<\n>?A<16>I<\0><29><7><28>
ingr+avviso<\0>
<\0>?[???t<4>$<\0>:8????6??????@@`??<16>?<3>??-???DRx<1>%????b?]????Y@AJ
8:<6>??J?K?v????<7>??!?"??o??A<15>I<\0><\0><\0><3>
t.
caldaia<\0>z<4>Z?R??<\b>??o??????(<1><19><7>0?<16>??$?<\f>???:??%<5>??*B
?<29>W??k??}<3>;
??u"???Iy?e?k@<7>@?Db??<5>?]???|z!<6>@A<\f>I<\0><5><1><4>
t.
fumi<\0>p.<\0><\0>B<11>?|??K??.A?F<19><3>b<\b><30>?t?<31>k???P?<\f>??*Q?
?=z?????<\0><17>?n????W?O?????H<1>? <\0>
J?Ry<7>?z?*F?n<4>qRr?rA<16>I<\0><6><5><\r>
t. fumi SP <\0>??????<7><21>`
#?<23>???#???<\0><23>5<16>??????Wy??]?d<\r>dG?<25>Xi?4??????@<22>gEN<16>
3<16>W????????pP?(?R???Sg?\?A<16>I<\0><25><5><5>
reg.caldaia<\0>
<\0>??<\r>?{?<21>[?????8<3>?<4><15>??1?qw????fn<4>G<2>\<\n><\0>W???????<
25>!F<17>D<\b><18>/JU??|?k?g<15><16><9>??
@=E?M????I??<18>?A<16>I<\0><15><1>*
Die Sprache scheint eine lateinische (italienisch?) zu sein, aber es
stört eigentlich wenig.
"stato" = Status, Zustand
"caldaia"= Kessel
"fumi" = Rauch, Abgas...usw.
Da die Fa. Fröling aus Österreich kommt - sind die Süd-tyroler mit
Sicherheit irgendwie mit involviert, mindestens in der Software.
Ich könnte die ein bisschen "durch-sieben", aber leider nicht viel.
Ich glaube - die einzigen freie Daten sind die M A Parameter und was den
Rest betrifft sollte man in eine tiefere Ebene rein.
Danke und bis Bald.
Hallo Tom könntest du mir deinen C Code auch schicken ich würde es mir auch mal anschauen. Welchen Controller hast du vor zu verwenden ? Ich bin daran das auf dem Atemega 8 auf zu bauen und mit einem 2 Zeilen Display anzuzeigen. Als Pegel Converter nehme ich den MAX232 Danke
Mahl Zeit Michael, bitte , ich bräuchte Deine E-Mail Adresse - meine ist schon angezeigt (s. oben) - die Geschichte mit der Heizung werde ich Dir gerne erzählen. Nichts besonderes NUR lang. Die Fröling 3000 Turbo, S3100 Steuerung läuft seit 2008, schön & brav, kleine E-Teile gewechselt, aber "im Rahmen" so zu sagen. Es ist nicht eine P2 - sondern ich bringe direkt die "Bäume" drin!! Ich bin oft beruflich unterwegs und es fehlt mir manchmal einfach die Zeit. SG Tom
Hallo zusammen, ein gewisser "p2_im_keller" hat mich auf diesen Thread aufmerksam gemacht. Ich habe vor einiger Zeit schon in einem ganz anderem Forum zu diesem Thema meine Sourcen veröffentlicht und tue das gerne hier wieder. Im Anhang ist ein Zip file mit 2 Projekten "PC" ist ein simples Konsolen-Programm um über eine serielle Schnittstelle die Lambdatronic S3100 meines Fröling p2 Kessels auszulesen. Das 2. Projekt benutzt die selbe Softwarebasis und läuft auf einem AVR NET IO board, das es bei Pollin zu kaufen gibt, also auf einem AT MEGA32. Die NET_IO liest die Heizungsdaten über die serielle Schnittstelle und gibt Sie dann in Form einer Webseite über die Ehternetschnittstelle aus (basierend auf Ulrich Radigs Webserver) In dem ZIP file ist ausserdem eine Readme-Datei in der ich relativ viel über die beiden Projekte beschreibe. Also bitte unbedingt zuerst diese ReadMe gründlich lesen. Nachdem ich mich hier in diesem Board selbst schon oft bedient habe, freue ich mich, wenn der eine oder andere vielleicht etwas mit meinen sourcen anfangen kann... Markus
Da klingt ja alles echt super ! @Tom meine Mail ist:(moxel83@web.de)
Hallo Markus, es ist sehr nett und hilfreich!! DANKE für die Unterstützung.
@ Markus, was ist aus dem Fröling-Forum "froeling.foren-city.de" geworden, warum ist es nicht mehr erreichbar ? gruss, p2_im_keller
Keine Ahnung was aus dem Forum geworden ist. Ich kam plötzlich auch einfach nicht mehr drauf... Im Anhang nochmal ein Projekt, das vielleicht interessant sein könnte. Das Projekt basiert wieder auf dem Fröling-Auslesemechanismus, den ich in den Projekten 2 Posts weiter oben schon verwende. Diese Projekt hier läuft aber auf einem AT Mega8. Es sammelt die Froeling Daten über die serielle Schnittstelle und stellt sie dann über das I2C Interface zur Verfügung (Ich sammle das dann zusammen mit anderen Daten mit einem ATMEGA32 als I2C Master auf). Mit etwas Codeänderung kann man die Daten aber auch leicht auf einem LCD anstelle des I2C Interfaces darstellen... Gruß Markus
Hallo, super Informationen in diesem Exchange! Endlich sehe ich Licht am Ende des Ansteuerungstunnels. Zwei Fragen dazu: 1.) Bedeutet P2 Kessel, dass ich eine Lambdatronic 3100 Steuerung habe? 2.) Welche Pegel verwendet diese? Ich sehe vier Kontakte: GND, TxD, RxD und US+ Ich nehme an, letztere ist eine Spannungsversorgung. Zwischen US+ und GND messe ich aber 13V! Welche Pegel haben TxD, RxD? Danke!
TxD und RxD haben RS232-Pegel, d.h. passenden Treiber MAX232 für TTL benutzen. Ich habe einen P2 und der hat die Lambdatronic 3100. Ich meine ab dem P4 ist es die Lamnbdatronic 3200, die hat ein anderes Protokoll, gibt es aber auch Infos zu.
Danke für den Tip. RS 232 habe ich nachgelesen hat Potentiale zwischen +3V und +12V. Ich möchte die Überwachung mit einem Raspberry Pi realisieren. Der hat 3,3 V. So muss ich wohl in 2 Stufen arbeiten, zuerst um mit dem Max 232 um auf 5V zu kommen, dann mit dem bob 11978 https://www.sparkfun.com/products/11978 Den habe ich bereits zwischen Pi und Arduino (5V) erfolgreich im Einsatz. Übrigens habe ich mit dem Pi schon 2 nette Überwachungen laufen: 1. Ich polle den Störkontakt und weiss somit über Störungen bescheid und kann eine Notification absetzen (ist offensichtlich). 2. Ich habe in den Saugzugmotor der Raumaustragung ein Relais eingebaut. Damit habe ich auch hier einen potentialfreien Kontakt. Den frage ich im Sekundentakt ab & kenne somit die Motorlaufzeiten (Entprellungslogik in der Software ist wichtig). Daraus kann man einiges an Infos ableiten: a) Verstopfte/Leere Düsen erkennen Bei mir braucht der Tagestank ca. 4 min bis er befüllt ist (falls er leer war). Ist nach 8 min saugen der Tagestank noch nicht voll so wird zur nächsten Düse gewechselt. Ich sehe im Protokoll ob eine Düse leer/verlegt ist! Nämlich immer dann wenn die Maximalzeit erreicht ist. Meines Wissens kann ich per direktauslesen nicht an diese Info kommen. Die 8 min habe ich übrigens selbst eingestellt. Früher waren es 15 min. Ist eine Düse leer/verstopft so steigt der Stromverbrauch eklatant. Weil nämlich nach jedem 10. saugen der Motor 15min leer durchlauft. (Jede Düse wird 5x benutzt, dann wird zur nächsten gewechselt damit die Tankentleerung regelmässig erfolgt, ausser das nachladen Tagestank war nicht erfolgreich dann wird gleich weitergeschaltet). b) Natürlich erkenne ich auch den ungefähren Tagesverbrauch daraus (1 min saugen entspricht (bei mir) ca. 25% Tagestankverbrauch). Aber nun geht es trotzdem an die Direktauslesung :-)
> Schau Dir mal den MAX3232 Baustein an. Super Tip & da habe ich auf der TI Seite folgendes gefunden: Recommended Alternative Parts: TRS3232E - The device has the SAME FUNCTIONALITY/PINOUT as the compared device but includes enhanced IEC61000-4-2 ESD Protection. (Quelle: http://www.ti.com/product/max3232) also: http://www.ti.com/product/trs3232e&lpos=See_Also_Container&lid=Alternative_Devices Das scheint der Baustein meiner Wahl zu sein, fragt sich nur noch wo ich ihn beziehen kann. lg, wolf
Hallo wolf, wie hast du das mit dem raspberry pi realisiert? bist du schon weiter gekommen? hast du vielleicht ein beispiel für mich/uns? vielen dank! grüße Stefan
Hallo Markus, vielen Dank für deine PC-Software zum Auslesen der Steuerung P3100. Die übersetzte Binärdatei läuft unter Windows ja wunderbar. Allerdings würde ich das Ganze gerne auf auf eine Linux-PC bzw. auf einem Raspberry Pi mit Raspbian laufen lassen. Doch leider bin ich nicht in der Lage, die Datei froeling_test.c zu übersetzen, obwohl ich ReadMe.txt (betrifft wohl im wesentlichen das AVR NET IO board) aufmerksam gelesen und versucht habe, einige Anpassungen vorzunehmen. z.B. in Makefile: Pfad des Compilers Namen der Binärdatei in froeling_test.c: #define LINUX statt #define WINDOWS Backslash durch Slash #include <curses.h> statt #include <conio.h> #include <windows.h> in Kommentare gesetzt int hCom; statt HANDLE hCom; erste Fehlermeldung: froeling_test_linux.c:461:17: error: storage size of ‘options’ isn’t known Vielleicht weisst du oder jemand anders hier, wie ich den Quelltext des Konsolenprogrames ändern muss, damit ich ihn auf einem Linux-PC bzw. einem Raspberry Pi übersetzten und nutzen kann. Danke, Jan P.S.: Man könnte dein Windowsbinary natürlich mit wine laufen lassen, aber aufgrund des ARM-Prozessors wird das auf dem Raspberry Pi natürlich nicht klappen.
Hallo Jan, freut mich, dass noch wer meine Software gebrauchen kann. Die Implementierung der Codeteile mit dem LINUX Compilerswitch ist tatsächlich total unvollständig, da ich das nie gebraucht habe. Ich habe alles auf Win ausprogrammiert und dann auf den AVR portiert... Um das Ganze auf Linux zum Laufen zu bringen muss man einiges umstellen, manches hast Du eh schon entdeckt: - Im make den richtigen compiler aktivieren TOOL = /usr/bin/ - In den Quellen den Linux Compiler-Switch einschalten und Windows ausschalten: //#define WINDOWS #define LINUX Und jetzt halt noch alles das unter Linux ausprogrammieren was ich noch nicht gemacht habe ;-): - Die Unterschiede zwischen Linux und Win liegen hauptsächslich im Hardwarezugriff, also alles was die serielle Schnittstelle betrifft wird etwas unterschiedlich programmiert, und in der Bilschrirmausgabe, also z.B. das Hin- und Herspringen auf dem Bildschirm mit GotoXY() usw. Ich habe die froeling_test.c mal soweit angepasst, dass man sie unter Ubuntu14 übersetzten und das binary starten kann (Siehe Anhang). Ich habe nicht getestet, ob ein Kommuikationsaufbau mit dem Brenner funktioniert, da meine Fröhling anderweitig verkabelt ist... Außerdem hab ich einiges deaktiviert (siehe alle //todo Kommentierungen im Quelltext) Es gibt also noch Einiges zu tun, aber für dich mal als Einstiegshilfe ist dieses Programm zumindest schon mal übersetzbar und eigentlich sollte die Kommunikation auch klappen. Auskommentiert ist vor allem die strukturierte Bildschirmausgabe, d.h. wenn das Programm mal läuft, wird er die Werte irgendwie wirr auf der Konsole rausgeben. Ausserdem hab ich das 2. File "print_log.c" komplett rausgenommen (ist im make auskommentiert und wird nicht mal mehr übersetzt und gelinkt) Die Teile darin sind aber sowieso nur da um die Kommunikationsdaten in ein Log-File auf der Festplatte zu schreiben - ich denke das brauchst Du im Moment eh nicht. Wie gesagt, noch viel zu tun, aber vielleicht konnte ich Dir beim Start ein bisschen weiterhelfen Schöne Grüße Markus
Hallo Markus, erst einmal recht herzlichen Dank für die Linuxversion. Sie lässt sich problemlos auch unter OpenSuSE 10.1 und 12.3 sowie Raspbian übersetzen und ist damit wirklich eine gute Einstiegshilfe. Ich habe noch einiges daran herumgeschraubt, z.B. die Bildschirmausgabe (ohne ncurses, da müsste ich mich erst richtig einarbeiten) und die Ausgabe in eine tägliche Datei, um die Daten extern mittels Shellkommandos in eine MySQL-Datenbank zu integrieren. Ich hänge den aktuellen Stand hier an. Bitte habt Nachsehen. Lang ists her, dass ich in C programmiert habe. Es wird wohl keinen Preis Eleganz geben. Aber eine kuriose Sache möchte ich noch erwähnen. Die Kommunikation mit der Heizung klappt oft erst nach vielen Anläufen. Entweder reagiert die Heizung gar nicht auf Send_Msg("Ra") oder sie hört nach etwa 20 Zeilen auf, Daten zu senden. Aber wenn die Heizung mal Daten liefert, dann ohne Ende und ohne den kleinsten Fehler. Ich hielt das anfangs für einen Hardwarefehler (uralt Notebook unter OpeSuSE 10.1), aber ich habe dieses Verhalten nicht beobachtet, wenn ich das Windwosbinary mittels wine unter Linux ausführe. Ich habe recht planlos an den ganzen Optionen der OpenComPort-Funktion gedreht. Ohne Erfolg. Vielleicht gibt es hier jemand, der eine Idee hat, woran das liegen kann. Zwei Fragmente der Bildschirmausgabe von strace findet man im Anhang, aus denen ersichtlich wird, dass beim Lesen von der seriellen Schnittstelle nichts mehr ankommt (Abbruch jeweils mittels CTRL-C). Wenn ich einen USB-Seriell-Konverter habe, werde ich das natrülich auch am Raspberry Pi ausprobieren und hoffe, dass es eben doch ein Hardwareproblem meines uralt Laptops ist. Fernziel ist es, irgendwann ein System wie hier http://bashy.homepage.t-online.de/status.html zu basteln. Falls ich das jemals schaffen sollte, melde ich mich wieder hier. Schöne Grüße und vielen Dank, Jan
Hallo Jan, na also - klappt doch. Das mit Deinen Kommunikationsproblemen kann ich auch nicht erklären. Muss wohl irgend ein Timeoutproblem sein. Aber schwer zu sagen. Wie gesagt, meine AVR-NetIO läuft seit mittlerweile 3 Jahren problemlos, und das völlig ohne Betriebssystem, direkt auf einem ATmega 8 Microcontroller. Die Comport Parameter sind 8N1 also 8Bit, NoParity, 1 Stopbit, und das Ganze mit 9600 Baud. Übrigens braucht man für den Raspberry nicht unbedingt einen USB converter (Die Dinger haben mir schon oft Ärger gemacht) Der Raspberry beinhaltet einen UART onboard: http://lavalink.com/2012/03/raspberry-pi-serial-interfacing/ Die Pegel auf dieser Schnittstelle sind allerdings nur TTL also +5V. Für die Anbindung an die Fröhling benötigt man RS232 Pegel mit +/-12 Volt das geht aber einfach mit einem MAX232 Chip, entweder selbst entwerfen oder z.B. hier ein Modul bestellen: http://www.pollin.de/shop/dt/MzY5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_RS232_TTL_Wandler.html Wie gesagt: Vorteil ist der onboard USART macht normalerweise nie Probleme. Schöne Grüße Markus
Hallo Markus, danke für das Programm und die Mühe die Kommunikationsparameter zu bestimmen. Hallo Jan, hatte das gleiche Problem. Genauere Analysen zeigten, dass manchmal ein Byte nicht übtertragen wurde (meißt das Byte für die Länge der Kommunikation). Habe mit den UART-Parametern experimentiert. Ich sichere die originalen Parameter und setzt die benötigten Parameter direkt (siehe Sourcecode), dadurch läuft nun das Programm bei mir unter Kubuntu 14.04 und auf dem Raspberry PI (mit einem USB FTDI Adapter ->/dev/ttyUSB0) ohne Probleme. Gruß, Hans
Hallo an alle, bei mir läuft, aus welchen Gründen auch immer, das Programm nun auch stabil. Um das Ganze auch sinnvoll zugänglich zu machen, habe noch ein "webinterface" eingebaut. Wen es interessiert, kann sich das Archiv herunterladen und den screenshot bzw. die README Datei ansehen. LG, Jan
Hallo ich versuche gerade Daten die ich von der Heizung bekommen auf ein LCD zu schreiben. 2*16 Zeichen. Dazu verwende ich die Routine von Ulrich Radig. Nur jetzt habe ich ein Probelm ich habe in einem Array die Zahlen und weis nicht genau wie ich die am besten aneinander reihen kann und umwandeln um später auf dem LCD zB. "16:05:03 Uhr" zu haben. Wie groß muss ich den String definieren ?
Hallo zusammen jetzt habe ich nach fast 2 Jahren meine Heizungsanzeige am laufen. Die Daten werden auf einem 2*16 LCD angezeigt und mit zwei Tastern lässt sich durchblättern. Drei weitere LEDs dienen um schnell einen Überblick über den Zustand der Heizung zu haben. Desweitern können die Daten Problemlos überall über eine Webpage abgerufen werden. Ich habe evtl. noch vor einer Erweiterung mit Datenspeicherung auf SD Karte oder ein Wochendiagramm auf der Webpage aber das dauert noch. Als Grundlage dient das AVR NET IO Board. Und noch vielen DANK an alle Leute die mir geholfen haben oder einen Quellcode zur Verfügung gestellt haben. DANKE
Hallo und sorry dass ich diesen alten Thread wieder herauskrame, aber ich bin derzeit ebenfalls brennend daran interessiert, die Daten meiner S3100 auszulesen. Ich bin eher aus der Informatik-Ecke, sollte also mit der Programmierung weniger Probleme haben, dafür aber leider mit der Elektronik... also bitte entschuldigt die Anfängerfragen. Benötige ich denn unbedingt das im Thread benannte MAX232-Modul oder kann ich auch direkt mit z.B. einem Raspberry Pi, einem Arduino oder auch mit einem PC an die serielle Schnittstelle der S3100 gehen? Habe ich der Anleitung für Servicetechniker richtig entnommen, dass die serielle Schnittstelle irgendwo auf der unteren Platine sitzt? Hatte leider noch keine Zeit, mir die Steuerung von innen anzusehen. Kommt man denn dort problemlos dran um die Verbindung herzustellen? Und sollte man beim Anschließen irgendetwas beachten, z.B. Heizung vorher stromlos machen o.ä.? Habe ein wenig Angst irgendwas kaputt zu machen... Vielen Dank für eure Hilfe... ist übrigens ein super Forum hier! :-)
der P2-Kassel hat eine echte RS232-Schnittstelle, also bitte Pegelwandler verwenden. Der Anschlussstecker sitzt auf der grossem Hauptplatine, von vorne gesehen rechts. Er ist auch mit Rx und Tx beschriftet.
Hallo Markus, die Steuerung Lambdatronic S3100 gehört doch zum Fröling P4, oder? Die wird anders (viel einfacher) angesteuert als die P3100. Wenn du den P4 mit einem USB-seriell Adapter o.ä. an einen Raspberry Pi anschließt, schreibt die P4 die Daten einfach in /dev/tty<irgendetwas>, die sich dann mit cat o.ä. auslesen lassen. Aber 100%-ig sicher bin ich mit nicht, da ich einen P2 mit P3100 habe. Sie doch mal hier nach: http://bashy.homepage.t-online.de/status.html Unter "howto" findest du vielleicht ein paar hilfreiche Infos. Gruß, Jan
Hallo Jan, es handelt sich um einen Fröling Holzvergaser FHG 3000 mit Steuerung S3100, ca. 10 Jahre alt. Ich dachte um die S3100 geht es auch im obigen Thread? EDIT: Habe mir deinen Link mal angeschaut, dort wird ja mit einem Prolific USB-Serial-Adapter gearbeitet. Ich weiß aber nicht genau, ob so ein Adapter das Signal ähnlich wie der MAX232 umshifted. Ich möchte gern mit einem Mikrocontroller an die S3100, der definitiv nur 5V bzw. 3.3V verträgt. Also gibt denn die S3100 nun ein einfaches TTL-Signal aus oder ist es tatsächlich ein ECHTES RS232-Signal? Kann dazu jemand eine definitive Aussage treffen? Viele Grüße Marcus
:
Bearbeitet durch User
Lambdatronic schrieb: > der P2-Kassel hat eine echte RS232-Schnittstelle, also bitte > Pegelwandler verwenden. Insbesondere, da die Max232 nicht nur Pegelwandler sind, sondern das Signal auch noch invertieren.
Hallo Marcus ich habe das ganze mit dem AVR NET IO umgestetzt hier war wirklich nicht mehr viel zu tun, ausser die Software anzupassen. Quellcode habe ich weiter oben mal gepostet. Bei mir läuft die Anwendung seit einem Jahr ohne Probleme. Ich kann jetzt die Kesseldaten an allen Browser fähigen Geräten abrufen. (Handy, TV, Laptop) Als direkte Anzeige an der Platine reicht mir ein 2*16Zeilen Display und zwei Taster mit denen ich durchschalten kann. Zusätzlich habe ich noch 3 LEDs dran um die Zustände direkt anzuzeigen. Grüße
Hallo zusammen, ich bräuchte noch einmal eure Hilfe beim Auslesen der Daten von meiner Lambdatronic P1000. Ich habe das hier gepostete Programm für den ESP8266 portiert, ein kleiner Mikrocontroller mit integriertem Wifi und TCP/IP-Stack. Der µC gibt ein sauberes "Ra" auf der TTL-Schnittstelle aus, welches ich auch am Laptop empfangen kann, wenn ich direkt per TTL an den µC gehe. Allerdings habe ich zur Verbindung mit dem Heizkessel dem µC ein MAX3232 (ESP8266 arbeitet mit 3.3V) nachgeschaltet, um ein RS232-Signal zu erhalten. Das konnte ich auch schonmal sauber am PC empfangen, allerdings hab ich beim Anschluss an die Heizung keine Daten von dieser erhalten. Beim erneuten Anschließen am PC kam über den MAX3232 nur noch Kauderwelsch am Laptop (über einen USB-RS232-Adapter) an. Ich weiß leider nicht mehr genau, wie ich es anschlossen hatte, als ich ein sauberes Signal bekam. Ich habe schon verschiedene Spannungsquellen versucht (externes Netzteil, USB am Laptop), dies hatte jedoch keinen Erfolg. Habt ihr noch eine Idee, warum kein sauberes Signal (mehr) vom MAX3232 kommt? Wenn ich das Signal direkt am ESP8266 über TTL abgreife, sehe ich nachwievor das "Ra". Vielen Dank für eure Hilfe!
Hallo noch einmal, bitte entschuldigt meinen letzten Beitrag, der war vermutlich wenig aussagekräftig um irgendwelche Fehlerdiagnosen zu stellen. Dieses Problem konnte ich mittlerweile zum Glück selbst lösen, meine ESP8266 "spricht" nun anstandslos über RS232 mit meinem PC. Leider funktioniert die Kommunikation mit der Fröling immer noch nicht, aber ich konnte das Problem vermutlich schon eingrenzen - stehe aber trotzdem gerade noch auf dem Schlauch. Ich habe testweise die PC-Version der FroelingSoftware zur Ermittlung der Parameter laufen lassen und an einem anderen COM-Port dessen Ausgabe analysiert. Im seriellen Monitor taucht dabei ein String in der Art "Raящ®" auf, was sicherlich dem HEX-Code "52 61 03 00 ff f9 02 ae" entsprechen sollte, denn dieser taucht auch im Log des PC-Programms auf und damit klappt auch die Kommunikation mit der Froeling problemlos, es werden alle Parameter korrekt angezeigt, wenn mit dem Heizkessel verbunden. Nun war ich der Meinung, dass mein ESP8266 als ersten Befehl ja auch diesen String "Raящ®" über die serielle Schnittstelle schicken müsste, da der entsprechende Teil im Quellcode ja mit dem der PC-Version übereinstimmt. Also schloss ich es einfach per USB-RS232-Adapter am Laptop an und lauschte auf dem entsprechenden COM-Port. Dort kam jedoch nur ein "Ra" und eine Art Zeilenvorschubzeichen an. Ich konnte durch Probieren schon herausfinden, dass es irgendwie mit den HEX-Werten 0x03 (ETX) und 0x02 (STX) in der Ra-Message zusammenhängt, denn wenn ich diese testweise einfach im Code des ESP8266 weg lasse, kommt zumindest etwas wie "Raящ®" auf dem COM-Port an, also im Grunde die komplette Nachricht wie auch beim PC-Programm, nur ohne die von mir absichtlich entfernte 02 und 03 (3. und 7. Byte). Ich verstehe leider nicht, warum die Nachricht vom ESP8266 scheinbar abgeschitten wird, obwohl sie ja im Quellcode auf die selbe Art und Weise wie in der PC-Version generiert wird. Ein Hardware-Problem schließe ich aus, da ich es schon sowohl über die RS232-Schnittstelle als auch direkt vom TTL des ESP8266 untersucht habe, und das ganze sowohl mit dem HardwareSerial des µC als auch mit der SoftwareSerial-Variante, das Ergebnis ist immer der gleiche abgeschnittene Ra-String auf dem COM-Port. Liegt das Problem vielleicht in der Nutzung der Arduino-ESP8266-Bibliotheken, haben diese vieleicht ein Problem mit den HEX-Werten 0x02 und 0x03? Wie gesagt, wenn ich diese beiden weglasse, kommt zumindest der Rest der Nachricht komplett an. Ich habe den gesamten Teil des Quellcodes aus der originalen froeling_com.c, welcher mit der UART-Kommunikation zusammenhängt, weggelassen, und nutze einfache die HardwareSerial bzw. SoftwareSerial-Funktionen aus den Arduino-ESP8266-Libraries für die serielle Kommunikation. Sorry wenn das hier möglicherweise eine absolute Anfängerfrage ist, aber ich habe leider nich nicht so viel Erfahrung mit Mikrocontrollern und komme hier einfach nicht weiter. Ich bin nun aber schon so weit gekommen und möchte nicht kurz vor dem Ziel aufgeben. Daher wäre ich für jede Hilfe dankbar! Viele Grüße Marcus
Okay, das Problem hat sich soeben geklärt! Irgendwie wurden die Bytes für die User-ID nicht korrekt gesetzt. Habe diese jetzt hart reingeklopft und nun funktioniert es! Empfange Daten der Heizung per WLAN!
Hallo nochmal, weiß zufällig jemand von euch, ob man den "US+"-Pin auf dem Fröling-Board am Anschluss für die Bedienerweiterung als Spannungsquelle für kleine Verbraucher nutzen könnte? Würde dort gern für mein kleines Board über einen nachgeschalteten Spannungsregler 5V mit einem Strom von max. 200-300 mA abgreifen, um möglichst auf ein externes Netzteil verzichten zu können. Ist das zuviel für den Anschluss am Board oder hält er das aus? Danke für eure Hilfe!
Hallo, erstmal vielen, vielen Dank für die Beiträge aus diesem Forum! Mithilfe der Dateien des Zips "froeling_p3100_logger_auf_raspberry_pi.zip" konnte ich bei mir auf einem Raspberry Pi 3 die Visualisierungssoftware für eine Fröling P2 zum Laufen bekommen. Vielleicht noch ein paar Hinweise an Leute die das Gleiche vorhaben. Ich hab mir den seriellen Adapter (RS232 Erweiterungs-Platine für den Raspberry Pi) besorgt. Damit man diesen ans Laufen bekommt muss man den Adapter "ttyAMA0" aus der Datei "/boot/cmdline.txt" entfernen. Zusätzlich muss man Bluetooth deaktivieren weil dieses auf den gleichen GPIOs liegt. Dazu in der Datei "/boot/config.txt" am Ende diese Zeile hinzufügen: "dtoverlay=pi3-disable-bt". Im Zip ist die Datei "froeling_p3100_logger.c" enthalten. Dort musste ich auch ein paar Veränderungen vornehmen. Zum einen musste ich in der Liste der ComPorts die serielle Schnittstelle "/dev/ttyAMA0" hinzufügen, zum anderen hab ich festgestellt dass bei mir die Indizes anders sind wie im File. Z.B. ist die "Puffert.ob" auf Index 13 und ich musste die Anpassungen (svalue = svalue / 2.0) für die einzelnen Indizes verändern. Das Anpassen der Einträge musste ich ebenfalls noch in der "Status.sh" nachziehen.
Hallo! Auch von meiner Seite mal vielen Dank an die Hinweise in diesem Forum! Ich habe fast die gleichen Voraussetzungen wie Robert (Lambdatronic S3100 und Raspi2 als Mikrocontroler). Daher habe ich mich motivieren lassen, auch meine Daten auszulesen. Mein Endziel wäre die Daten an Fhem zu schicken. Ich bin zwar technisch versiert, stehe jetzt aber leider schon an. Was ich erledigt habe: - Kabel von Kessel zu Mikrocomputer gelegt. An der Lambdatronic ist an diesem Port bisher mein Raumbediengerät gewesen. Ich weiß nicht, ob ich daher in der Lambdatronic etwas umstellen muss? - Ich habe am Raspi eine RS232 Erweiterung angeschafft. Muss ich dann noch einen Pegelwandler einsetzen oder passt das dann schon zusammen? - Obige Punkte von Robert habe ich ausgeführt (den ttyAMA0 Adapter habe ich hinzugefügt, kompiliert und ausgewählt. Mein Problem ist, dass wenn ich den Befehl ausführe nur der Ra Befehl geschickt wird und nichts weiter... Es würde mich sehr freuen, wenn mir mit meinem Problem jemand helfen könnte. LG Stefan
Hallo Stefan, meines Wissens muss man an der Heizung nix umstellen. Ich habe letzten Donnerstag ein neues Bedienteil bekommen. Der Servicetechniker hat sich auch mit der Fröling-SW einfach an die Bedienerweiterung "gestöpselt" und ausgelesen. Ich habe nun die Version v24.20 (vorher v24.17) und es kommt mir so vor, dass der M1-String von der Lambdatronic jetzt etwas anders ist. Hat jemand ähnliches festgestellt oder kann mal zeigen an welcher Stelle man welche Werte im String findet ? Ich habe mal angehängt wie es bei v24.17 bisher war. Gruss aus Hessen
Problem gefunden: vor der Aussentemperatur liegt der Wert "Puffer Pu.". Konnte ich erst im P2-Menü sehen als ich auf SERVICE umschaltete. Für was der Wert ist oder ob beim Einbau der neuen Bedienplatine ein Parameter nicht so eingestellt wurde wie vorher kann ich nicht sagen. Am Montag kommt ein Fröling-Techniker, da werde ich der Sache mal auf den Grund gehen.
"Puffer Pu." ist der Wert mit dem die Pufferladepumpe (auf der Frontplatte die LED "Pumpe 2) angesteuert wird. Im Menü von 0...100%
Hallo und vielen Dank für die tollen Einträge. Mit der Datei froeling_p3100_logger_auf_raspberry_pi.zip ist es mir auch gelungen die Heizungsdaten dauerhaft auszulesen. USB-dongle (Manhattan)mit RS232. Meine Ergänzung ist in der Anlage enthalten: ein Alarm der eine E-mail absendet sobald ein Grenzwert erreicht ist (frei wählbar aus actual_data, das Einlesen der Messdaten in eine rrd-Datenbank und das Füllen von Grafikdateien auf Basis dieser Datenbank, Vollbackup. Lange nicht so schön wie bei bashy, aber ich habe was gelernt und es funktioniert. Vielleicht kann das euch auch weiterhelfen.
Markus K. schrieb: > Hallo zusammen, > > ein gewisser "p2_im_keller" hat mich auf diesen Thread aufmerksam > gemacht. Ich habe vor einiger Zeit schon in einem ganz anderem Forum zu > diesem Thema meine Sourcen veröffentlicht und tue das gerne hier wieder. > Im Anhang ist ein Zip file mit 2 Projekten "PC" ist ein simples > Konsolen-Programm um über eine serielle Schnittstelle die Lambdatronic > S3100 meines Fröling p2 Kessels auszulesen. Das 2. Projekt benutzt die > selbe Softwarebasis und läuft auf einem AVR NET IO board, das es bei > Pollin zu kaufen gibt, also auf einem AT MEGA32. Die NET_IO liest die > Heizungsdaten über die serielle Schnittstelle und gibt Sie dann in Form > einer Webseite über die Ehternetschnittstelle aus (basierend auf Ulrich > Radigs Webserver) In dem ZIP file ist ausserdem eine Readme-Datei in der > ich relativ viel über die beiden Projekte beschreibe. Also bitte > unbedingt zuerst diese ReadMe gründlich lesen. > > Nachdem ich mich hier in diesem Board selbst schon oft bedient habe, > freue ich mich, wenn der eine oder andere vielleicht etwas mit meinen > sourcen anfangen kann... > > Markus Hallo bin neu hier, bin durch Zufall auf das Forum gestoßen, weil ich vorhabe meine Holzvergasser Heizung mit der S3100 Lambdatronic mit dem AVR-NETO auszulesen. Habe mir das Programm auf meinem NETIO gebrannt und angepasst für die Webpage. ( Markus vielen Dank dafür ). Das funktioniert auch alles, nur werden ein paar Werte in der Webpage falsch dargestellt. Wenn ich diese Werte durch 2 Teile, dann passt der Wert mit der Heizung überein. Jetzt meine Frage: Wo sind die Variablen für die Einzelnen Werte, damit ich mit diesen arbeiten, bzw rechnen kann. Wenn mir da einer weiterhelfen könnte wäre super, und würde mir wahnsinnig helfen. Vielen Dank schon mal. MFG Daniel PS: Kann keine Dateien anhängen: Software ist die von Markus mit dem Namen FroelingSoftware.zip
Hallo bin neu hier, bin durch Zufall auf das Forum gestoßen, weil ich vorhabe meine Holzvergasser Heizung mit der S3100 Lambdatronic mit dem AVR-NETO auszulesen. Habe mir das Programm von Markus K. auf meinem NETIO gebrannt und angepasst für die Webpage. ( Markus vielen Dank dafür ). Das funktioniert auch alles, nur werden ein paar Werte in der Webpage falsch dargestellt. Wenn ich diese Werte durch 2 Teile, dann passt der Wert mit der Heizung überein. Jetzt meine Frage: Wo sind die Variablen für die Einzelnen Werte, damit ich mit diesen arbeiten, bzw rechnen kann. Wenn mir da einer weiterhelfen könnte wäre super, und würde mir wahnsinnig helfen. Vielen Dank schon mal. MFG Daniel PS: : Software ist die von Markus mit dem Namen FroelingSoftware.zip aus folgendem Thread: Beitrag "Fröling Heizungssteuerung auslesen."
Hallo Daniel, hast weiter oben das Bild <M1_String.jpg> gesehen? Dort habe ich alle Werte und Ihren "Faktor" eingetragen.
Hallo Daniel, das scalieren der Rohdaten geschieht in diesem Beispiel in der Datei froeling_com.c ab der Zeile 201. Da heißt es: // scale some values switch(i){ case 4: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 22:{sValue = sValue >> 1;break;} case 11:{sValue = sValue / 207;break;} } Heißt, dass die Prozesswerte 4,12,13... bis 22 um ein bit nach rechts verschoben werden (sValue >> 1) was einer Division durch 2 entspricht. Der Prozesswert Nr 11 wird durch 207 geteilt (sValue / 207) Hier könntest Du Deine Prozesswerte, die noch nicht stimmen auch mit aufnehmen. Danach musst Du natürlich no compilieren und ein neuer HEX file erstellen. Schönen Gruß Markus
Markus K. schrieb: > Hallo Daniel, > > das scalieren der Rohdaten geschieht in diesem Beispiel in der Datei > froeling_com.c ab der Zeile 201. Da heißt es: > > // scale some values > switch(i){ > case 4: > case 12: > case 13: > case 14: > case 15: > case 16: > case 17: > case 18: > case 22:{sValue = sValue >> 1;break;} > case 11:{sValue = sValue / 207;break;} > } > > Heißt, dass die Prozesswerte 4,12,13... bis 22 um ein bit nach rechts > verschoben werden (sValue >> 1) was einer Division durch 2 entspricht. > Der Prozesswert Nr 11 wird durch 207 geteilt (sValue / 207) > > Hier könntest Du Deine Prozesswerte, die noch nicht stimmen auch mit > aufnehmen. > > Danach musst Du natürlich no compilieren und ein neuer HEX file > erstellen. > > Schönen Gruß > Markus Guten morgen Markus, super, vielen Dank, hab das gestern gleich noch ausprobiert und meine Daten richtig skaliert. Funktioniert einwandfrei. Danke dir nochmal für deine Mühe für das Programm, das ist genau das was ich wollte ;-). MFG Daniel
Hallo miteinander, Wir haben einen Fröling Kessel mit der P3100 Steuerung, seit ca. einem Jahr läuft ein Raspberry Pi, der die Kesseldaten ausliest. Das Programm, das ich dazu nutze ist das C Programm von mkot, in der Version von Jan S. (siehe Beitrag #3964290) Anlass für die Überwachung war die Überprüfung auf Handlungsbedarf, insbesondere wenn beim Pelletskessel die Tür aufgedrückt wird, da die Aschebox voll ist, und man nicht auf die Rückmeldung warten will, dass es irgendwo in unserer Reihenhausanlage kalt wird. Also gibt es ein Bash Skript, das ständig läuft und den Status überprüft, und mir entsprechende e-mails schickt. Im Laufe der Zeit, durch Überwachung des Displays mittels dem Tool "motion" und einer auf das Display gerichteten Kamera und mithilfe des Sourcecodes in diesem Thread Konnte ich folgende Zuordnung zwischen Statusmeldung am Display und Statuscodes machen: Die erste Zahl ist wohl die Betriebsart: 0.0 Winterbetrieb 2.0 Übergangsbetrieb 6.0 Ausgeschaltet ich vermute, das sind die übrigen Betriebsarten: 1.0 Sommerbetrieb 3.0 Scheitholzbetrieb 4.0 Reinigen 5.0 Kaminfeger Die zweite Zahl ist der Betriebszustand: Hier die Werte, die ich selbst ermitteln konnte: 1.0 Brenner Aus 2.0 Anheizen 3.0 Heizen 9.0 Zünden 11.0 Abst. Warten 1 13.0 Abst. Warten 2 vermutlich sind das weitere Betriebszustände: 7.0 Vorbereitung 8.0 Vorwärmphase 12.0 Abst. Einschub 1 13.0 Abst. Einschub 2 15.0 Abreinigen In der Praxis sehen die drei Status dann z.B. so aus: 6.0-1.0-1.0;Ausgeschaltet - Brenner aus 6.0-1.0-3.0;Ausgeschaltet - Brenner aus 6.0-1.0-9.0;Ausgeschaltet - Brenner aus 6.0-1.0-3.0;Ausgeschaltet - Brenner aus 6.0-1.0-9.0;Ausgeschaltet - Brenner aus 6.0-1.0-3.0;Ausgeschaltet - Brenner aus 6.0-1.0-1.0;Ausgeschaltet - Brenner aus 2.0-7.0-1.0;Uebergangsbetrieb - Vorbereitung (?) 2.0-2.0-1.0;Uebergangsbetrieb - Anheizen 2.0-8.0-1.0;Uebergangsbetrieb - Vorwaermphase (?) 2.0-9.0-1.0;Uebergangsbetrieb - Zuenden 2.0-3.0-1.0;Uebergangsbetrieb - Heizen 6.0-11.0-1.0;Ausgeschaltet - Abst. warten 1 6.0-13.0-1.0;Ausgeschaltet - Abst. Warten 2 6.0-4.0-1.0;Ausgeschaltet - unknown 6.0-1.0-1.0;Ausgeschaltet - Brenner aus 2.0-7.0-1.0;Uebergangsbetrieb - Vorbereitung (?) 2.0-2.0-1.0;Uebergangsbetrieb - Anheizen 2.0-8.0-1.0;Uebergangsbetrieb - Vorwaermphase (?) 2.0-9.0-1.0;Uebergangsbetrieb - Zuenden 2.0-3.0-1.0;Uebergangsbetrieb - Heizen 6.0-11.0-1.0;Ausgeschaltet - Abst. warten 1 6.0-13.0-1.0;Ausgeschaltet - Abst. Warten 2 2.0-7.0-1.0;Uebergangsbetrieb - Vorbereitung (?) 2.0-2.0-1.0;Uebergangsbetrieb - Anheizen 2.0-8.0-1.0;Uebergangsbetrieb - Vorwaermphase (?) 2.0-3.0-1.0;Uebergangsbetrieb - Heizen 6.0-11.0-1.0;Ausgeschaltet - Abst. warten 1 6.0-12.0-1.0;Ausgeschaltet - unkown 6.0-13.0-1.0;Ausgeschaltet - Abst. Warten 2 6.0-14.0-1.0;Ausgeschaltet - unknown 6.0-1.0-1.0;Ausgeschaltet - Brenner aus Die Bedeutung der dritten Zahl ist mir noch nicht klar... Besonders interessant sind natürlich die Fehlerzustände, da es dann ja wohl was zu tun gibt, dabei konnte ich bis jetzt folgende Zustände beobachten: 0.0-11.0-7.0 Winterbetrieb - Isoliertuer offen - Aschebox voll 2.0-11.0-7.0 Übergangsbetrieb - Isoliertuer offen - Aschebox voll Heute hatte ich die Anzeige "Lagerraum kontrollieren", zu der Zeit lag an der Steuerung aber der Zustand 6.0-1.0-7.0 an - also "Ausgeschaltet - Brenner aus". Zuvor gab es folgende Sequenz von Status: 08.01.2018;09:50:08;2.0-3.0-9.0;Uebergangsbetrieb - Heizen 08.01.2018;09:50:14;6.0-11.0-7.0;Ausgeschaltet - Isoliertuer offen - Aschebox voll 08.01.2018;10:15:14;6.0-12.0-7.0;Ausgeschaltet - unkown 08.01.2018;10:15:19;6.0-13.0-7.0;Ausgeschaltet - Abst. Warten 2 08.01.2018;10:35:19;6.0-14.0-7.0;Ausgeschaltet - unknown 08.01.2018;10:35:24;6.0-1.0-7.0;Ausgeschaltet - Brenner aus 08.01.2018;12:12:56;2.0-7.0-1.0;Uebergangsbetrieb - unknown 08.01.2018;12:13:01;2.0-2.0-1.0;Uebergangsbetrieb - Anheizen 08.01.2018;12:14:01;2.0-8.0-1.0;Uebergangsbetrieb - Vorwaermphase (?) 08.01.2018;12:16:01;2.0-9.0-1.0;Uebergangsbetrieb - Zuenden 08.01.2018;12:17:36;2.0-3.0-1.0;Uebergangsbetrieb - Heizen 08.01.2018;13:36:27;2.0-3.0-3.0;Uebergangsbetrieb - Heizen 08.01.2018;13:51:27;2.0-3.0-9.0;Uebergangsbetrieb - Heizen 08.01.2018;13:54:02;2.0-3.0-3.0;Uebergangsbetrieb - Heizen 08.01.2018;14:09:02;2.0-3.0-9.0;Uebergangsbetrieb - Heizen 08.01.2018;14:11:32;2.0-3.0-3.0;Uebergangsbetrieb - Heizen 08.01.2018;14:26:32;2.0-3.0-9.0;Uebergangsbetrieb - Heizen 08.01.2018;14:26:38;6.0-11.0-7.0;Ausgeschaltet - Isoliertuer offen - Aschebox voll 08.01.2018;14:51:38;6.0-12.0-7.0;Ausgeschaltet - unkown 08.01.2018;14:51:43;6.0-13.0-7.0;Ausgeschaltet - Abst. Warten 2 08.01.2018;15:11:43;6.0-14.0-7.0;Ausgeschaltet - unknown 08.01.2018;15:11:48;6.0-1.0-7.0;Ausgeschaltet - Brenner aus 08.01.2018;20:35:38;6.0-1.0-3.0;Ausgeschaltet - Brenner aus 08.01.2018;20:36:38;6.0-1.0-5.0;Ausgeschaltet - Brenner aus 08.01.2018;20:36:43;6.0-1.0-1.0;Ausgeschaltet - Brenner aus eventuell versteckt sich die Information über die Meldung "Lagerraum kontrollieren" ja im dritten Status - weiß da ev. jemand wie der zu interpretieren ist? Zur Erklärung: im Lagerraum hatten sich die Ansaugdüsen freigesaugt, und ich musste die Pellets verteilen, die rieseln nicht ganz so gut, wie sich das der Erbauer des Pelletsbunkers gedacht hatte, ich vermute, die pneumatische Pelletsaustragung hat zu einer Öffnung der Tür geführt, da zu viel "gepustet" wurde. vielen Dank für den Sourcecode und etwaige Unterstützung bei meinem Problem. lg Philipp
Hallo miteinander, auch ich bin daran interessiert, die Föling Lambdatronic S3100 auszulesen und die Werte ev. auch in meiner Hausautomatisierung zu verwenden. Jetzt stelle ich mir noch folgende Frage: Wie ich gesehen habe funktioniert die Datenabfrage per RS232 über den gleichen Anschluss an dem auch das RBG dran hängt. Gibt es eine Möglichkeit, beides quasi zusammen zu verwenden? Ich kenne mich elektrotechnisch nicht so aus, habe aber gesehen, dass es so eine Art RS232 Sniffer gibt. Die nächste Frage ist dann natürlich, ob das RBG ständig die Daten abfragt oder ob das nur geschieht, wenn am Display etwas gedrückt wird. Weiß das zufällig jemand? Vielen Dank vorab für eure Hilfe! LG mini25
Hallo, in meinem obigen Bild "M1_String.jpg" sind die Stellen [4][5] und [6][7] mit Fragezeichen benannt. Ich habe fest gestellt dass sich einer der beiden (weiss nicht aber mehr welcher, könnte ich aber nachschauen) sich ändert wenn zum Bsp. Pellets gesaugt werden ist oder eine Störung vorliegt (z.Bsp. Schlüsselschalter). Hat jemand dazu noch was rausgefunden? Gruss aus Hessen.
Hallo, ich hab mir für unsere Fröling vor einiger Zeit ein ähnliches Tool gebastelt und dafür das Protokoll genauer analysiert. Nachdem ich jetzt zufällig gesehen habe, dass es noch immer Leute gibt, die das vielleicht interessieren könnte, habe ich den Source mal zu github (https://github.com/dhoepfl/Radiator) geschoben, hatte ich sowieso vor. Vielleicht hilft es ja mal. Bye, Daniel
Hallo Leute. Entschuldigt das ich den alten Thread hier wieder ausgrabe. Ich hätte die Software gerne auf einer VM mit Ubuntu 20.04 installiert. Der Logger lässt sich auch mit make erstellen, nur die Ausführung bringt folgenden Fehler: Datenausgabe nach stdout aktivert! *** buffer overflow detected ***: terminated Aborted (core dumped) jemand eine Idee an was es liegen kann?? DANKE MATZ
Ich betreibe noch einen der eher wenig verbreiteten Froeling P3 mit S3100. Da ich das Gerät selbst warte würde mir der digitale Zugriff auf die Daten sehr helfen. Am liebsten würde ich die Daten in nodered und MQTT verarbeiten. Radiator von Daniel mit der round robin db wäre eine prima Lösung. Leider konnte ich den daemon nicht mit mariadb und rrdtool starten. (radiator läuft auf meinem PI4 bereits wie folgt ohne Probleme: radiator -o /tmp/S3100.txt /dev/ttyUSB0) Der daemon schreibt leider nicht in die DBs (ich breche dann mit STR-C ab). radiator.conf ist nur bei device angepasst und sollte passen: SERIAL_DEVICE="/dev/ttyUSB0" SQL_BINARY='mysql' VU_SERVER='-' MAIL_SERVER='localhost' MAIL_FROM='<heizung@example.com>' MAIL_TO='<janitor@example.com>' PUSHED_APP_KEY='-' PUSHED_APP_SECRET='-' PUSHED_CHANNEL='-' RRD='/tmp/database.rrd' Wenn ich den daemon starte folgt: root@pi4:/usr/local/bin# sudo radiator_daemon.sh root@pi4:/usr/local/bin# Traceback (most recent call last): File "/usr/local/bin/radiator_sql.py", line 46, in <module> ");").encode('utf-8')) IOError: [Errno 32] Broken pipe ^C root@pi4:/usr/local/bin# Fehlersuche: radiator_sql.log ERROR 1046 (3D000) at line 1: No database selected radiator_rrdtool.log Failed to call rrdtool: ERROR: /tmp/database.rrd: expected 30 data source readings (got 25) from 1622882256 Ich hatte beide setup-scripts rrd und sql bereits laufen lassen. Leider klappt die Datenspeicherung nicht. @Daniel: Vielen Dank für RADIATOR. Funktioniert ansonsten sehr gut. Hast Du einen Tipp?
Hallo, freut mich, wenn jemand mit dem Tool etwas anfangen kann. Zu Deinen Problemen: Das Skript für MySQL/MariaDB ruft einfach das mysql-Tool auf. Dabei wird nicht mitgegeben, welche User/Passwort/Datenbank-Kombination benutzt werden soll. Du kannst entweder das SQL_BINARY in der Config auf ein eigenes Skript umstellen, das mysql dann passend aufruft (mysql --user RADIATOR --password ... RADIATOR) oder (besser) Du konfigurierst es in "$HOME/.my.cnf":
1 | [mysql] |
2 | user="RADIATOR" |
3 | password="..." |
4 | database="RADIATOR" |
Wenn Du in die radiator_setup_rrd.sh schaust, dann siehst Du unten 30 Zeilen, die mit DS beginnen. Diese Zeilen definieren, welche Datensätze es gibt. Das muss dem entsprechen, was radiator jede Sekunde als "[VALUE]" ausgibt (wird aufsteigend sortiert). Bei mir sind das die 30, bei Dir anscheinend nur 25. Das musst Du also anpassen. Das gleiche Problem bekommst Du bei MariaDB, da ist die Tabelle auch auf meine 30 Datenfelder ausgelegt (siehe radiator_setup_sql.sh). Und gleich eine Warnung: Schreib die Daten auf keinen Fall auf die SD-Karte auf dem Raspberry. Ein Update pro Sekunde, das sind über 30 Mio Schreibzyklen pro Jahr. Meine SD hat das nicht lange mitgemacht. Meine Lösung: Ich habe eine RAM-Disk, auf der die RRD liegt (SQL benutze ich nicht - "SQL_BINARY='tail'"), die via cronjob alle 30 Minuten auf ein NAS kopiert wird (bzw. von da geholt wird, wenn sie nicht auf der RAM-Disk vorliegt - nach einem Reboot).
Hallo, > Datenausgabe nach stdout aktivert! > *** buffer overflow detected ***: terminated > Aborted (core dumped) > jemand eine Idee an was es liegen kann?? Spontan: An einem Bug. :-) Hast Du das Problem noch? Wenn Du das Binary und den Core Dump noch hast, dann könntest Du im Debugger mal schauen, wo es abstürzt:
1 | gdb ./radiator core |
2 | (gdb) bt |
3 | (gdb) list |
4 | (gdb) quit |
Alternativ kannst Du radiator auch direkt im Debugger starten:
1 | gdb ./radiator |
2 | (gdb) set args -o - /dev/ttyUSB0 |
3 | (gdb) run |
Nach dem Crash dann:
1 | (gdb) bt |
2 | (gdb) list |
3 | (gdb) quit |
@Daniel: ...und schon funzt's :) VIELEN DANK! Der Unterschied bei mir liegt offenbar in der Konfiguration des P3. Nach Anpassung wie empfohlen erhält RRD und mariadb die Daten. Ich werde auch noch auf reinen RRD - Betrieb umstellen und die RAMDISK aufsetzen. Von dort gehe ich dann noch auf meine node-red-Anzeige für das Monitoring. Ich weiss auch noch nicht, wie ich eine frische Störung in node-red hole. Das muss ich mir auch noch mal genauer ansehen, aber für heute reichts erstmal. Hier meine Werte des P3 Ich bekomme diese Parameter: [TIME] Fri, 2021-06-04, 22:55:40 [VALUE] 00 [] = [übergangsbetr.] [S] (2) [VALUE] 01 [] = [ Brenner Aus ] [S] (1) [VALUE] 02 [Zustand] = [1] [N] (1) [VALUE] 03 [ROST] = [0] [N] (0) [VALUE] 04 [Kesseltemp] = [28°] [N] (55) [VALUE] 05 [Abgastemp.] = [35°] [N] (35) [VALUE] 06 [Abgas. SW ] = [45°] [N] (45) [VALUE] 07 [KessStellGr] = [50%] [N] (50) [VALUE] 08 [Saugzug ] = [0%] [N] (0) [VALUE] 09 [SZ-Drehz.] = [1842U] [N] (1842) [VALUE] 10 [Einschub] = [0%] [N] (0) [VALUE] 11 [Rest-O2] = [1.9%] [N] (19) [VALUE] 12 [O2-Regler] = [100%] [N] (100) [VALUE] 13 [Fuellst.:] = [91.5%] [N] (18948) [VALUE] 14 [Feuerraumt] = [409°] [N] (409) [VALUE] 15 [Puffert.ob] = [46°] [N] (93) [VALUE] 16 [Puffert.un] = [44°] [N] (89) [VALUE] 17 [Boilertemp] = [28°] [N] (57) [VALUE] 18 [KTY6_H1] = [127°] [N] (254) [VALUE] 19 [KTY6_H2] = [127°] [N] (254) [VALUE] 20 [KTY7_H2] = [127°] [N] (254) [VALUE] 21 [Brenn.ST] = [10085] [N] (10085) [VALUE] 22 [Laufzeit:] = [23350h] [N] (23350) [VALUE] 23 [Boardtemp.] = [35°] [N] (35) [VALUE] 24 [Die Kesseltemp. soll sein] = [70°] [N] (140)
Wawa W. schrieb: > ...und schon funzt's :) VIELEN DANK! Na wunderbar! > Der Unterschied bei mir liegt offenbar in der Konfiguration des P3. Nach > Anpassung wie empfohlen erhält RRD und mariadb die Daten. Wundert mich jetzt nicht, dass die P3 andere Daten liefert, als meine P2 … > Ich weiss auch noch nicht, wie ich eine frische Störung in node-red > hole. Das muss ich mir auch noch mal genauer ansehen, aber für heute > reichts erstmal. node-red benutze ich nicht, aber schnell ergoogelt: Ich würde einen flow anlegen, der auf einen eingehenden HTTP-request reagiert. Den kannst Du dann analog radiator_pushed.py erzeugen. Wenn Dir Fehler reichen, dann brauchst dann nur send_error_message, das musst Du halt anpassen, und alles ab (incl. der Zeile) "if timestamp:" kannst Du weglassen. Oder Du machst das ganze als MQTT-Client. Dann auch gleich mit den Daten …
Hello, I am the owner of the Froling FHG Turbo 3000 boiler with s3100 Lambdatronic and I come from Slovenia. I'm reading your discussion (using google translate) about reading data from the boiler. I would like to read the data from my boiler and then display it in the Home Assistant running on Raspberry Pi 4. But RADIATOR would be the right choice for me and then in MQTT which is part of Home Assistant. Can anyone help me how to deal with this. I am a beginner in programming. Thanks
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.