Raspberry Pi en SMA-Bluetooth

 Gepubliceerd door om 21:22  Hardware, Raspberry Pi
Aug 132012
 

Raspberry Pi en SMA-Bluetooth Het is weer even stil geweest rond mijn zonnepanelen en met name mijn wens om eenvoudig te kunnen zien wat de zonnepanelen aan energie opleveren (zie ook dit bericht).

Nou doen de zonnepanelen zelf het prima. Sinds 30 maart 2012 toen de panelen tegen het middaguur geplaatst werden hebben ze inmiddels 1.000kWh aan elektriciteit opgewekt (968,4kWh om precies te zijn). Maar goed, ik hou van grafiekjes, ik wil de maanden met elkaar kunnen vergelijken om te zien wanneer de panelen nou juist meer of minder leveren etc. en ik wil niet elke avond vlak voordat de converter zichzelf uitschakelt gaan kijken wat de dagstand is (is namelijk niet te zien als het apparaat uit is en hij schakelt elke dag op een ander moment uit: als de zon weg is).

Ik had één van de twee Raspberry Pi computers voor dit doel in gedachten. Ik had online al begrepen dat de Technika Nano Bluetooth Adapter die ze bij de Tesco in Groot Brittanië voor iets minder dan 6GBP verkopen samenwerkt met de Raspberry Pi (de verbinding met de converter gebeurt namelijk via Bluetooth) en had er dus eentje op de kop getikt toen we er afgelopen weken toch waren.

Maar het aan de praat krijgen van de software viel/valt nog niet mee. Het is gratis/open source code die nog flink in ontwikkeling is en waarvan verschillende aftakkingen gemaakt zijn inmiddels. Belangrijk probleem is in eerste instantie om de zaak gecompileerd te krijgen en daarna om de juiste invertercodes voor je inverter te achterhalen. Het rare is dat het bij mij niet werkt met de codes waarvan anderen zeggen dat die voor hun converter met dezelfde type-aanduiding wel werkt.

Uiteindelijk blijkt de code die ik zelf achterhaald heb via het “sniffen” van de communicatie van de officiële software van SMA met de converter (staat hier uitgelegd al werkt het niet helemaal omdat de SunnyExplorer software op dit moment een probleem heeft) wel te werken, mits ik een error-check in de sourecode uitzet. Toen ik dat deed stroomde de MySql database op de Raspberry Pi opeens vol met data. Niet van alle dagen sinds 30 maart (heeft te maken met een beperking van de ingebouwde Bluetooth Piggyback waardoor je elke dag even contact moet maken met de converter om de datum goed te laten blijven), maar wel alle data die in de converter beschikbaar was.

Net op het moment dat ik wilde testen of ik het nu ook kon laten uploaden naar http://pvoutput.org ging de converter uit en dan is het einde verhaal, want dan kan de Raspberry Pi geen verbinding maken met converter. Wordt dus weer vervolgd.

Deel dit bericht:

  16 reacties aan “Raspberry Pi en SMA-Bluetooth”

