PHP-Code:
<?
/*Write2InfluxDb by SCS-Showtec GbR
Basierend auf Idee und Beispiel von "thezepter"
Jakob-Degen-Straße 64
73614 Schorndorf
Autor :Johannes Holzwarth
Verison 1.0 13.01.2019*/
function Write2Influx($id, $host, $db, $system, $category, $valuename)
{
$out ='http://'.$host.':8086/write?db='.$db.'';
$ch = curl_init($out);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST, 1 );
$vartype = IPS_GetVariableCompatibility($id)['VariableType'];
/*0: Boolean, 1: Integer, 2: Float, 3: String*/
echo $vartype.' ';
switch ($vartype){
case 0:
$value = GetValueBoolean($id) ;
if ($value == true){
curl_setopt($ch, CURLOPT_POSTFIELDS, $system.','.$category.'='.$valuename.' value=1');
}
else{
curl_setopt($ch, CURLOPT_POSTFIELDS, $system.','.$category.'='.$valuename.' value=0');
}
echo 'es war ein bool ';
break;
case 1:
$value = GetValueInteger($id) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, $system.','.$category.'='.$valuename.' value=' .$value);
break;
case 2:
$value = GetValueFloat($id) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, $system.','.$category.'='.$valuename.' value=' . number_format($value/1,1,'.','') );
echo 'es war ein float ';
break;
}
$result=curl_exec ($ch);
$error=curl_error($ch) ;
echo $result ;
echo $error ;
}
$host = '192.168.2.2';
Write2Influx(28645 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Betriebszustand\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'betriebszustand'); // kopieren und die Bezeichnungen den eigenen Bedürfnissen und Werten anpassen
Write2Influx(39535 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Abgegebene Leistung Batterie Gesamt\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'abgabegesamt');
Write2Influx(43920 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Aktuelle Kapazität SOC\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'soc');
Write2Influx(48435 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Aktuelle Kapazität SOH\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'soh');
Write2Influx(38129 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Anzahl Volladungen\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'anzahlvolladungen');
Write2Influx(42708 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Aufgenommene Leistung Batterie Gesamt\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'aufnahmegesamt');
Write2Influx(13982 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Batterieladung (-) Entladung (+) Leistung\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'ladenentladen_W');
Write2Influx(15014 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Batterieladung (-) Entladung (+) Strom\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'ladenentladen_A');
Write2Influx(28490 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Battery state of charge for protection mode\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'socschutz');
Write2Influx(52646 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Energiesparmodus aktiviert (1129=Yes 1130=No)\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'powersafemode');
Write2Influx(18721 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Fehler Ladezustand\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'socfehler');
Write2Influx(59083 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Nennkapazitätsdurchsätze\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'anzahlladungsdurchs');
Write2Influx(24323 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Obere Kapzitätsgrenze für Wiedereinspeisung\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'oberesocgrenzechargein');
Write2Influx(42655 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Untere Kapzitätsgrenze für Einspeisesperre\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'unteresocgrenzechargestop');
Write2Influx(39691 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Untere Entladegrenze für Eigenverbrauchsbereich\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'minselfdischarg');
Write2Influx(36215 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Zeit bis zur nächsten Ausgleichsladung\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'zeitbisausgleichsla');
Write2Influx(39414 /*[PHP_Module\SMA\Sunny Island 8.0H\selbstauslesen\Zeit bis zur nächsten Vollladung\Wert]*/, $host, 'symcon', 'pv', 'sunnyisland', 'zeitbisvolla');
Write2Influx(26603 /*[PHP_Module\SMA\Sunny Island 8.0H\Netzfrequenz]*/, $host, 'symcon', 'pv', 'sunnyisland', 'netzfrequenz');
Write2Influx(17718 /*[PHP_Module\SMA\Sunny Island 8.0H\Netzspannung L1 gegen N]*/, $host, 'symcon', 'pv', 'sunnyisland', 'netzspannung');
Write2Influx(28063 /*[PHP_Module\SMA\Sunny Island 8.0H\Batterietemperatur]*/, $host, 'symcon', 'pv', 'sunnyisland', 'batttemp');
Write2Influx(57296 /*[PHP_Module\SMA\Sunny Island 8.0H\Batteriespannung]*/, $host, 'symcon', 'pv', 'sunnyisland', 'battspannung');
Write2Influx(35685 /*[PHP_Module\SMA\Sunny Island 8.0H\Zustand Wartungsladung der Batterie]*/, $host, 'symcon', 'pv', 'sunnyisland', 'zustwartladung');
?>
Laufzeit... 23 Sekunden ! Ich KOTZ ab... Ich vermute es liegt am btrfs Dateisystem... hätte damals ext4 nehmen sollen :-(