<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hallo, dieses Script macht schon was ähnliches:<div><br></div><div><pre class="code">( sleep 1 ; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB0 ) &

while read -t8 line                                         # warten auf die Zaehlerausgabe
do                                                          # Bestaetigung nach dem Wecken nicht notwendig
  [[ "$line" =~ "1.8.0" ]] && Z1=${line:6:8}                # Wert fuer Bezug
  [[ "$line" =~ "2.8.0" ]] && Z2=${line:6:8}                # Wert fuer Einspeisung
done < /dev/ttyUSB0

                                                                 # Auslesen des 2. Zaehlers
( sleep 1 ; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB1 ) &
while read -t8 line
do
#  [[ "$line" =~ "1.8.0" ]] && Z2_in=${line:6:8}                 # wird hier nicht benoetigt
  [[ "$line" =~ "2.8.0" ]] && Z3=${line:6:8}                     # Wert fuer Erzeugung
done < /dev/ttyUSB1</pre><div>Von der Seite: <a href="http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260">http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260</a></div><div><br></div><div>Wenn man den echo Befehl mit einem & sleep 2 & sleep 2 && echo -n -e '\x06000\r\n' funktioniert es mit meinem Zähler. </div><div><br></div><div><font face="Courier New">( echo -n -e '/?!\r\n' > /dev/ttyUSB0 && sleep 2 && echo -n -e '\x06000\r\n' > /dev/ttyUSB0 ) &</font></div><div><br></div><div>Vorausgesetzt ich gebe die Befehle direkt in die Konsole ein. In einem Script bekomme ich vom Zähler keine Daten. Ich versuche das ganze gerade in Perl zu lösen. Den Output bekomme ich schon. Das ist ein kleiner Erfolg verglichen mit dem Bash-Script.</div><div><br></div><div><br></div><div>Ein: <font face="Courier New">stty -F /dev/lesekopf0 300 parenb -parodd cs7 -cstopb raw -echo </font></div><div>reicht um die Schnittstelle richtig zu konfigurieren. Der Output endet immer mit einem "!" und  danach mit einer unbestimmten Ziffer. Bis jetzt zwischen 1 und 4 ….</div><div><br></div><div>Vollständiger Output:</div><div><div><font face="Courier New">/?!</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">/LGZ5ZMF100AC.M25</font></div><div><font face="Courier New">000</font></div><div><font face="Courier New">F.F(00)</font></div><div><font face="Courier New">C.1.0(13037922)</font></div><div><font face="Courier New">0.0(13037922        )</font></div><div><font face="Courier New">C.1.1(        )</font></div><div><font face="Courier New">1.8.0(000434.208*kWh)</font></div><div><font face="Courier New">1.8.1(000286.397*kWh)</font></div><div><font face="Courier New">1.8.2(000147.811*kWh)</font></div><div><font face="Courier New">2.8.0(000585.331*kWh)</font></div><div><font face="Courier New">2.8.1(000585.331*kWh)</font></div><div><font face="Courier New">2.8.2(000000.000*kWh)</font></div><div><font face="Courier New">15.8.0(001019.540*kWh)</font></div><div><font face="Courier New">0.2.0(M25)</font></div><div><font face="Courier New">0.2.1(3533)</font></div><div><font face="Courier New">C.5.0(0601)</font></div><div><font face="Courier New">31.7(000.61*A)</font></div><div><font face="Courier New">51.7(001.03*A)</font></div><div><font face="Courier New">71.7(000.40*A)</font></div><div><font face="Courier New">16.7(000.25*kW)</font></div><div><font face="Courier New">!</font></div><div><font face="Courier New">1</font></div></div><div><br></div><div>Es müssen immer beide echo Befehle eingegeben werden, damit der Zähler reagiert.</div><div><br></div><div>LG, Christian</div><div><br></div><div><br></div><div><div>On Oct 16, 2013, at 5:41 PM, Thorben Thuermer <<a href="mailto:r00t@constancy.org">r00t@constancy.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><blockquote type="cite">Am 16.10.2013 12:35, schrieb Thorben Thuermer:<br><blockquote type="cite">Peter Evertz, Tue Oct 15 23:34:41 CEST 2013:<br><blockquote type="cite">Ich fliege zwar "blind" mangels zähler, aber ich würde sagen der<br>vzlogger code kann nicht funktionieren. Ist also etwas schwieriger als<br>"send pullseq2"<br></blockquote>ja, der code funktioniert.<br>(zumindest frueher ohne pullseq mit zaehlern die von sich aus senden)<br>wie kommst du darauf, das er ganz kaputt sein sollte?<br><br>der parser ist halt nicht toll und sollte mal neu geschrieben werden.<br></blockquote><br>danke für die Infos. Ich würde gern den Parser neu schreiben damit er <br>etwas "robuster" ist. Gegen den E350 kann der Code IMHO nicht gehen, <br>daher die Frage ob ihn überhaupt jemand benutzt.<br><br>Könnt Ihr mir die Zähler nennen die funktionieren, und am besten eine <br>Link zur Doku. Damit ich, wenn ich versuche die anderen Zähler <br>einzubinden, nicht die alten kaputt mache.<br>Sowas wie dieses wäre super:<br>Zusätzlich wäre wichtig zu wissen:<br>- Schickt Ihr ( z.B. per Script) eine Pullsequenz ?<br>- Antwortet der Zähler dann kontinuierlich, oder nur einmal?<br></blockquote><br>mutig mutig, dass du die aufgabe uebernehmen willst!<br><br>ich hatte auch die ueberlegung, erstmal ein test-set von zaehlerausgaben<br>zu sammeln, um dann den parser dagegen testen zu koennen.<br>(wichtig ist, dass die korrekt geloggt werden, da sie auch nicht-druckbare<br> zeichen enthalten koennen!)<br>einige sollten sich schon im wiki finden, ansonsten sollte man nochmal<br>einen aufruf auf der liste machen.<br><br>das wird aber bei den pull-sequenzen wenig helfen,<br>weil dort zT. auch das timing kritisch ist, etc.,<br>und man das ohne die hardware eh nicht testen kann.<br><br>ich denke wichtig ist:<br>ein parser, der robust ist, und alles was einigermassen d0 ist verarbeiten kann.<br>zB. damit klarkommt, wenn die anforderungssequenz aufgrund von reflektionen<br>mit zurueckgelesen wird, vorhandensein von <STX> bytes oder nicht,<br>endmarkeriung am ende des telegramms oder nicht, etc...<br>vlt. einfach eher per brute-force nach gueltigen zeilen suchen.<br><br>sowie eine engine zum erzeugen von anforderungssequenzen die flexibel genug ist<br>um beliebige zaehler bedienen zu koennen.<br>man muesste halt zu sendende zeichen konfigurieren koennen,<br>pausen, abzuwartende antworten, baudraten-wechsel...<br><br>macht halt alles nicht unbedingt spass...<br><br><blockquote type="cite">Grüße<br>Peter<br></blockquote><br>- Thorben<br></blockquote></div><br></div></body></html>