Hallo Markus,
ich habe kurz vor dem Part mit der Übertragung der Daten an die Homematic Zentrale folgendes eingefügt - hier am Beispiel des Fronius Symo WR:
Code: Alles auswählen
/********************************************************************
// Daten auf ein KO in EDOMI schreiben
*********************************************************************/
$arrayEDOMI = array(
$aktuelleDaten["Datum"],
$aktuelleDaten["Uhrzeit"],
$aktuelleDaten["WattstundenGesamtHeute"]/1000,
$aktuelleDaten["WattstundenGesamtJahr"]/1000,
$aktuelleDaten["WattstundenGesamt"]/1000,
$aktuelleDaten["Geraetestatus"],
$aktuelleDaten["ErrorCodes"],
$aktuelleDaten["Solarstrom"],
$aktuelleDaten["Solarstrom_String_1"],
$aktuelleDaten["Solarstrom_String_2"],
$aktuelleDaten["Solarspannung"],
$aktuelleDaten["Solarspannung_String_1"],
$aktuelleDaten["Solarspannung_String_2"],
$aktuelleDaten["AC_Wirkleistung"],
$aktuelleDaten["AC_Ausgangsstrom"],
$aktuelleDaten["AC_Ausgangsstrom_R"],
$aktuelleDaten["AC_Ausgangsstrom_S"],
$aktuelleDaten["AC_Ausgangsstrom_T"],
$aktuelleDaten["AC_Ausgangsspannung"],
$aktuelleDaten["AC_Ausgangsspannung_R"],
$aktuelleDaten["AC_Ausgangsspannung_S"],
$aktuelleDaten["AC_Ausgangsspannung_T"],
$aktuelleDaten["AC_Ausgangsfrequenz"],
$aktuelleDaten["Temperatur"]);
$EDOMIWR1 = implode (",",$arrayEDOMI);
$urlKO2122 = "http://192.168.0.21/remote/?login=geheim&pass=nochgeheimer&koid=2122&kovalue=$EDOMIWR1";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $urlKO2122);
$result = curl_exec($ch);
Dies habe ich vor folgende Befehlszeilen eingefügt:
if (isset($aktuelleDaten["Zelle1Status"]) and isset($aktuelleDaten["Regler"])) {
/*********************************************************************
// Jede Minute werden bei Bedarf einige Werte zur Homematic Zentrale
// übertragen.
*********************************************************************/
Und nun zur kurzen Erklärung:
Du bildest ein Array aus den akteullenDaten wie sie bei
Deinem Regler vorkommen. Hierzu müsstest Du halt das Script durchsehen welche Daten abgefragt werden und wie diese benannt sind.
Hilfsweise könntest du auch die Protokollierung auch mal auf 10 setzen und im Log die Einträge bei den aktuellen Werten ansehen ($Tracelevel = 7; // 1 bis 10 10 = Debug).
In der Befehlszeile $EDOMIWR1 = implode (",",$arrayEDOMI);; wird der Trenner zwischen den einzelnen Daten vergeben. Bei mir ein Komma ",". Evtl. kannst/musst Du hier was anderes angeben.
Die Befehlszeile $urlKO2122 = "
http://192.168.0.21/remote/?login=gehei ... =$EDOMIWR1" ist die URL mit der gebildeten Veriable $EDOMIWR1. Die IP-Adresse, evtl. login-Daten usw. musst Du natürlich anpassen.
Der Rest des Codes ist dann der "curl" Befehl.
Ich habe aber leider nur geringste php-Kenntnisse. Alles was ich erreicht habe musste ich mir scheibchenweise aus dem Internet zusammensuchen. Aber es funktioniert.
Wenn Dir die aktuellen Daten im Format nicht passen, könnte man auch noch kleine Rechenoperationen (z.B. /1000) vor der Übergabe berechnen lassen - sh. Oben im Arry bei Wattstunden.
Bei Fragen bitte melden.
Grüße
Thomas