Dies ist eine alte Version des Dokuments!
Fronius Symo & Primo
Die Solarwechselrichter Symo und Primo der Firma Fronius bieten die Möglichkeit über Ethernet die Betriebsdaten auszulesen. Eine Lösung für VZ ist dabei den PUSH-Dienst des Umrichters zu nutzen. Dieser sendet dann in regelmäßigen Abständen ein JSON das von einem php-Script mittels curl-Aufruf zur Middleware weitergereicht wird.
Fronius(Push) –> fronius.php –> middleware.php
Software
PHP-Curl ist Vorausetzung.
sudo apt-get install php7.0-curl
Danach den Webserver neu starten:
service apache2 restart
Kanal
Der Kanal in VZ wird als El. Energie (Leistungswerte) angelegt.
Script
/var/www/volkszaehler.org/htdocs/fronius.php
:
UUID des Kanals eintragen, bei Bedarf die Hostadresse anpassen.
<?php //Config: $HOST = 'http://127.0.0.1/volkszaehler.org/htdocs/middleware.php/data/'; $UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; // Fronius-UUID (El. Energie (Leistungswerte) $froniusdata = file_get_contents('php://input'); $json = json_decode($froniusdata, true); $timestamp = $json['Head']['Timestamp']; $unixtimestamp = strtotime($timestamp)*1000; $power_current = $json['Body']['PAC']['Values'][1]; //$power_day = $json['Body']['DAY_ENERGY']['Values'][1]; //$power_year = $json['Body']['YEAR_ENERGY']['Values'][1]; //$power_total = $json['Body']['TOTAL_ENERGY']['Values'][1]; // in case the inverters sends an empty message if($power_current =='') exit(); $Link = "{$HOST}{$UUID}.json?operation=add&ts={$unixtimestamp}&value={$power_current}"; // create curl resource $ch = curl_init(); // set url curl_setopt($ch, CURLOPT_URL, $Link); //return the transfer as a string curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // $output contains the output string $output = curl_exec($ch); // close curl resource to free up system resources curl_close($ch);
Fronius
PUSH-Dienst am Wechselrichter wie folgt einrichten, dabei die IP-Adresse des Volkszählers eintragen.