Hallo zusammen,
ich bin derzeit blutiger Anfänger, soweit es IP-Symcon betrifft. Bislang lief die „Automatisierung“ bei mir über eine Homematic CCU, ein RFXLAN sowie div. Perl und Python Scripte.
Nun möchte ich gerne das ganze an einer zentralen Stelle bündeln. Zunächst möchte ich alle Informationen nur im IPS haben. (Später dann ggf. die externen Scripte durch IPS interne Skripte ersetzen)
Zum Punkt Informationen in IPS sammeln:
Hier habe ich die JSON-RPC Schnittstelle gefunden:
Datenaustausch — IP-Symcon :: Automatisierungssoftware
Das ganze funktioniert auch schon in einem meiner Perl-Script. Ich kann einen Wert aus der CCU mit dem Perl-Script überschreiben.
Später bin ich dann noch hierauf gestoßen:
IP-Symcon - Wie kann ich… 2.0 - Seite 7
Dürfte genauso gut funktionieren.
Was mich bei beiden Ansätzen stört: Der Overhead. Es wird jedes Mal eine TCP-Verbindung auf und wieder abgebaut. Das dürfte bei größeren Datenmengen (nicht, dass ich die unbedingt schon habe) sehr schlecht skalieren.
Viel lieber wäre mir ein Websocket. Es scheint schon ein grundlegendes Modul für IP-Symcon zu geben:
WebSocket:
IPSNetwork/WebSocketServer at master · Nall-chan/IPSNetwork · GitHub
Ich würde die Daten aus den (Perl, Python) Scripten gerne per JSON an IPS senden.
Leider kann ich noch überhaupt nicht blicken, wie viel „Logik“ dafür noch in IPS fehlt. Wie gesagt… PHP kann ich noch kein Stück, und die Konzepte in IPS sind mir (leider) auch noch nicht klar.
Wenn die JSON Nachricht beispielsweise so aussehen würde:
msg = {
obj : 14368, # Object ID in IPS
val : 20.0 # Object value, e.g. temerature
};
sollte doch ein „generisches“ Script ausreichen, welches als „Pseudocode“
getObject(obj).setValue(val) # getObject(14368).setValue(20.0)
ausführt.
Macht das Sinn?
Gibt es sowas ggf. schon?
Gibt es etwas ähnliches, bei dem ich „abgucken“ könnte?
Erst einmal vielen Dank für das Lesen meines Posts!
Gruß,
Soc