Solarview für Linux unterstützt nun MQTT

  • Hi,

    Eigenverbrauch = Erzeugt (kommt vom Wechselrichter) abzüglich Eingespeist (kommt vom Zähler).

    d0-fb kann Dateien einlesen - das Format findest Du in der Anleitung unter http://www.solarview.info/d0_fritzbox_installieren.pdf -> Einlesen aus einer Datei. Ein Beispiel zum Aufbau der Datei findest Du auf Seite 13. Wichtig sind die Kennzahlen für Eingespeist/Bezogen (z.B. 1.8.1 und 2.8.1 und ggf. die Leistung (z.B. 21.7.0)


    Viele Grüsse,

    Manfred

  • Danke.


    bei D0 in der Start.cfg muss also z.B. -I 11000-file -cs7 /home/pi/svrpi/obis/obis.txt stehen.


    In diese Datei speichere ich zeilenweise im Klartext welche Werte?


    Beispielhaft die Werte



    1-0:1.8.0*255(008654.0000) // Gesamtbezog 181 und 182

    1-0:2.8.0*255(000030.0000) // 30kW Gesamteinspeisung


    Hast Du bitte mal eine Musterdatei zur Verfügung?

  • -cs7 kannst Du weg lassen, das braucht es nur bei einer seriellen Schnittstelle. Der Inhalt einer Beispieldatei sieht in etwa so aus:


    Code
    /ELS5@V9.31
    1-0:1.8.0*255(008654.0000)
    1-0:2.8.0*255(000030.0000)
    1-0.1.7.0*255(000626.0000)
    !



    "/" am Anfang kündigt den Datensatz an, das "!" am Schluss schliesst ihn ab. Die Leistung sollte auf auf jeden Fall mit rein, da bei der Auflösung von 1kWh bei Einspeisung/Bezug diese nicht berechnet werden kann.


    Viele Grüsse,

    Manfred

  • Wunderbar.


    jetzt kämpfe ich mit der Sicherheit. Ich werde es zwar nicht mehr verstehen, dass man auf einem eigenen Server, ohne Zugriff durch Dritte mit den Rechten zu kämpfen hat, doch ändern kann ich es ja nicht.


    Die Datei soll bei svrpi im Verzeichnis obis stehen. Meine obis.php in /var/www muss also Schreibrechte dafür bekommen. Kannst Du mir auch noch dabei helfen?

  • Danke für die Info. Hier das Ergebnis. Bei einem neuen Ergebnis wird ein neuer Datensatz geschrieben. Wie kann ich nun prüfen, ob d0 die Daten auch einliest?


    <?php

    echo get_current_user(); //Acer

    echo exec('whoami'); //admin

    $d1 = "1-0:1.8.0*255(".substr("000000".$_GET["d1"],-6).".000)"."\r\n";

    $d2 = "1-0:2.8.0*255(".substr("000000".$_GET["d2"],-6).".000)"."\r\n";

    $d3 = "1-0:1.7.0*255(".substr("000000".$_GET["d3"],-6).".000)"."\r\n";

    $filename = "/home/pi/svrpi/obis/obis.txt";

    $filestatus = file_put_contents($filename,"ELS5@V9.31\r\n");

    $filestatus = file_put_contents($filename,$d1,FILE_APPEND);

    $filestatus = file_put_contents($filename,$d2,FILE_APPEND);

    $filestatus = file_put_contents($filename,$d3,FILE_APPEND);

    $filestatus = file_put_contents($filename,"!"."\r\n",FILE_APPEND);

    if ($filestatus != false)

    {

    echo " Erfolgreich";

    }

    else

    {

    echo " Fehler";

    }

    ?>

  • Offensichtlich noch Probleme. Beim Aufruf zu Fuss:


    pi@FHEM-Solarview-MQTT:~/svrpi/d0 $ ./d0-fb -I 11000 -file /obis/obis.txt

    -bash: ./d0-fb: Keine Berechtigung


    drwxrwxrwx 2 root root 4096 Nov 23 14:50 obis

    -rwxrwxrwx 1 root root 96 Nov 24 11:03 obis.txt


    Wie kann ich das bereinigen?

  • Hallo,


    die Daten werden nun in der obis.txt gespeichert. Ich habe den d0 mit -d gestartet und das Ergebnis mal beigefügt.

    Ist das so richtig? Sieht meiner Meinung nach nicht so aus.


    TimeStamp 26.11.2021 15:13:30

    Answer[0] = {01;FB;80|64:DYR=15;DMT=B;DDY=1A;THR=F;TMI=D;PIN=1C20;GKT0=311F;GKYR=12A2;GKMT=0;GKDY=0;BKT0=21FE;BKYR=C82;BKMT=0;BKDY=0;TYP=2706;SYS=4E21|239F}

    Leaving PrepareAnswer()

    Enter isSML(len 96)

    Enter foundSMLEnd(len 96)

    Enter findSMLStart(len -1)

    SML Header nicht gefunden - Klartext?

    Bitte d0-fb ggf. mit Parameter -cs7 neu starten.

    Parse nun /ELS5@V9.31

    1-0:1.8.0*255(008702.000)

    1-0:2.8.0*255(012575.000)

    1-0:1.7.0*255(000346.000)

    !


    Parse /ELS5@V9.31

    Telegram-Anfang '/' gefunden - Reset Temp-Values

    Parse 1-0:1.8.0*255(008702.000)

    Bezug: 8702.0000

    Parse 1-0:2.8.0*255(012575.000)

    Geliefert: 12575.0000

    Parse 1-0:1.7.0*255(000346.000)

    PAC: 346

    Parse !

    pac_sign_cnt: 2

    Delta Gel: 0.0000 Bez:0.0000

    Entering CalcTagesErtrag_neu()

    TagesErtrag_neu[0]: 0.0 kWh (12575.0 - 12575.0)

    TagesBezug_neu[0]: 0.0 kWh (8702.0 - 8702.0)

    Leaving CalcTagesErtrag_neu()

    Entering CalcMonatsErtrag_neu()

    MonatsErtrag_neu[0]: 0.0 kWh (12575.0 - 12575.0)

    MonatsBezug_neu[0]: 0.0 kWh (8702.0 - 8702.0)

    Leaving CalcMonatsErtrag_neu()

    Entering CalcJahresErtrag_neu()

    JahresErtrag_neu[0]: 4770.0 kWh (12575.0 - 7805.0)

    JahresBezug_neu[0]: 3202.0 kWh (8702.0 - 5500.0)

    Leaving CalcJahresErtrag_neu()


    Und hier noch die MQTT Ausgabe: Scheint nichts anzukommen.