Reacties (15) Trackbacks (1)
  1. beste Pierre
    Gisteren werden mijn 6 suntech zonnepannelen geinstalleerd
    samen met SMA Sunnyboy 1600TL met ingebouwd Bluetooth
    aandacht lees ik je blogs waar ik best wel veel informatie krijgt
    over de Raspberry PI 512mb. deze kost nu 35$ trouwens

    2 uur nadat alles werd geinstalleerd viel alles en ging alle 3 lichtjes flitsen.tot op heden kan ik geen data lezen via SMA software.
    nu begrijp ik van jouw blog dat eenmaal uit = uit tot de zon weer opgaat.
    in hoeverre kan Raspberry mij die data voorzien als ik al een incorporated piggy bag bluetooth hebt ingebouwd in de omvormer.
    moet ik de raspberry toch aanschaven ?
    graag jouw reactie met vriendelijke groeten
    Sanky

    • Hoi Sanky,

      Voor zowel de Raspberry Pi als de SMA software geldt hetzelfde: als de omvormer uit is, dan kunnen ze geen nieuwe data lezen van de omvormer. En voor beiden geldt dat ze dan alleen de data hebben sinds de laatste keer uitlezen. Dus als jij om 12:00 uur ’s middags voor het laatst de SMA software verbinding hebt laten maken met de omvormer, dan kun je ’s avonds alleen de data tot 12:00 ’s middags zien.
      Dat is niet heel erg mits je maar minimaal één keer per 24 uur verbinding maakt. Doe je dat niet, dan kun je voor de tussenliggende periode niet meer de detailgegevens ophalen (alleen het totaal aan opgewekte energie).
      De reden waarom ik een Raspberry Pi gebruik is dat ik mijn desktopcomputer met Windows niet de hele tijd aan wil laten staan en met de Raspberry Pi kost dat veel minder elektriciteit. Maar het kan dus ook een andere computer zijn die weinig energie verbruikt.

      • Dankje wel Pierre voor je snelle reactie
        inderdaad zuigt een computer die de hele dag aan staat veel electra, ik zal snel een Raspberry PI aanschaven, we houden contact
        fijne dag
        De groeten
        Sanky

  2. Hoi Pierre.

    Ik ben toevallig op je pagina gekomen en was direct geïnteresseerd. Wat mooi zo’n RaspBerry Pi. Ik heb hem inmiddels binnen, incl USB bluetooth en adapter. Nu kan ik het wiel wel zelf uitvinden maar waarom als jij dat al gedaan hebt. 😉

    Inmiddels heb ik de software voor de SMA omvormer gedownload. Ook heb ik gelezen van Samba.
    Welke linux heb jij op je Pi draaien? Ik heb op mijn PC al eens met Suse Linux en wat andere gewerkt zomaar uit nieuwsgierigheid hoe dat werkt. Ik kies zelf wel voor het makkelijk met win7 maar het ziet er gelikt uit!

    Maar misschien kun en wil je me wat bij praten. Dan zal ik eens aan de slag gaan. Maar wat is dat leuk hé! Die zonnepanelen. Ik kan niet wachten tot de zon wat langer gaat schijnen!

    Groetjes Dré
    Waalwijk

    • Hoi Dré,

      Zie ook de uitleg van de installatieprocedure. Zoals daar beschreven staat gebruik ik de standaard Raspbian image van Raspberry Pi.

      • Bedankt Pierre

        Ik zal er eens mee aan de slag gaan.

        Gr Dré
        p.s. Ik zal hier binnenkort een update posten of het gelukt is.

      • Ik heb wat foutjes ontdekt bij mijn input.
        Ten eerste gebruikte ik exact jouw uitleg met de 1600TL omvormer terwijl ik een SB1200 heb. Ik een ander draadje van jouw intoblog zag ik iemand met de codes van die omvormer. Heb die nu gebruikt.

        Ook steeds als ik jouw smatool.c gebruik, komt de melding van
        “update database schema use –UPDATE” wat dan niet werkt als ik dat doe. Zet ik mijn smatool.c er weer dan doet ie het wel..

        Maar ik kijk eerst morgen eens of er nu gegevens op pcoutput.org komen.
        Ik hoop het.

        Leuk projectje zo.. ;-))

        Groetjes Dré

  3. Hoi Pierre.

    Heel weekend bezig geweest en het e.e.a. installeren is gelukt. Zo ben ik nog niet met Linux bezig geweest. Gelukkig heb ik al ervaring met DOS (rond 1991) en kwam me het geven van commando’s via prompt bekend over.

    Ik loop tegen een probleempje aan. Ik heb jou smatool.c gebruikt omdat bij mij geen gegevens geupload werden. Maar komt de melding als ik smatool weer start “update database schem use –UPDATE”
    Dat doe ik maar het werkt niet. Wat doe ik dan fout?

    Hier een schermafdruk.
    http://www.mandre.nl/images/smatool.jpg

    Gr Dré

  4. Hoi Pierre.
    Ik ben toevallig op je pagina gekomen en was ook geïnteresseerd inde Raspberry PI.
    Apparaat besteld, en na enkele dagen stoeien werkt eea.
    Zonder jouw handleiding en deze blog was dit zekers niet gelukt.
    Mijn ervaringen waren dat na het uitvoeren van jouw handleiding eea nog niet werkte, ik zag wel dat de lokale database zich vulde, maar geen upload naar pvoutput website.
    Ook heb ik de “update database schem use –UPDATE” melding gezien, ook de LiveData errors.
    Waar ik achterkwam was dat ik in de source van smatool.c een zg “cariage return” verwerkt was in de debug mode lines.
    Als ik de scripts draaide met optie –d –v zag ik niets gebeuren, todat ik veelvuldig op ging drukken, bij elke cariage return werd de table DayData met een record gevuld…
    Ik heb de source code wel aangepast, maar ben nuiet echt geen expert in programming, ben ik dus maar mee gestopt.

    Hierna helemaal opnieuw begonnen (nu met 2012-12-16-wheezy-raspbian) en heb ik een een update gedownload:
    sma-bluetooth-18.tar.gz from the SMA web:
    http://code.google.com/p/sma-bluetooth/downloads/list
    de inhoud uitgepakt, en naar de directory gekopieerd (na onderstaande cmd line in jouw handleiding:
    > hg clone https://sma-bluetooth.googlecode.com/hg/ sma-bluetooth

    Compliled met make cmd.
    Verder jouw handleiding weer afgewerkt (fixes in smatool.c niet toegepast), maar na het installeren van de smatool database ook nog de LiveData table toegevoegd:
    > mysql -h localhost -u root –p
    > use smatool;
    > CREATE TABLE `LiveData` (`id` BIGINT NOT NULL AUTO_INCREMENT , `DateTime` datetime NOT NULL,`Inverter` varchar(10) NOT NULL,`Serial` varchar(40) NOT NULL, `Description` char(20) NOT NULL ,`Value` INT NOT NULL ,`Units` char(20) NOT NULL ,`CHANGETIME` timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00′ ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY (`DateTime`,`Inverter`,`Serial`,`Description`),PRIMARY KEY ( `id` ) ) ENGINE = MYISAM;
    (Vgls mij was dit voor mij niet nodig, aangezien deze tabel tot op heden niet gevuld wordt.)

    Hierna werd de DayData table ook weer gevuld na het runnen van smatool, maar nog geen upload naar pvoutput, ook niet met –d –v optie.
    Oorzaak hiervan was dat smatool.c probeerde vanaf > 30 dagen te uploaden.
    Aangezien ik dit niet nodig had, heb ik deze info handmatig aangevuld met onderstaande cmd:
    mysql> update DayData set PVOutput = “2012-12-22 09:00:00” where DATEDIFF(curdate(), DateTime) > 0;
    zoadat smatool niet langer probeert deze data te uploaden.
    Hierna de taak toegevoegd aan crotab, en sinds 2 dagen draait eea.
    Mogelijk dat bovenstaande info anderen helpt om dit draaiende te krijgen.

    Mvgr
    Jan

    • Hoi Jan,

      Dank je voor je uitgebreide reactie!
      Ik heb inderdaad / helaas (sorry!) al een tijdje geen tijd gehad (kunnen maken) om de instructies bij te werken. Ik hoop dat anderen hiermee weer even vooruit kunnen.

    • Alles een keer opnieuw gedaan met de aanvulling van Jan, waarvoor mijn dank.
      Zoals al eerder gemeld. Wel eens met Linux gewerkt maar dat waren de Desktop versie zoals UBUNTU etc dus echt de commando’s zijn bij mij niet allemaal bekend.

      Wel wat ervaring in begin jaren 90 met DOS dus dat maakt voor mij iets goed.
      Voor jullie zal het gesneden koek zijn, maar ik loop tegen iets aan wat ik niet helemaal begrijp.
      Bijna op het eind moet ik het omdat het niet aan te raden het MySQL root password in de smatool.conf file te hebben, een nieuwe user en password aanmaken.

      Dit doe je met;
      ———————————————————————————————–
      > mysql -h localhost -u root –p

      (enter your root password when requested)

      Then enter:

      Mysql> GRANT select,update,delete,insert ON smatool.* TO ‘smatool’@’localhost’ IDENTIFIED BY ‘mysecret’;
      (replace mysecret with your own password)

      Press CTRL+D to exit
      ———————————————————————-
      Maak ik hieruit op dat de nieuwe usernaam is smatool en het password mysecret?
      Dat moet ik dan dus invullen in mijn smatool.conf file?

      Morgen weer verder als de zon schijnt….
      Bedankt
      Groeten Dré

    • Ik heb één en ander opnieuw geprobeerd volgens de handleiding en de aanvulling van Jan. Er worden gegevens uitgelezen vanaf de SMA SB1200.
      Maar er wordt naar mijn idee geen DAYDATA tabel gemaakt.

      Ik heb de volgende commando gebruikt die Jan ook gebruikt heeft;

      mysql> update DayData set PVOutput = “2012-12-22 09:00:00” where DATEDIFF(curdate(), DateTime) > 0;

      Maar ik krijg de volgende melding.
      Dat de function smatool.daydata niet bestaat.

      Zie screenshot op http://www.mandre.nl/pi-raspberry.jpg

      Op deze screenshot kun je ook zien wat ik krijg als ik ./smatool uitvoer.
      Wie kan mij een gouden tip geven? Wat kan ik nog verder proberen?

      Alvast bedankt.
      Dré

  5. Hoi Pierre,

    Hartelijk dank voor de instructies. Ik heb ongeveer dezelfde setup als jij: SMA1600TL met BT PiggyBack, Rapsberry Pi met Debian (Raspbian en Ubuntu zijn afgeleid van Debian). Ik heb jouw aanpassingen in sma-bluetooth.c en de LiveData-toevoeging in mysql overgenomen. Mijn smatool leest wel veel data van de PiggyBack maar schrijft heel weinig naar de tables. LiveData wordt correct gevuld, maar DayData bevat slechts een stuk of 10 rijen (elke keer dat ik smatool draai zijn het weer andere), en dat zijn alleen data uit de eerste dagen na installatie van de inverter, ruim 2 maanden geleden. In debug-mode zie ik wel van alles voorbij komen, maar dat komt dus niet in de DayData tabel terecht. Uiteindelijk blijft smatool hangen. De laatste debug-info:


    Receiving
    00000000: .. .. .. .. .. .. .. .. .. .. .. .. 7e 21 00 5f
    00000010: 35 f8 26 25 80 00 30 00 00 85 13 00 01 00 30 70
    00000020: e1 50 53 77 01 00 00 00 00 00 68 29 7e rr=33

    len=60 data=80 6b e1 50 3b 77 01 00 00 00 00 00 ac 6c e1 50 43 77 01 00 00 00 00 00 d8 6d e1 50 4a 77 01 00 00 00 00 00 04 6f e1 50 4e 77 01 00 00 00 00 00 30 70 e1 50 53 77 01 00 00 00 00 00

    31/12/2012 11:40:00 total=96.059 Kwh current=829944 Watts togo=0 i=11 crc=1083822408
    INSERT INTO DayData ( DateTime, Inverter, Serial, CurrentPower, EtotalToday ) VALUES ( FROM_UNIXTIME(1351509000),'1600TL',2002191736,120, 26.533 ) ON DUPLICATE KEY UPDATE DateTime=Datetime, Inverter=VALUES(Inverter), Serial=VALUES(Serial), CurrentPower=VALUES(CurrentPower), EtotalToday=VALUES(EtotalToday)
    ^C

    Ook die laatste INSERT wordt niet gedaan, terwijl het volgens mij een perfecte instructie is. Hierna hangt smatool en moet ik afbreken met ^C.
    Wat ik wel heb is veel regels met een onmogelijk hoge “current”, zie boven. Dat zal een probleem van de inverter zijn (SMA zal het wel een feature noemen) en ik zou die regels meteen na het inlezen willen overslaan, maar dat is mij nog niet gelukt.

    Enig idee wat dit kan zijn?

    Roel

    • Hoi Roel.

      Leuk zo die raspberry Pi hé!
      Ik ben er ook mee bezig en heb hetzelfde probleem als jou denk ik. De smatool loopt wel maar maakt het e.e.a. niet af. Er zijn totaal zo’n 667 regels en de laatste zijn;

      [58] 2012-12-31 15:42:17 Waiting for string
      [58] 2012-12-31 15:42:17 waiting for: 7e 5a 00 24 e6 25 a5 25 80 00 30 08 00 81 1f 00 01 00 7e ff 03 60 65

      [58] 2012-12-31 15:42:17 Waiting for data on rfcomm
      [24] 2012-12-31 15:42:57 Sending
      [24] 2012-12-31 15:42:57 sending:
      00000000: .. .. .. .. .. .. .. .. .. .. .. .. 7e 14 00 6a
      00000010: 00 00 00 00 00 00 e6 25 a5 25 80 00 03 00 05 00 cc=20

      [25] 2012-12-31 15:42:57 Waiting for string
      [25] 2012-12-31 15:42:57 waiting for: 7e 18 00 66 e6 25 a5 25 80 00 00 00 00 00 00 00 04 00 05 00 00 00

      [25] 2012-12-31 15:42:57 Waiting for data on rfcomm

      En dan houdt het op. Ik snap het niet.
      Nu mist er bij de expertise bij Linux.

      Gelukkig werken mijn zonnepanelen wel gewoon goed.. 😉
      Aan de tijd te zien is het wel op het moment dat ik de opdracht uitvoer dus leest wel tot de laatste gegevens uit.

      Maar ja, waar kan het aan liggen?
      Gr Dré

Sorry, het reactieformulier is momenteel gesloten.