Closed Totte1210 closed 9 years ago
which kind of arduino? running linux or some 8bit/atmel version?
Am 17.04.2015 um 19:31 schrieb Totte1210 notifications@github.com:
Hello,
has anyone ported code for arduino to read dlms protocol, yet?
I would like to use IR-TTL to read my Landis Gyr ZMD120.
Your help will be appreciated!
best regards
Thorsten
— Reply to this email directly or view it on GitHub https://github.com/volkszaehler/vzlogger/issues/156.
Gruß
Matthias
Es ist ein Arduino Nano, also Atmel 8bit.
Gruß
Thorsten
Hi,
der hat max. 2KB RAM? Das wird mehr als eng. Warum nimmst du nicht einen RPI Model A+ (~25€), das wäre deutlich einfacher.
Am 17.04.2015 um 22:56 schrieb Totte1210 notifications@github.com:
Es ist ein Arduino Nano, also Atmel 8bit.
Gruß
Thorsten
— Reply to this email directly or view it on GitHub https://github.com/volkszaehler/vzlogger/issues/156#issuecomment-94073707.
Gruß
Matthias
Hallo Matthias,
habe aktuell nur nen Arudino Nano rumliegen. Besorge mir jetzt wohl aber noch nen zweiten Pi. Habe es dennoch geschafft den Landis erfolgreich auszulesen:
Mein Code ist folgender:
SoftwareSerial ir = SoftwareSerial(irRxPin,irTxPin); // RX, TX const unsigned int _requestIrData = 5000; unsigned long _lastRequestIrData = 0;
void RequestMeterData(unsigned long currentMillis){ if (currentMillis - _lastRequestIrData > _requestIrData){ // save the last time you requested ir data _lastRequestIrData = currentMillis;
Serial.println("Requesting IR-data...");
ir.print("/?!\r\n");
} } void ReceiveMeterData(){ if (ir.available()){ Serial.print("Response: "); char response = ir.read(); // convert 8N1 to 7E1 response &= 0x7F; Serial.println(response); } } void setup() { ir.begin(300); ir.listen(); Serial.begin(57600); } void loop() { unsigned long timeMillis = millis(); RequestMeterData(timeMillis); ReceiveMeterData(); }
Ja das auslesen ist so kein Problem. Aber was machst du mit den Daten dann? Wenn du die in Datenbank auf Webserver,… packen willst, brauchst du http/mysql,… Lib und dann wird es mit 2kb eng.
Am 18.04.2015 um 10:10 schrieb Totte1210 notifications@github.com:
Hallo Matthias,
habe aktuell nur nen Arudino Nano rumliegen. Besorge mir jetzt wohl aber noch nen zweiten Pi. Habe es dennoch geschafft den Landis erfolgreich auszulesen:
Mein Code ist folgender:
include
define irRxPin 7
define irTxPin 6
SoftwareSerial ir = SoftwareSerial(irRxPin,irTxPin); // RX, TX const unsigned int _requestIrData = 5000; unsigned long _lastRequestIrData = 0;
void RequestMeterData(unsigned long currentMillis){ if (currentMillis - _lastRequestIrData > _requestIrData){ // save the last time you requested ir data _lastRequestIrData = currentMillis;
Serial.println("Requesting IR-data...");
ir.print("/?!\r\n"); } } void ReceiveMeterData(){ if (ir.available()){ Serial.print("Response: "); char response = ir.read(); // convert 8N1 to 7E1 response &= 0x7F; Serial.println(response); } } void setup() { ir.begin(300); ir.listen(); Serial.begin(57600); } void loop() { unsigned long timeMillis = millis(); RequestMeterData(timeMillis); ReceiveMeterData(); }
— Reply to this email directly or view it on GitHub https://github.com/volkszaehler/vzlogger/issues/156#issuecomment-94142665.
Gruß
Matthias
Ich habe den Datenstrom jetzt erstmal auf einen Float Wert nur für den aktuellen Zählerstand reduziert. Ich muss mal schauen, ob ich mir ein Ethernetshield besorge, um dann per Webserver den aktuellen Wert meiner FHEM Installation bereitzustellen, oder ob ich nicht direkt einen Pi auf Hutschiene in den Schaltschrank setzte. Ist wahrscheinlich die beste Lösung. Vielen Dank auf jeden Fall.
beste Grüße
Thorsten
Hi, wie Matthias schon schreibt: was ist Dein Ziel? Wenn Du da keine Schnittstelle am Arduino hast - wo sollen die Daten hingehen? Wenn Du eine hast: für die YPort-Funktion ("seriell to (W)LAN") reicht der Arduino mit seinen 2 KB allemal; dann kannst Du das Parsen auf ner Linux-Box machen (vzlogger). Den Parser auf dem Arduino zu schreiben halte ich auch für vertane Zeit (wenngleich eine spannende Aufgabe und eine tolle Idee). Ich habe damals nicht die Arduino-Umgebung, sondern Ethersex (http://www.ethersex.de/) auf einem ATmega-Board (http://www.pollin.de/shop/dt/NjI5OTgxOTk-/Bausaetze_Module/Entwicklerboards/AVR_NET_IO_Fertigmodul.html) verwendet; das kommt schon mit der LAN-Schnittstelle daher. Halte uns auf dem Laufenden :-) Gruß, J.
Hallo Justin, ich habe mich nun wie folgt festgelegt:
Somit habe ich eine Datenerfassung und Bereitstellung für wenig Geld (nano+Ethernet bei *Bay für <15€) und sehr kleinem Stromverbrauch.
Hi, das klingt gut - ich würde einem HTTP-Client auf dem Arduino eher trauen als einem HTTP-Server (ja, ich weiß - das kann der auch - trotzdem). Ich würde eher den Arduino den Web-Server auf dem FHEM ansprechen lassen. Abgesehen davon: das Parsen musst Du dann immer noch selbst übernehmen. Ich fänd's toll, wenn Du Dein Ergebnis dokumentierst (in unserem Wiki?) und den Code als PR für unser Repo bereit stellst. toi-toi-toi :-) Gruß, J. P.S.: können wir den issue hier schließen?
Hi,
Danke für den Tipp. Ich denke nach dem kommenden Wochenende bin ich weiter und schlauer. Ich halte euch auf dem Laufenden und werde dokumentieren, wenn alles getestet ist.
Den Issue kannst du gerne schließen.
Beste Grüße
Thorsten
Hello,
has anyone ported code for arduino to read dlms protocol, yet?
I would like to use IR-TTL to read my Landis Gyr ZMD120.
Your help will be appreciated!
best regards
Thorsten