So, nun habe ich die Lösung des Problems. Aber zu aller erst einen RIESEN Dank an Frank Staude vom Word press Blog, er hat die Lösung erarbeitet.
Nachstenden Code in die functions.php des Word Press Themes (oder besser Childthemes) kopieren, danach hat man einen neuen „Shortcode“ syncom zur verfügung dem muss man nur mehr die ID des Sensors übergeben.
(im Word Press auf Reiter „Design“ gehen. Dann auf Reiter Editor gehen. Dann in der Spalte ganz rechts unter Templates auf die zeile Theme-Funktionen klicken und im php Programm den nachstehenden Code einfügen.
Danach genügt auf der Homepage Seite wo man einen Sensor Wert haben möchte nur mehr nachstehenden Shortcode einfügen - fertig.
Beispiel:
Temperatur von 11553 ist: [syncom param=11553]
Liefert als Ausgabe:
Temperatur von 11553 ist: 46,3 °C
Code:
add_shortcode(‚syncom‘, ‚syncom‘);
function syncom( $atts ) {
extract( shortcode_atts( array(
‚param‘ => ‚‘,
), $atts ) );
$data_string = ‚{„jsonrpc“:„2.0“,„method“:„GetValueFormatted“,„params“:[‘.$param.’],„id“:„1“}’;
$ch = curl_init(‚http://deine IP Adresse:dein Port/api/‘);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, „POST“);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
‚Content-Type: application/json‘,
'Content-Length: ’ . strlen($data_string))
);
curl_setopt($ch, CURLOPT_USERPWD, ‚user id von ip Symcon Fernzugriff:Kennwort‘);
$result = json_decode(curl_exec($ch));
return $result->result;
}
Für meine Zwecke reicht das einstweilen. Ich bin leider auch kein Programierer und kann die nachstehenden empfehlungen von Frank Staude leider auch nicht umsetzen. Sollte jemand im Blog dies können wäre ich froh wenn das jemand machen könnte.
[i]Damit das wirklich sauber ist sollte man mindestens
- als Plugin implementieren
- die Werte via TransientAPI cachen, damit nicht bei jedem Seitenabruf die API bemüht wird
- Abprüfen auf Fehler
- ggf weitere API Methoden implementieren
- Pfad und Zugangsdaten über eine Optionsseite einpflegen.
Der Code zeigt nur das es geht, ist aber eigentlich noch nicht für Produktivsysteme geeignet.[/i]