Lambdacheck-Datenlogger für O2-Werte u. AGT

    Du hast Probleme beim Login? Schreibe uns im Forum "Probleme mit der Registrierung".
      • 51

      • # 20254
      Hallo Jürgen,
      ist eine interessante Sache und ich glaube ich weiß schon was ich mache ;).
      Für dieses Projekt aber wahrscheinlich zu spät, bin inzwischen weiter gekommen.
      Konnte meine Elektriker auf Arbeit bequatschen mir ihren TDS220 mal zu leihen,
      damit war das Signal eindeutig vorhanden.Mit cuteCom konnte ich sogar die
      Daten sehen, wie sie eingetrudelt sind und mit cat /dev/ttyUSB0 kam auch was,sah nur sehr mekwürdig aus

      Quellcode

      1. ��=I�3
      2. ��M*;�h;�H:�M(:�j9�J<�K*;�j;�H:�M,:�l=�J8�M,:�j9�J:�K*8�h;�J8�O*8�j;�J:�M*<�j;�H8�K*8�h9�J:��=J�3
      3. ��K(:�h;�J:��=K���M,:�l;�J8�O*;�j;�J:�M*:�jM ��M*;�j;�J<�
      4. [/font][/color][/font][/color]
      5. �=M���K(:�l9�J:�C,8�l=�D:�O(8�j;�J:�O*;�l9�J:�C,8�j=�J:�M*8�h9�L8�K,4�d5�L<�M*<�j=�J:�C,8�j;�J:�O*;�j5�H:�M,8�j=�J8��=I�3
      6. ��M*;�l=�J:�M*;�j;�L:�C,<�j;�L8�M*8�h;�J:�M,8�j9�L:�M*;�j=�H8�M(8�j<�J<�O*:�j8�J:�
      7. �=J���O*8�l;�L<�O*;�h;�L8�M,8�j<�J:�M*;�j=�J:�M(:�j;�H<�M*:�j;�J8�O(:�h;�H8�O(:�j8�L:�O*;�j8�J:�M*;�l:�J:�O*;�h;�J<�O*<�j9�H:�M*��O
      8. ��M*<�j8�J8�C,8�j;�J8�O*8�h;�J:�M*:�j=�L:�K*����"�O*8�h��"�M*<�j;�H:�O*<�j<�J:�
      9. �=M�3 ��M*8�l:�J:�O*;�j;�J<�K(;�l:�L8�O*<�l:�J:�M(;�j8�H:�
      10. �=
      11. ���K(:�l8�J:�O*8�j� ��K*;�j��"�O*<�j8�J<�M*8�h;�J8�K*;�j8�H:�K*�
      12. ���M*:�j:�J:�K(:�h� ��M(����"�M(:�l;�J8�M(;�j:�J:�K*8�j� ��
      13. �=
      14. �3 ��K(:�h;�J:�O*8�j<�J8�M*8�h;�J:�
      15. �= �3 ��
      16. �3 ��M(��M
      17. ��M,;�j:�J:�M,8�l:�H:�M(;�j8�H:�O*8�j<�H:�O*:�h<�J:�M,:�j;�L:�K*����"�M,8�j:�J8�M,:�j:�J:�O*<�j8�H:�M*8�h;�H:�M,<�j<�H:�O*8�h:�H:�K*�
      Alles anzeigen

      Mit cutecom war alles io.
      kurzer Auszug aus dem Programm.

      Quellcode

      1. \0x03\0x18\0xfc\0x8c\0x86\0x0f\0x98\0x0f\0x8c\0x06\0x03f\0x06\0x98\0xf0\0xccx3\0x80\0xcc@\0x9e3\0xc3\0x18\0xf3\0x84\0x86\0x03\0x98\0x0f\0x0c\0x063`\0x00\0x18\0xf0\0x0cx3\0x80\0xcc\0xe0\0xfe\0xcc\0x83\0x18\0xfc\0x8c\0x860\0x98\0x0f\0x8c\0x06\0x03f\0x06\0x98\0xf0\0xccx3\0x80\0xcc`\0x9e3\0xe1
      .
      Heute
      ist wieder alles anders es kommt absolut nichts.Kann heute auch nicht
      mehr nachvollziehen was anders ist,mache in meinen Augen alles gleich.

      Gruß Axel
      • 52

      • # 20278
      Hallo Männer,

      kurzer Zwischenstand und ein Sack voll Fragen

      Mittlerweile
      bekomme ich über cutecom stabil Daten.Fehler lag bei mir, hatte einen
      falschen Aufruf des Wandlers eingetragen (auch mit 38400 Baud).

      Mit

      Quellcode

      1. stty 38400 cs8 -parenb -crtscts -cstopb -F /dev/ttyUSB0 intr undef quit
      2. undef erase undef kill undef eof undef start undef stop undef susp undef
      3. rprnt undef werase undef lnext undef flush undef


      abschalten aller undefinierten Sonderfunktionen, einstellen der Geschwindigkeit, einstellen der Datenbits,keine Parität.

      Werden die Einstellungen gespeichert?Nach Neustart des Raspies sind viele,nicht alle Werte, wieder im Ursprungszustand.

      Ist der Aufruf korrekt? bekomme jedenfalls keine Fehlermeldung aber auch keine Daten.

      Nach Eingabe von

      Quellcode

      1. cat /dev/ttyUSB0


      lande ich sofort wieder in der Eingabeaufforderung

      was mache ich falsch, muss ich noch beachten

      stty -F /dev/ttyUSB0 -a liefert folgendes

      Quellcode

      1. speed 38400 baud; rows 0; columns 0; line = 0;
      2. intr = <undef>; quit = <undef>; erase = <undef>; kill =
      3. <undef>; eof = <undef>; eol = <undef>; eol2 =
      4. <undef>; swtch = <undef>; start = <undef>; stop =
      5. <undef>; susp = <undef>; rprnt = <undef>; werase =
      6. <undef>; lnext = <undef>; flush = <undef>; min = 0;
      7. time
      8. = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts ignbrk
      9. -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
      10. -iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl onlcr -onocr -onlret
      11. -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo
      12. -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl echoke
      Alles anzeigen


      Gruß Axel
      • 53

      • # 20283
      Hallo Axel,

      wenn ich den Status zusammenfassen darf, dann hast du es ja geschafft die LC-Daten
      auf den Raspi .. und zur Anzeige zu bringen...super.

      Ob du das mit dem Termialprogramm cutecom machst,
      oder wie ich nativ im LXTerminal mit den drei Befehlen dmesg, stty, und cat /dev/ttyUSB0
      das ist egal. Das Ergebnis zählt. Die 19200 baud LC-Daten sind sichtbar auf dem Raspi angekommen.

      Wenn der Raspi neu gestartet wird, dann ist die default Geschwindigkeit anscheinend
      9600 baud am /dev/ttyUSB0. Kontrolliert hab ich das mit stty -a -F /dev/ttyUSB0.
      Zum Umschalten von 9600 (default) auf 19200 in diesem (aktuellen) LXTerminal
      hab ich dann stty -F /dev/ttyUSB0 speed 19200 genommen.
      Zur Anzeige der ankommenden Daten im (aktuellen) LXTerminal dann cat /dev/ttyUSB0.
      Da sofort die LC-Daten angezeigt wurden, habe ich mich nicht weiter um die vielen
      Flags von /dev/ttyUSB0 gekümmert. Ich habe nur die speed (Baudrate) geändert und die
      war nach dem neu starten des Raspi wieder zurück auf 9600, deshalb kann ich sagen die Einstellung
      der Baudrate wird nicht gespeichert.
      Und im cutecom ist bei mir "apply settings when opening" das Häkchen gesetzt.
      Dann wird bei jedem start (open device) von cutecom die baudrate auf 19200 gesetzt.

      Infos zum stty von google:
      Das stty-Kommando arbeitet standardmäßig immer mit dem aktuellen Terminal.
      Die Ausgabe des Befehls stty -a zeigt den Status aller Flags für das angegebene Gerät an.
      Ein Flag mit einem Minuszeichen (wie in –crtscts) bedeutet, daß dieses Flag abgeschaltet ist.

      Beispiel von meinem Raspi direkt nach einem Neustart (default) 9600 baud:
      pi@raspberrypi ~ $ stty -a -F /dev/ttyUSB0
      speed 9600 baud; rows 0; columns 0; line = 0;
      intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
      swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
      min = 1; time = 0;
      -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
      -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany
      -imaxbel -iutf8
      opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
      isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

      Die wichtigsten stty-Flags zur Konfiguration serieller Geräte:
      Flags ..Beschreibung
      N ...... Setzt die Übertragungsgeschwindigkeit auf N Bits pro Sekunde.
      crtsdts Aktiviert bzw. deaktiviert das Hardware-Handshaking.
      ixon ....Aktiviert bzw. deaktiviert XON/XOFF.
      clocal...Aktiviert bzw. deaktiviert Modem-Kontrollsignale wie DTR/DTS und DCD.
      ..........Wichtig für dreiadrige serielle Kabel, da sie diese Signale nicht bereitstellen.
      cs5 cs6
      cs7 cs8 Setzt die Anzahl der Datenbits auf 5, 6, 7 bzw. 8.
      parodd .Aktiviert ungerade Parität. Ein negiertes Flag bedeutet gerade Parität.
      parenb. Aktiviert Paritätstest. Ist dieses Flag negiert, wird keine Parität verwendet.
      cstopb. Aktiviert die Verwendung von zwei Stopbits pro Zeichen. Bei negiertem Flag wird ein Stopbit pro Zeichen verwendet.
      echo.... Aktiviert bzw. deaktiviert die Rücksendung (Echo) des empfangenen Zeichens zum Sender.

      Wie gehts nun weiter mit den LC-Daten auf dem Raspi ?

      Gruß
      Jürgen

      Atmos D15P mit A25; LambdaCheck; UVR1611 mit CAN-I/O44 und BL-NET;
      2x1000l Puffer mit 2x10m² VRK und glykolfreie Solarthermie(Ost-West); WW-FWS; PV 3,2kW; Wasserenthärtung
      • 54

      • # 20300
      Danke Jürgen,
      Wenn was nicht läuft klammert man sich an jeden Strohhalm und deshalb habe ich mich um die Flags gekümmert.
      Nach Neustart des Raspis habe ich immer als 57600 Baud und ändere sie so wie du beschrieben hast mit stty -F /dev/ttyUSB0 speed 38400 oder 19200.Ich hoffe nur das ich cat /dev/ttyUSB0 nicht für irgendwas brauche da es ja bei mir nicht läuft.Wie soll es weiter gehen...werde mir deine ganzen Beiträge weiter zu Gemüte führen,dein Skript abschreiben und lesen suchen lesen, zum Schluss soll was in Fhem zu sehen sein ;)

      Gruß Axel
      • 55

      • # 20593
      Hallo Jürgen,
      bei mir klemmts mal wieder,ich habe Probleme mit dem Skript.
      Sobald ich es starten möchte, bekomme ich diese Meldung:

      Quellcode

      1. pi@raspberrypi:/opt/LC $ sudo ./lc.pl
      2. sudo: unable to execute ./lc.pl: No such file or directory

      ich habe den Eindruck das es nicht ausführbar wird nach dem Aufruf von

      Quellcode

      1. ​sudo chmod 755 /opt/LC/lc.pl


      was kann das sein

      Gruß Axel
      • 56

      • # 20601
      Hallo Axel,

      die zusätzlichen Informationen zur Datei lc.pl kannst im Verzeichnis mit dem befehl ls -l anschauen.

      bei mir sieht das so aus:

      pi@raspberrypi:/opt/LC $ ls -l
      insgesamt 8
      -rwxr--rwx 1 pi pi 1382 Feb 15 08:16 lc.pl
      -rwxr--r-- 1 pi pi 1135 Feb 15 11:07 lctest.pl

      mein bevorzugtes Tool zum ändern von Rechten ist der mc (midnight commander)
      sudo apt-get install mc ,falls er installiert werden soll.

      unter Datei und chmod erscheint dieses Menü zum ändern von Rechten


      Infos von google:
      Linux-Zugriffsrechte

      Wichtiger als bei Windows ist bei Linux das Konzept der Benutzer und Zugriffsrechte.
      Jede Datei und jedes Verzeichnis gehört einem bestimmten Benutzer (User).
      Dieser Benutzer ist der Besitzer (englisch: Owner) der Datei bzw. des Verzeichnisses.
      Jeder Benutzer gehört zu einer Gruppe.
      Alle anderen Benutzer außerhalb der Gruppe werden „Welt“ genannt.

      Zu jeder Linux-Datei gibt es die Angabe, ob es sich um ein Verzeichnis handelt oder nicht,
      welche Rechte der Besitzer der Datei bzw. des Verzeichnisses hat,
      welche Rechte die Mitglieder derselben Gruppe wie der Besitzer der Datei haben
      und welche Rechte alle anderen haben.
      Alle diese Informationen sind in zehn Zeichen zusammengefasst.

      Beispiel: -rwxr--r-- lctest.pl
      Die Datei hat den Namen lctest.pl
      Die erste Stelle, hier ein Bindestrich (-), gibt an,
      ob es sich um eine Datei (-) oder ein Verzeichnis (d) handelt.
      An Position 2 bis 4 stehen die Rechte des Dateibesitzers –
      hier rwx. Der Besitzer darf lesen (r=read), schreiben (w=write) und ausführen (x=execute).
      Es folgen als Zeichen fünf, sechs und sieben die Rechte der Gruppenangehörigen.
      r-- bedeutet, dass gelesen werden darf, aber Schreiben und Ausführen nicht erlaubt sind.
      Die nächsten Stellen r-- stellen die Rechte aller anderen Benutzer dar.
      Hier also: nur Lesezugriff.

      Gruß
      Jürgen
      Atmos D15P mit A25; LambdaCheck; UVR1611 mit CAN-I/O44 und BL-NET;
      2x1000l Puffer mit 2x10m² VRK und glykolfreie Solarthermie(Ost-West); WW-FWS; PV 3,2kW; Wasserenthärtung
      • 57

      • # 20603
      Hallo Jürgen,
      Danke für deine Infos und Geduld,
      ich dachte gestern auch schon an ein Rechte -Problem, wusste nur nicht welche Rechte
      das Skript haben muss. Deine Auszüge haben mir gezeigt das ich garnicht soweit weg war,
      hatte auch schon mit dem MC "gespielt".Es scheint aber ein anderes Problem zu sein.
      Nach Eingabe von

      Quellcode

      1. pi@raspberrypi:/opt/LC $ ls -linsgesamt 4-rwxr--rwx 1 pi pi 1280 Feb 26 15:41 lc.pl​


      sieht es so aus wie bei dir,

      und nach Eingabe von

      Quellcode

      1. pi@raspberrypi:/opt/LC $ sudo ./lc.pl
      2. sudo: unable to execute ./lc.pl: No such file or directory

      gleiche Ergebnis wie gestern.
      Irgendwas habe ich übersehen oder es klemmt wieder was im System.

      Gruß Axel
      • 58

      • # 20624
      Hallo Jürgen,
      nach dem ich in anderen Foren gelesen habe, das solche Fehlermeldungen auch durch unsichtbare Windows Steuerelemente
      ausgelöst werden,(mein Skript wurde unter Windows im Texteditor geschrieben)Habe ich mich entschlossen es unter Linux im
      Raspi neu zu schreiben.Damit ist die alte Fehlermeldung weg,habe aber leider eine neue.

      Beim aufrufen bekomme ich jetzt einen Syntax-Fehler und bricht das Kompilieren ab.

      Quellcode

      1. pi@raspberrypi:/opt/LC $ sudo ./lc.plsyntax error at ./lc.pl line 7, near "| |"Execution of ./lc.pl aborted due to compilation errors.


      Als Editor habe ich gedit genommen.
      Kannst du damit was anfangen?

      In meinen Augen sieht alles gleich aus.

      Quellcode

      1. open ( SESAM, "< /dev/ttyUSB0" ) | | die "Eingabedatei /dev/ttyUSB0 konnte nicht geöffnet werden" ;


      Gruß Axel
      • 59

      • # 20715
      Hallo Axel,

      zum Übertragen von Text-Dateien von Linux nach Windows verwende ich Kwrite,
      da kann man im Linux-System die "End of line" für DOS/Windows Format mit CR+LF einstellen.
      Übertragen von von Text-Dateien von Windows nach Linux(Raspi) entweder Dateien auf USB-Stick kopieren
      und dann in Raspi reistecken und ins Linux übernehmen oder direkt von Windows nach Linux übers Netzwerk
      mit WinSCP.

      Ich meine es wird am besten weiterhelfen,
      wenn ich die lc.pl, SVG_LC_log_1.gplot und fhem.cfg
      von meinem Test-System einspiele. Die Dateirechte, Namen und Verzeichnisse
      sollten so übernommen werden, denn sie sind vom laufenden System entnommen.
      Damit sollte es möglich sein, auf einem laufenden fhem mit dem perl-script lc.pl
      die LC Daten ins fhem reinzubringen.

      Bevor die zwei Dateien SVG_LC_log_1.gplot und fhem.cfg ins fhem reinkopierst.
      fhem mit sudo /etc/init.d/fhem stop anhalten
      mit sudo /etc/init.d/fhem status prüfen, ob fhem nicht mehr läuft,
      dann die 2 Dateien SVG_LC_log_1.gplot und fhem.cfg ins fhem reinkopieren
      und fhem mit sudo /etc/init.d/fhem start wieder starten.

      Dann im fhem auf den Event monitor klicken, dann sollten LC Daten erscheinen...
      Mit Everything kommst dann auch auf die gewünschte Grafik.

      Gruß
      Jürgen

      stty -F /dev/ttyUSB0 speed 19200
      pi@raspberrypi:/opt/LC $ ls -l lc.pl
      -rwxr--rwx 1 pi pi 1163 Mär 1 23:56 lc.pl

      Perl-Quellcode

      1. #!/usr/bin/perl
      2. $fspo = "";
      3. $fspt = "";
      4. $fspv = "";
      5. $fspa = "";
      6. my (@linesArray1);
      7. open(SESAM, "< /dev/ttyUSB0") || die "Eingabedatei /dev/ttyUSB0 konnte nicht geöffnet werden";
      8. while ($Zeilen =<SESAM>)
      9. {
      10. if ( length($Zeilen) > 3 )
      11. {
      12. $ls=length($Zeilen);
      13. $Zeilen = substr($Zeilen,0,$ls-1);
      14. #fhem-Zeile aufbauen
      15. if (substr($Zeilen,0,1) eq "O") { $fspo = "O: ".substr($Zeilen,1,4); }
      16. if (substr($Zeilen,0,1) eq "T") { $fspt = "T: ".substr($Zeilen,1,3); }
      17. if (substr($Zeilen,0,1) eq "V") { $fspv = "V: ".substr($Zeilen,1,4); }
      18. if (substr($Zeilen,0,1) eq "A") { $fspa = "A: ".substr($Zeilen,1,3); }
      19. # Zeilenanfang mit A-Wert erkannt
      20. if (substr($Zeilen,0,1) eq "A")
      21. {
      22. $fzeile = $fspa." ".$fspt." ".$fspo." ".$fspv;
      23. print $fzeile."\n";
      24. my $cmd="/opt/fhem/fhem.pl localhost:7072 ".'"set LC '.$fzeile.'"';
      25. # fZeile per telnet zu fhem übertragen
      26. open(CMD, "$cmd |");
      27. @linesArray1 = <CMD>;
      28. close(CMD);
      29. print @linesArray1[0];
      30. $fspo = "";
      31. $fspt = "";
      32. $fspv = "";
      33. $fspa = "";
      34. }
      35. }
      36. }
      37. close(SESAM);
      Alles anzeigen


      pi@raspberrypi:/opt/fhem/www/gplot $ ls -l SVG_LC_log_1.gplot
      -rw-r--rw- 1 pi pi 724 Okt 15 00:38 SVG_LC_log_1.gplot

      Quellcode

      1. # Created by FHEM/98_SVG.pm, 2015-10-15 00:38:06
      2. set terminal png transparent size <SIZE> crop
      3. set output '<OUT>.png'
      4. set xdata time
      5. set timefmt "%Y-%m-%d_%H:%M:%S"
      6. set xlabel " "
      7. set title 'Lamdacheck'
      8. set ytics
      9. set y2tics
      10. set grid ytics y2tics
      11. set ylabel "O2, Verlust in %"
      12. set y2label "Temperatur"
      13. set yrange [0:20]
      14. set y2range [0:170]
      15. #FileLog 3:LC.*::
      16. #FileLog 6:LC.*::
      17. #FileLog 8:LC.*::
      18. #FileLog 10:LC.*::
      Alles anzeigen


      pi@raspberrypi:/opt/fhem $ ls -l fhem.cfg
      -rw-rw-rw- 1 pi pi 1508 Feb 28 22:57 fhem.cfg

      Quellcode

      1. attr global logfile /opt/fhem/log/fhem-%Y-%m.log
      2. attr global modpath /opt/fhem
      3. attr global statefile /opt/fhem/log/fhem.save
      4. attr global updateInBackground 1
      5. attr global verbose 3
      6. define telnetPort telnet 7072 global
      7. define WEB FHEMWEB 8083 global
      8. define WEBphone FHEMWEB 8084 global
      9. attr WEBphone stylesheetPrefix smallscreen
      10. define WEBtablet FHEMWEB 8085 global
      11. attr WEBtablet stylesheetPrefix touchpad
      12. # Fake FileLog entry, to access the fhem log from FHEMWEB
      13. define Logfile FileLog /opt/fhem/log/fhem-%Y-%m.log fakelog
      14. define autocreate autocreate
      15. attr autocreate filelog /opt/fhem/log/%NAME-%Y.log
      16. define eventTypes eventTypes /opt/fhem/log/eventTypes.txt
      17. # Disable this to avoid looking for new USB devices on startup
      18. #define initialUsbCheck notify global:INITIALIZED usb create
      19. define LC dummy
      20. attr LC verbose 5
      21. attr LC room Lambdacheck
      22. define FileLog_LC FileLog /opt/fhem/log/LC-%Y.log LC
      23. attr FileLog_LC logtype power4:Power,text
      24. attr FileLog_LC room Lambdacheck
      25. define SVG_LC_log_1 SVG FileLog_LC:SVG_LC_log_1:CURRENT
      26. attr SVG_LC_log_1 room Plots
      Alles anzeigen
      Atmos D15P mit A25; LambdaCheck; UVR1611 mit CAN-I/O44 und BL-NET;
      2x1000l Puffer mit 2x10m² VRK und glykolfreie Solarthermie(Ost-West); WW-FWS; PV 3,2kW; Wasserenthärtung
      • 60

      • # 20854
      Danke Jürgen,
      die Dateien sind meine Rettung,alleine hätte ich das nicht hinbekommen.Vergleiche beim Skript alleine,ohne einige Vorkenntnisse hat man keinen Chance.Es laufen zwar noch keine Plots,
      aber die Daten sind in Fhem schon zu sehen, das alleine bringt mich schon um Welten weiter.
      Ich probiere und berichte weiter.

      Gruß Axel
      • 62

      • # 118104
      Hallo Forum

      So wie Solarengel den Umbau auf RS232 weiter vorne beschrieben hat, habe ich jetzt versucht die Lambdacheck umzubauen.
      D.h. die 3 Drähtchen einzulöten.
      Leider kann ich mit meinem Oszi keine Signale messen. Obwohl ich das gleiche bei einem 2. Lambdacheck gemacht habe, das selbe, keine Signale.
      Kann es sein, das es Versionen gibt, die ein anderes Programm haben.
      Ich komm mir ganz schön blöd vor. Ich dachte mit 30 Jahren Elektronikerfahrung bekomme ich das hin.
      Oder bin ich "Betriebsblind.

      Bitte um Info´s

      Gruß Joachim
      • 63

      • # 118158
      Hallo Joachim,

      mein LambdaCheck habe ich 10/2011 gekauft.
      Ich würde nach dem Einschalten vom LambdaCheck die erste Zeile auf dem LCD-Display der Version zuordnen.
      Bei mir steht da "LSU4 4.0gp PID". Vermutlich habe ich die Version 4.0

      Da ich mir durchs lesen einiger Forenbeiträge von 2011 nicht ganz sicher war, ob mein LambdaCheck am USB-Anschluss Daten ausgibt,
      habe ich vorher bei Harald (Lambdasonde) per email nachgefragt ob die Sotftwareversion vom Atmel-MC passt oder gewechselt werden muss.
      Es war keine Änderung notwendig, denn in meinem LambdaCheck ist die passende Softwareversion drin, die am USB-Anschluss Daten ausgibt.

      Ich würde dir empfehlen bei Harald mit dem Kaufdatum deines LamdaChecks und der Info aus ersten Zeile vom LCD-Display nachzufragen,
      welchen Versions-Stand du hast und wie es mit der Datenausgabe am USB-Anschluss aussieht.

      Gruß
      Jürgen
      Atmos D15P mit A25; LambdaCheck; UVR1611 mit CAN-I/O44 und BL-NET;
      2x1000l Puffer mit 2x10m² VRK und glykolfreie Solarthermie(Ost-West); WW-FWS; PV 3,2kW; Wasserenthärtung

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SolarEngel ()

      • 64

      • # 151341
      Hallo zusammen,

      ich dachte mir, dass ich dieses Thema mal wieder aufwecke, da ich dazu ein paar Fragen hätte.

      Ich möchte mit einem Arduino (ESP8266) die Serielle Schnittstelle auslesen und dann zunächst per WLAN (Blynk) die Daten zur Ansicht bereitstellen.

      Ich möchte ohne USB arbeiten, da ich die USB-Schnittstelle meines Arduino als Stromversorgung nutzen möchte.

      Versteh ich das richtig, dass ich die drei Kabel nicht direkt mit dem Arduino verbinden kann, weil ich wegen dem gewählten Protokoll (RS232) negative Spannungen empfangen müsste, die der Arduino so aber nicht verarbeiten kann ?

      Hier ist immer die Rede von einem TTL zu USB Adapterkabel. Ist das nicht eigentlich ein RS232 zu USB Adapter ?

      Gruß,

      Tobias
      • 65

      • # 151363
      Hallo Tobias,

      super Idee, dem Lambdacheck einen Wlan-Anschluss verpassen. Falls den ESP8266 erst noch kaufen musst, dann würde ich gleich einen ESP32
      nehmen. Im Prinzip hab ich das ganze schon in einem anderen Thread beschrieben, wie man 5V TTL-Signale an einen ESP8266 anschliesst.
      (# 138101) mit dem Titel (MQTT mit NodeMCU-(ESP8266) WLAN Messdatenübertragung KAMO FWS-Daten an Message-Broker Mosquitto)

      Ich habe dort meiner KAMO-Frischwasserstation einen Wlan-Anschluss verpasst. Der Lambdacheck liefert genau die gleichen 5V TTL-Signale
      und die gleiche Baudrate 19200 baud. Wichig ist nur dass ein Spannungsteiler am Eingang des ESP verwendet wird, weil er nur mit
      3,3 V TTL-Signal-Pegel angesteuert werden darf. In dem Fritzing-Plan sollte das dort zu sehen sein.

      Mich würde noch interessieren wie du die 5V Stromversorgung für den ESP8266 gestalten willst. Ich nehme an, der ESP8266 wird sehr
      nahe oder sogar in den Lambdacheck reingebaut.

      Gruß
      Jürgen
      Atmos D15P mit A25; LambdaCheck; UVR1611 mit CAN-I/O44 und BL-NET;
      2x1000l Puffer mit 2x10m² VRK und glykolfreie Solarthermie(Ost-West); WW-FWS; PV 3,2kW; Wasserenthärtung
      • 66

      • # 151379
      Deinen Artikel schau ich mir nachher mal an.

      Stromversorgung vielleicht mit nem LM2596.

      Die Bauteile hätte ich alle noch liegen.

      Jetzt hab ich grad das Problem, dass meine Platine ein anderes Layout hat. Ich hab mal die Anschlussstellen nach meinen Vermutungen beschriftet. Was meint Ihr ?
      LC_neu.jpg

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von cglrk ()

      • 67

      • # 151382
      Hallo Tobias,

      deine markierten Punkte sind durchaus vergleichbar, wenn man das ganze aus der Sicht des
      nicht bestückten Baustein für USB (FT232RL) sieht.
      Meine Punkte sind die gleichen, auch wenn sich das Layout etwas geändert hat.
      Für den Anschluss zum ESP.. ist nur der RX markierte Anschluss und GND notwendig zum lesen der LC - Daten.

      Ich habe die Signale mit dem Oszi angeschaut und mit dem Logikanalyser konnte
      ich den Text z.B "T121" im Klartext dekodieren.

      Gruß
      Jürgen
      Atmos D15P mit A25; LambdaCheck; UVR1611 mit CAN-I/O44 und BL-NET;
      2x1000l Puffer mit 2x10m² VRK und glykolfreie Solarthermie(Ost-West); WW-FWS; PV 3,2kW; Wasserenthärtung
      • 68

      • # 151407
      Fertig ! :whistling:

      Meine erste Vermutung war nicht ganz richtig - RX und TX waren vertauscht. Ich habe mein beschriftetes Foto oben korrigiert.

      Jetzt läuft alles wie gewünscht. Ich schicke die Daten an meinen Blink-Server und lese alles per Handy aus:

      IMG_0440.PNG

      Hier noch der Quellcode:

      C-Quellcode

      1. #include <ESP8266WiFi.h>
      2. #include <BlynkSimpleEsp8266.h>
      3. char auth[] = "XXX";
      4. char ssid[] = "XXX";
      5. char pass[] = "XXX";
      6. char server_ip[] = "XXX";
      7. int incomingByte = 0;
      8. int label = -1;
      9. String s = "";
      10. int count = 0;
      11. void setup()
      12. {
      13. Serial.begin(19200);
      14. //Blynk.begin(auth, ssid, pass);
      15. Blynk.begin(auth, ssid, pass, server_ip);
      16. }
      17. void loop()
      18. {
      19. Blynk.run();
      20. if (Serial.available() > 0)
      21. {
      22. incomingByte = Serial.read();
      23. if(incomingByte>=65 && incomingByte<=90)
      24. {
      25. label = incomingByte;
      26. s = "";
      27. count = 0;
      28. }
      29. else
      30. {
      31. if(label!=-1)
      32. {
      33. if(incomingByte==46)
      34. {
      35. count = count+1;
      36. if(count==1)
      37. {
      38. s = s+char(incomingByte);
      39. }
      40. else
      41. {
      42. label = -1;
      43. s = "";
      44. count = 0;
      45. }
      46. }
      47. else if(incomingByte>=48 && incomingByte<=57)
      48. {
      49. s = s+char(incomingByte);
      50. }
      51. else
      52. {
      53. if(s!="." && s!="")
      54. {
      55. Serial.println(char(label)+s);
      56. if(label==86) // V
      57. {
      58. Blynk.virtualWrite(V0,s.toFloat());
      59. }
      60. else if(label==65) // A
      61. {
      62. Blynk.virtualWrite(V1,s.toFloat());
      63. }
      64. else if(label==79) // O
      65. {
      66. Blynk.virtualWrite(V2,s.toFloat());
      67. }
      68. else if(label==84) // T
      69. {
      70. Blynk.virtualWrite(V3,s.toFloat());
      71. }
      72. }
      73. label = -1;
      74. s = "";
      75. count = 0;
      76. }
      77. }
      78. }
      79. }
      80. }
      Alles anzeigen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von cglrk ()

      • 70

      • # 151413
      Hallo,
      sieht sehr interessant aus. Habe auch schon Erfahrungen mit dem ESP8266 gemacht.
      Damit kommt man schön ins hauseigene Wlan und über DDNS auch nach überall.
      Der Lambdacheck lässt sich mit USB nachrüsten. Der FT232RL ist von Hause nicht bestückt, nur sehr wenige das brauchen.
      Einfach ein Terminalprogramm wählen und 19200bd,8bit, noparity einstellen.
      Die Daten kommen als ASCII, also lesbare Zeichen auf den Schirm.

      Viel Spaß noch

      Harald
      • 71

      • # 151419

      lambdasonde schrieb:

      Hallo,

      kurze Erläuterung:

      Die Log-Funktion ist zu Beginn des Projektes zum Test von mir eingebaut worden.
      Die Leiterkarte ist vorbereitet, der Baustein für USB (FT232RL) aber nicht bestückt.
      Ferner ist die USB-Buchse sehr ungünstig platziert.
      Die Software gibt weiterhin alle relevanten Daten via RS232-Protokoll aus(38400,8,n,1,-).

      Da diese Funktion sehr selten genutzt wird, habe ich es mir verkniffen, das weiter zu optimieren.

      Jeder kann sich den Baustein auflöten (etwas figurlinschk ist das aber schon) und dann an den PC anstecken.
      Ausgegeben wird: O2, Abgastemp(wenn vorhanden), Verlust in%, Regelgröße Belimo.

      Gruß

      Harald
      Ich hab mir jetzt mal ganz entspannt den Teil durchgelesen, den ich verstehen konnte.
      Gibt es eine Chance auf eine Anleitung?
      Also, wie visualisiere ich die Daten aus dem Lambdacheck auf einem Computer?
      Gibt es jemanden, der sich erbarmen würde???
      Toleranz fängt bei Laktose an!
      • 72

      • # 151434
      Hey Pino,

      in diesem Thread sind ja nun mehrere Methoden beschrieben worden. Hier eine Zusammenfassung meiner Variante:

      1. Zwei Kabel an die Platine vom Lambdacheck löten und am besten aus dem Gehäuse rausführen. Das eine Kabel wird dort angelötet, wo die Daten rauskommen (TX = "Transmitter Exchange"), das andere an einen Massepunkt der Platine (GND).
      LC.jpg

      2. Ein ESP8266 besorgen. Die Version ESP-01 reicht vollkommen aus. Gibt's in China sehr günstig. Erstmal ein Entwicklerboard nehmen - ist einfacher zu handhaben. Bei Amazon gibt es das natürlich auch (relativ teuer): amazon.de/NodeMCU-Internet-Dev…ns&keywords=esp8266&psc=1

      3. Arduino installieren. Mit dem Boardverwalter nach "ESP8266" suchen und installieren. Die Bibliothek für Blynk installieren (hier nur Punkt 3 folgen: blynk.cc/getting-started/) und Arduino neu starten.

      4. Auf dem Handy die App "Blynk" installieren. Gibt es sowohl für iOS als auch Android. Wenn man keinen eigenen Blynk-Server aufsetzen möchte, dann einen Account erstellen. Mein Blynk-Projekt importieren:
      blynk-projekt.png

      5. Meinen Quellcode in ein neues Arduino-Projekt einfügen. Hier die Version, wenn man keinen eigenen Blynk-Server besitzt:

      C-Quellcode

      1. #include <ESP8266WiFi.h>
      2. #include <BlynkSimpleEsp8266.h>
      3. char auth[] = "XXX";
      4. char ssid[] = "XXX";
      5. char pass[] = "XXX";
      6. //char server_ip[] = "XXX";
      7. int incomingByte = 0;
      8. int label = -1;
      9. String s = "";
      10. int count = 0;
      11. void setup()
      12. {
      13. Serial.begin(19200);
      14. Blynk.begin(auth, ssid, pass);
      15. //Blynk.begin(auth, ssid, pass, server_ip);
      16. }
      17. void loop()
      18. {
      19. Blynk.run();
      20. if (Serial.available() > 0)
      21. {
      22. incomingByte = Serial.read();
      23. if(incomingByte>=65 && incomingByte<=90)
      24. {
      25. label = incomingByte;
      26. s = "";
      27. count = 0;
      28. }
      29. else
      30. {
      31. if(label!=-1)
      32. {
      33. if(incomingByte==46)
      34. {
      35. count = count+1;
      36. if(count==1)
      37. {
      38. s = s+char(incomingByte);
      39. }
      40. else
      41. {
      42. label = -1;
      43. s = "";
      44. count = 0;
      45. }
      46. }
      47. else if(incomingByte>=48 && incomingByte<=57)
      48. {
      49. s = s+char(incomingByte);
      50. }
      51. else
      52. {
      53. if(s!="." && s!="")
      54. {
      55. Serial.println(char(label)+s);
      56. if(label==86) // V
      57. {
      58. Blynk.virtualWrite(V0,s.toFloat());
      59. }
      60. else if(label==65) // A
      61. {
      62. Blynk.virtualWrite(V1,s.toFloat());
      63. }
      64. else if(label==79) // O
      65. {
      66. Blynk.virtualWrite(V2,s.toFloat());
      67. }
      68. else if(label==84) // T
      69. {
      70. Blynk.virtualWrite(V3,s.toFloat());
      71. }
      72. }
      73. label = -1;
      74. s = "";
      75. count = 0;
      76. }
      77. }
      78. }
      79. }
      80. }
      Alles anzeigen
      6. In dem Quellcode überall, wo XXX steht, die eigenen Daten eingeben. Den Authentication-Code ("auth") findet man in der Blynk-App unter Einstellungen für das bei 4. importierte Projekt. "ssid" meint den Namen des eigenen WLAN und "pass" das zugehörige Passwort. "server_ip" braucht man nur, wenn man einen eigenen Blynk-Server hat.

      7. Den ESP8266 per USB an den Computer anschließen. Im Menü unter Werkzeuge das Board "NodeMCU 1.0 (ESP-12E Module)" auswählen. Im Menü unter Port den USB-Port auswählen, an dem der ESP8266 angeschlossen ist.

      8. Neben dem Haken auf den Pfeil nach rechts klicken. Das Programm wird kompiliert und auf den Mikrokontroller übertragen. (Hier dürfen die Kabel vom Lambdacheck noch nicht an dem ESP8266 angeschlossen sein!)

      9. Den ESP8266 vom Computer trennen und in den Heizungsraum bringen. (WLAN notwendig) Das TX-Kabel vom Lambdacheck an den RX-Pin vom ESP8266 anschließen. Das GND-Kabel an einen GND-Pin anschließen. (Spannungsteiler wäre besser, inoffiziell(!!) verträgt der ESP8266 aber auch 5V) Den ESP8266 mit Strom versorgen. (z.B. mit USB-Netzteil vom Handy)

      10. Die Handy-App öffnen und darin das importierte Projekt öffnen. Fertig.

      Mit freundlichen Grüßen,

      Tobias :)

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von cglrk ()

    Webutation