Ich hab eben noch einen kleinen Connector für EVCC fertig gemacht.
Wer meinen LBS für solcast nutzt, kann die Werte über das angehängte PHP-Skript an EVCC exportieren.
In der PHP-Datei muss
$targetID = 83;
auf den richtigen Wert gesetzt werden. Hier nimmt man den Wert aus E7/E8/E9, was bei einem am besten hinkommt. Ich nutze meistens E8, da liege ich an unbeständigen Tagen ca. 15-20% daneben.
Diese legt man dann irgendwo unter edomi/www ab und trägt dann die IP-Adresse von Edomi + URL in der evcc-Config ein.
in EVCC muss dann noch folgender Eintrag in der evcc.yaml unter tariffs hinzugefügt werden.
Wer meinen LBS für solcast nutzt, kann die Werte über das angehängte PHP-Skript an EVCC exportieren.
In der PHP-Datei muss
$targetID = 83;
auf den richtigen Wert gesetzt werden. Hier nimmt man den Wert aus E7/E8/E9, was bei einem am besten hinkommt. Ich nutze meistens E8, da liege ich an unbeständigen Tagen ca. 15-20% daneben.
Diese legt man dann irgendwo unter edomi/www ab und trägt dann die IP-Adresse von Edomi + URL in der evcc-Config ein.
in EVCC muss dann noch folgender Eintrag in der evcc.yaml unter tariffs hinzugefügt werden.
Code:
tariffs: solar: type: custom interval: 30m forecast: source: http uri: http://192.168.1.101/verbrauch/solcast.php
PHP-Code:
<?php
/*
* Edomi <> EVCC custom json-feed
* (w),(c) 2025 by Nima Ghassemi Nejad (sipiyou@hotmail.com)
*
* v 1.0 - 27.06.2025 - initial release
*
* set $targetID to the right value
*/
header('Content-Type: application/json');
$host = 'localhost';
$db = 'edomiLive';
$user = 'root';
$pass = '';
$targetID = 83;
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare("
SELECT
DATE_FORMAT(datetime, '%Y-%m-%dT%H:%i:%sZ') AS start,
DATE_FORMAT(datetime + INTERVAL 30 MINUTE , '%Y-%m-%dT%H:%i:%sZ') AS end,
gavalue AS value
FROM archivKoData
WHERE datetime >= UTC_TIMESTAMP()
AND datetime < UTC_TIMESTAMP() + INTERVAL 72 HOUR
and targetid=$targetID
ORDER BY datetime
");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as &$row) {
$row['value'] = floatval($row['value']);
}
echo json_encode($results, JSON_PRETTY_PRINT);
} catch (PDOException $e) {
error_log("Database error: " . $e->getMessage());
echo json_encode([]);
}
?>