NEWS
1-Wire Gateway
-
Hallo zusammen,
ich habe bislang ein IP-Symcon System und habe meine 1-wire Sensoren über das Gateway von IP-Symcon angebunden.
Ich würde nun gerne die Sensordaten nach IOBroker bringen. Da das Gateway sowieso im Netz hängt, dachte ich, wäre es das einfachste, wenn ich direkt von dort die Daten abhole. Geht das irgendwie? Hat jemand Erfahrung mit dem Gateway?
Oder gibt es eine andere einfache Methode? Die Alternative wäre einen Raspi als Slave zu nehmen (der IOBroker Host läuft als VM und ich möchte keine Hardware direkt daran anschliessen), der die Daten direkt einsammelt. Aber das wäre halt ein weiteres Device, das Strom braucht und potentiell Probleme macht.
Danke und VG,
Markus
-
Erfahrun keine, aber vielleicht hilft das weiter:
viewtopic.php?p=140661#p140661
Besserwissermodus an: einfach mal die Suchfunktion hier verwenden. Besserwissermodus aus
[emoji4]
Mit Tapatalk von unterwegs
-
Hallo Fred,
danke.
Ja, den anderen Eintrag kenne ich. Leider wird anscheinend der Adapter nicht so schnell weiterentwickelt. Es hat sich einiges am Anfang getan, nun ist er etwas eingeschlafen.
Ausserdem wäre eine direkte Ansteuerung des Devices langfristig besser, dann müsste IPSymcon nicht immer laufen, um die Daten zu erhalten.
Und ja, ich habe vieeel gegoogelt Auch hier und auch im IPSymcon Forum. Leider bin ich nicht wirklich fündig geworden.
Danke und VG,
Markus
-
Da das Gateway sowieso im Netz hängt, dachte ich, wäre es das einfachste, wenn ich direkt von dort die Daten abhole. Geht das irgendwie? Hat jemand Erfahrung mit dem Gateway? `
Was willlst Du denn genau machen? Soll IP-Symcon die Daten nach ioBroker schieben, dann kannst Du einfach den https://github.com/ioBroker/ioBroker.simple-api nutzen und schickst die Daten an einen Datenpunkt in iobroker.Du brauchst dazu den Datenpunkt in iobroker den Du beschreiben willst und den Datenpunkt der die Daten enthält, die von ioBroker zurückgeben werden sollen und den Wert der an iobroker übergeben werden soll.
function ioBroker_SendCustomCommand($ioBrokerIP, $send_command_id, $get_response_id, $value) { $apijson = file_get_contents("http://".$ioBrokerIP.":8087/set/".$send_command_id."?value=".$value); $api = json_decode($apijson); IPS_Sleep(1000); $response = file_get_contents("http://".$ioBrokerIP.":8087/getPlainValue/".$get_response_id); return $response; }
Das schicken ist sicher besser, da Du nur bei Variablenänderung in IP-Symcon etwas an iobroker schicken kannst.
Anderfalls müstest Du die Daten mit iobroker abholen, dazu gehts Du ganz normal über https://www.symcon.de/service/dokumentation/entwicklerbereich/datenaustausch/, dann must Du aber regelmäßig abfragen.
-
Hi Fonzo,
Vielen Dank!
Das wäre genau das was ich suche (wenn ich das Device nicht direkt auslesen kann). Am liebsten würde ich den ganzen Variablenbaum von IPSymcon entweder zeitgesteuert (zB alle 5 Minuten) oder getriggert nach IOBroker spiegeln (es reicht für fast alle Variablen in eine Richtung IPSymcon nach IOBroker, nur 4 Variablen in die andere).
Aber so ganz verstehe ich nicht was ich alles anstellen muss:
-
Den Simple Adapter in IOBroker installieren.
-
Die Routine unten in ein IPSymcon PHP Programm packen (wie kann ich das Programm dann getriggert auf Änderungen starten?)
-
Die Variablen $ioBrokerIP etc mit der IP des IOBroker beschreiben
-
value ist der Pointer auf meine IPSymcon Variable?
Und das dann für jede Variable einzeln?
Also ungefähr so auf der IPSymcon Seite (sorry bin kein Entwickler…):
Danke vielmals!
-
-
Am liebsten würde ich den ganzen Variablenbaum von IPSymcon entweder zeitgesteuert (zB alle 5 Minuten) oder getriggert nach IOBroker spiegeln (es reicht für fast alle Variablen in eine Richtung IPSymcon nach IOBroker, nur 4 Variablen in die andere). `
Was ist denn Dein Endziel, alle Variablen aus IP-Symcon in ioBroker zu haben um diese in der VIS zu nutzen? Wieviele Variablen sind das denn in Deinem Fall, die Du spiegeln willst?Aber so ganz verstehe ich nicht was ich alles anstellen muss:
- Den Simple Adapter in IOBroker installieren. `
Ja
@MarkusL:
-
Die Routine unten in ein IPSymcon PHP Programm packen (wie kann ich das Programm dann getriggert auf Änderungen starten?)
-
Die Variablen $ioBrokerIP etc mit der IP des IOBroker beschreiben `
Am besten mit drei Skripten arbeiten. Das erste Skript enthält alle Befehle, die Du so für den simple api Adapter brauchst.
Send Custom Command
Das zweite Skript enthält alle Konstanten damit Du diese nur an einer Stelle ändern musst.
ioBroker Konstanten
Und das dritte Skript dann jeweils den Trigger für den Datenpunkt in ioBroker.
Skript für Datenpunkt
$value)); var_dump($result); ?>
Auf das Skript legst Du dann ganz normal ein https://www.symcon.de/service/dokumentation/konzepte/ereignisse/ das bei Variablenaktualisierung auslöst, dann wird jedes mal wenn sich etwas ändern sollte, der Datenpunkt in ioBroker aus IP-Symcon aktualisiert.
@MarkusL:- value ist der Pointer auf meine IPSymcon Variable? `
Nein Value wäre in dem Fall der Wert der an ioBroker zu übergeben ist, s.o.
Und das dann für jede Variable einzeln? `
Das hängt ja davon ab um wieviele Variablen es sich handelt, wenn das ein paar sind kannst Du einfach ein Ereigniss darauf legen. Wenn es sich um hunderte oder gar tausende von Datenpunkten handelt macht es wohl eher Sinn ein Skript zu schreiben das Dir für jede Variable eine Skript und ein Ereigniss anlegt das bei Variablenänderung auslöst. - Den Simple Adapter in IOBroker installieren. `
-
Vielen Dank.
Es sind ca 150 Variablen, aber ich brauch erstmal nur ca 50 davon. Dann mache ich das so, wie Du vorgeschlagen hast mit dem Script 3 für die einzelnen Variablen. Auf den ersten Versuch hin hat es leider noch nicht funktioniert. Ich bekomme die Fehlermeldung wie folgt (das Script 42118 ist das Send Custom Command Scrip:
string(536) "
Warning: file_get_contents(http://192.168.178.190:8087/set/IPSymco … value=53.6 failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
in C:\IP-Symcon\scripts\42118.ips.php on line 20
Warning: file_get_contents(http://192.168.178.190:8087/getPlainVal ... lteWerte.0 failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
in C:\IP-Symcon\scripts\42118.ips.php on line 23
"
Kannst Du mir da noch einmal helfen bitte?
Danke noch einmal.
-
Ich bekomme die Fehlermeldung wie folgt (das Script 42118 ist das Send Custom Command Scrip:
string(536) "
Warning: file_get_contents(http://192.168.178.190:8087/set/IPSymco … value=53.6 failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
in C:\IP-Symcon\scripts\42118.ips.php on line 20
Warning: file_get_contents(http://192.168.178.190:8087/getPlainVal ... lteWerte.0 failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
in C:\IP-Symcon\scripts\42118.ips.php on line 23
" `
Was steht denn in einem Browser als Antwort wenn Du im Browser
http://192.168.178.190:8087/set/IPSymcon.NachIOBGesendeteWerte.0?value=53.6
eingibst?
-
da steht dann auch
http 500: interner Server fehler
und die Seite kann nicht erreicht werden.
Auf der Adapterseite (IOBroker)habe ich folgende Einstellungen:
-
IMG_9602.jpgda steht dann auch
http 500: interner Server fehler
und die Seite kann nicht erreicht werden. `
Weis ich jetzt leider auch nicht was man da machen muss, da muss Dir ein ioBroker Experte helfen. Du must zumindest den Adapter er mal zum Laufen bekommen, so dass Du auch mit einem Browser Datenpunkte beschreiben und auslesen kannst. Wenn das funktioniert, klappt das dann auch aus IP-Symcon.
-
@markusl Hi Markus, ich erwäge ebenfalls umzusteigen und habe das 1-Wire-Gateway. Hast du es schlussendlich in iobroker eingebunden bekommen?