- UPDATE - Oplossing is vervangen door Domoticz waarmee ik slimme meter uitlees (USB-Serial P1 kabel
Nieuwste werkende code is volgens mij uit deze post.
---------------------------------------------------------------------------------------------------------------------------------------------------
Ik krijg binnenkort een slimme meter, en wil de P1 poort gaan uitlezen met een Arduino. Nadat de interessante waardes uit het telegram zijn gehaald wil ik die wegschrijven in een MySQL database op m'n NAS.
Het uitlezen van de meter is niet zo'n punt, dat werkt met deze sketch uitstekend. Het verwerken van de data naar een MySQL lukt mij echter niet. Het levert of een niet werkende sketch op (blijft telkens hangen op bepaalde regels), of incomplete data in de tabel. Ik weet niet goed waar te beginnen. Dat script looped elke regel opnieuw, dus ergens een GET request plaatsen gaat dan niet lekker.
Gewenste situatie:
Als er een telegram op de Arduino binnenkomt vanaf de slimme meter (elke 10sec spuugt de meter de waarden voor meterstanden + huidig verbruik eruithalen (wat bovenstaande sketch dus al doet) en die wegschrijven in de bijbehorende velden in de MySQL database. Geen moeilijke berekeningen met de data, of data opslaan, webpagina met grafieken.
Gewoon telegram ontvangen, benodigde data extracten, doorsturen naar MySQL en daarna wachten op het volgende telegram. De data staat in MySQL, en kan vervolgens met PHP + Highcharts mooi getoond worden (dit gedeelte heb ik voor een Arduino temperatuurlogger al werkend). Het toevoegen van data aan MySQL dmv een GET request is ook al werkend, dmv deze PHP pagina.
als ik dat script handmatig aanroep met p1.php?a=1000&b=2000&c=3000 dan krijg ik die waardes netjes in m'n MySQL database.
Ik open dit topic omdat er genoeg alternatieven zijn zoals:
Slimme/digitale meter uitlezen met een Raspberry Pi
Slimme meter via P1-poort loggen met een Netduino Plus
maar in mijn ogen is dat gewoon dikke overkill. Een Arduino Duemilanove (kloon van de Uno) + W5100 Ethernetshield kost op eBay geen drol (in totaal misschien ~18 euro ?).
Naar mijn idee wordt er veel te snel naar een Raspberry Pi gegrepen terwijl dit, zoals gezegd, naar mijn mening redelijk overkill is. Ik kan op internet alleen sketches vinden die of de data uit het telegram gewoon echoen in de Arduino Serial Monitor, of die gelijk weer erg ingewikkeld zijn (Solarmeter sketch, P1 to COSM) en dan de data ook nog eens naar een externe partij uploaden (PVOutput, COSM).
Wie kan mij helpen om een werkende Arduino sketch hiervoor te creëren? Ik kan me voorstellen dat er nog wel meer Tweakers hier belang bij hebben. In veel huizen zal al een NAS draaien, dus dan is alleen het uitlezen nog nodig, wat met de Arduino dus goedkoop kan.
Ik heb op dit moment nog geen slimme meter (komt volgende week), maar heb wel een andere Arduino (Nano) in gebruik als P1 dummy. Deze heb ik in gebruik met deze sketch: http://pastebin.com/rhfg0KWk welke ervoor zorgt dat er elke 10sec een telegram via een van de digitale pinnen wordt uitgespuugd (AltSoftSerial library). Mocht je zelf (nog) geen slimme meter hebben dan zou je dus kunnen testen op die manier...
TL;DR: Werkende Arduino sketch gezocht om slimme meter data in MySQL database te krijgen
Nieuwste werkende code is volgens mij uit deze post.
---------------------------------------------------------------------------------------------------------------------------------------------------
Ik krijg binnenkort een slimme meter, en wil de P1 poort gaan uitlezen met een Arduino. Nadat de interessante waardes uit het telegram zijn gehaald wil ik die wegschrijven in een MySQL database op m'n NAS.
Het uitlezen van de meter is niet zo'n punt, dat werkt met deze sketch uitstekend. Het verwerken van de data naar een MySQL lukt mij echter niet. Het levert of een niet werkende sketch op (blijft telkens hangen op bepaalde regels), of incomplete data in de tabel. Ik weet niet goed waar te beginnen. Dat script looped elke regel opnieuw, dus ergens een GET request plaatsen gaat dan niet lekker.
Gewenste situatie:
Als er een telegram op de Arduino binnenkomt vanaf de slimme meter (elke 10sec spuugt de meter de waarden voor meterstanden + huidig verbruik eruithalen (wat bovenstaande sketch dus al doet) en die wegschrijven in de bijbehorende velden in de MySQL database. Geen moeilijke berekeningen met de data, of data opslaan, webpagina met grafieken.
Gewoon telegram ontvangen, benodigde data extracten, doorsturen naar MySQL en daarna wachten op het volgende telegram. De data staat in MySQL, en kan vervolgens met PHP + Highcharts mooi getoond worden (dit gedeelte heb ik voor een Arduino temperatuurlogger al werkend). Het toevoegen van data aan MySQL dmv een GET request is ook al werkend, dmv deze PHP pagina.
als ik dat script handmatig aanroep met p1.php?a=1000&b=2000&c=3000 dan krijg ik die waardes netjes in m'n MySQL database.
Ik open dit topic omdat er genoeg alternatieven zijn zoals:
Slimme/digitale meter uitlezen met een Raspberry Pi
Slimme meter via P1-poort loggen met een Netduino Plus
maar in mijn ogen is dat gewoon dikke overkill. Een Arduino Duemilanove (kloon van de Uno) + W5100 Ethernetshield kost op eBay geen drol (in totaal misschien ~18 euro ?).
Naar mijn idee wordt er veel te snel naar een Raspberry Pi gegrepen terwijl dit, zoals gezegd, naar mijn mening redelijk overkill is. Ik kan op internet alleen sketches vinden die of de data uit het telegram gewoon echoen in de Arduino Serial Monitor, of die gelijk weer erg ingewikkeld zijn (Solarmeter sketch, P1 to COSM) en dan de data ook nog eens naar een externe partij uploaden (PVOutput, COSM).
Wie kan mij helpen om een werkende Arduino sketch hiervoor te creëren? Ik kan me voorstellen dat er nog wel meer Tweakers hier belang bij hebben. In veel huizen zal al een NAS draaien, dus dan is alleen het uitlezen nog nodig, wat met de Arduino dus goedkoop kan.
Ik heb op dit moment nog geen slimme meter (komt volgende week), maar heb wel een andere Arduino (Nano) in gebruik als P1 dummy. Deze heb ik in gebruik met deze sketch: http://pastebin.com/rhfg0KWk welke ervoor zorgt dat er elke 10sec een telegram via een van de digitale pinnen wordt uitgespuugd (AltSoftSerial library). Mocht je zelf (nog) geen slimme meter hebben dan zou je dus kunnen testen op die manier...
TL;DR: Werkende Arduino sketch gezocht om slimme meter data in MySQL database te krijgen
[ Voor 5% gewijzigd door ThinkPad op 07-07-2015 09:53 . Reden: Linkje naar nieuwste code toegevoegd bovenaan ]