Hallo in die Runde,
ich habe jetzt mal eine PHP script (mit hilfe von Frank aus einem anderem Forum), wo ich den Vorrat auslesen und in eine DB schreiben kann, ohne spezille Programme:
erweitern kann man das dann jederzeit
PHP
<?php
/* *******************************************
Skript: Definition und Auslesen von Werten
aus einer ETA Heizung
******************************************* */
header('Content-Type: text/html; charset=utf-8');
// Heizungsanlage ETA
$ETAprotocol = 'http';
$ETAserver = '<ip-address>';
$ETAport = '8080';
// Zu lesende Werte
$userVars = [
'/40/10201/0/0/12015'
];
// Öffne Verbindung zur Heizung
$eta = curl_init();
// Fange Ergebnis in Variable ab
curl_setopt($eta, CURLOPT_RETURNTRANSFER, TRUE);
// Auslesen der Menüstrutkur um die Bezeichnung der URI zu holen
curl_setopt($eta, CURLOPT_URL, $ETAprotocol.'://'.$ETAserver.':'.$ETAport.'/user/menu');
$_output = curl_exec($eta);
$_info = curl_getinfo($eta);
// Speichern der XML Menüstruktur
$menuXml = $_output;
// Erzeugen eines DOM von Menü
$menu = new DOMDocument();
$menu -> loadXML($menuXml);
$menuDom = new DOMXPath($menu);
$menuDom -> registerNamespace('eta', 'http://www.eta.co.at/rest/v1');
foreach($userVars as $userVar) {
// Auslesen jeder einzelenen Variable
curl_setopt($eta, CURLOPT_URL, $ETAprotocol.'://'.$ETAserver.':'.$ETAport.'/user/var'.$userVar);
$_output = curl_exec($eta);
$_info = curl_getinfo($eta);
// Speichern der abgefragten Werte der Benutzervariable
$varXml = $_output;
// Erzeugen eines DOM der Benutzervariable
$var = new DOMDocument();
$var -> loadXML($varXml);
$varDom = new DOMXPath($var);
$varDom -> registerNamespace('eta', 'http://www.eta.co.at/rest/v1');
// Beginne Handling der Abfrage
// Beschreibung aus Menü
$menuDescs = $menuDom->query('//eta:object[@uri="'.$userVar.'"]');
$name = '';
foreach ($menuDescs as $menuDesc)
$name = $menuDesc->getAttribute('name');
echo "<p>$name</p>";
// Wert und Einheit aus den Variablen auslesen ($varDom)
$menuVars = $varDom->query('//eta:value[@uri="/user/var'.$userVar.'"]');
$menge = '';
foreach ($menuVars as $menuVar)
$menge = trim($menuVar->getAttribute('strValue'));
echo "<p>$menge</p>";
// Wert und Einheit aus den Variablen auslesen ($varDom)
$menuVars = $varDom->query('//eta:value[@uri="/user/var'.$userVar.'"]');
$einheit = '';
foreach ($menuVars as $menuVar)
$einheit = trim($menuVar->getAttribute('unit'));
echo "<p>$einheit</p>";
}
// Sende an mySQL...
error_reporting(E_ALL);
ini_set('display_errors', true);
// Zugangsdaten zur Datenbank
$host = "<ip-address>:<port>"; // Host-Adresse
$database = "<DBName>"; // Datenbankname
$user = "<User>"; // Benutzername
$password = "<password>"; // Passwort
$connection = new mysqli($host, $user, $password, $database);
$connection->set_charset("utf8mb4");
if ($connection->connect_error)
{
die("Connection failed: " . $connection->connect_error);
echo "<p>connection failed</p>";
}
$debug = false;
//Grunddaten in Datenbank schreiben
$sqlQuery = "INSERT INTO eta
(NAME, MENGE, EINHEIT)
VALUES ('" . $name . "', '" . $menge . "', '" . $einheit . "')";
echo "<table border='1'>";
if ($connection->query($sqlQuery) === TRUE)
{
echo "<p>Die Übertragung Ihrer Daten war erfolgreich. Folgende Daten wurden gespeichert:</p>";
echo "<tr><td>Name: </td><td><b>".$name."</b></td></tr>";
echo "<tr><td>Menge: </td><td><b>".$menge."</b></td></tr>";
echo "<tr><td>Einheit: </td><td><b>".$einheit."</b></td></tr>";
}
else
{
echo "Error: " . $sqlQuery . "<br>" . $connection->error;
echo "Fehler bei der Bearbeitung... ";
}
echo "</table>";
$connection->close();
// Schliesse Verbindung zur Heizung
curl_close($eta);
?>
Alles anzeigen