NEWS
Direkte Schnittstelle zu übergeordnetem System
-
Hallo zusammen
Ich brauche eine möglichst direkte Verbindung zwischen einer bestehenden Alarmierungs-Software und ioBroker.
Die Daten sollen in beide Richtungen fliessen können und zeitnah synchronisiert sein.Momentan nutze ich den MQTT-Broker, und für ein paar Stunden läuft das auch ganz gut. Sobald der Bug gefunden sein wird, ist die Lösung an sich passabel, aber ich suche eine möglichst enge Bindung. Vielleicht ist MQTT am Ende der beste Kompromiss.
Als Alternativen wäre der SQL-Adapter denkbar, weil die Alarmierungssoftware ihre Daten in einer PostgreSQL-DB hält. Aber das Format der Datenbank-Tabellen, das der SQL-Adapter nutzen will, schein mir starr zu sein. Ich will in jedem Fall vermeiden, eine dritte Datenhaltung im Interface aufzubauen. Die Datenhaltung vom ioBroker ist schlussendlich auch redundant zu den Daten in der Datenbank. Noch eine weitere Kopie der Daten durch den Adapter erscheint unattraktiv.
Simple-API hat in meinen Augen zuviel Overhead, und es hat keinen Push-Mechanismus.
Weiter käme noch ein spezialisierter Adapter infrage. Das in Node.js zu schreiben, dürfte extrem aufwendig sein. Schliesslich müsste die ganze IPC-Anbindung der bestehenden Software nachgebaut werden.
Toll wäre ein möglichst natives Socket-API, mit dem man mit möglichst wenig Umwandlung und Anpassung der Daten Zugriff hätte.
Gibt es so was, oder führt auch hier der Weg über einen Adapter?
Gruss
Martin
-
@mschmid was willst du eigentlich, einen Adapter Entwickeln, keinen Adapter Entwickeln?! Und was für eine Software ist das Überhaupt die du benutzt?
Hat die eine API, gibt es dazu eine Beschreibung?Mit deinen Angaben kann man nicht viel Anfangen außer ins blau raten.
@mschmid sagte in Direkte Schnittstelle zu übergeordnetem System:
Aber das Format der Datenbank-Tabellen, das der SQL-Adapter nutzen will, schein mir starr zu sein.
Ganz klar der SQL Adapter ist nur zur langzeit/history Speicherung von States in ioBroker gedacht, damit kann man keine Datenbank einlesen.
-
Ich will keinen eigenen Adapter Entwickeln, wenn ein bestehender die optimale Lösung darstellt. Dann investiere ich da lieber ins Debuggen.
Aber wahrscheinlich bringen die bestehenden Adapter reichlich Konvertierungsverluste oder -last mit sich.
Am liebsten wäre mir also, wenn ich direkt auf die Objekt- und Status-DBs vom ioBroker zugreifen könnte, weiss aber nicht, ob das möglich ist.
Die Alarmsoftware ist eine Eigenentwicklung, also kann ich nach Belieben Interfaces bauen.
Die Frage ist also: von welcher Seite aus packt man die Anbindung am effizientesten an?
-
Ich will keinen eigenen Adapter Entwickeln, wenn ein bestehender die optimale Lösung darstellt. Dann investiere ich da lieber ins Debuggen.
Aber wahrscheinlich bringen die bestehenden Adapter reichlich Konvertierungsverluste oder -last mit sich.
Am liebsten wäre mir also, wenn ich direkt auf die Objekt- und Status-DBs vom ioBroker zugreifen könnte, weiss aber nicht, ob das möglich ist.
Die Alarmsoftware ist eine Eigenentwicklung, also kann ich nach Belieben Interfaces bauen.
Die Frage ist also: von welcher Seite aus packt man die Anbindung am effizientesten an?
@mschmid wenn das so ist kannst du einen Socket.io client in deine Software einbauen und dich darüber in ioBroker einklinken. Das ist im Grunde genommen die selbe Methode wie es auch die Adapter selbst machen.
Dazu gibt es den Socket.io Adapter.
Ich kenne zwar die Programmiersprache nicht in der du deine Software geschrieben hast, aber Socket.io sollte in den meissten Sprachen möglich sein. -
-
Den Adapter habe ich auch schon angeschaut und keinen Subscribe-Mechanismus gefunden. Ich befürchte, dass da nur Polling funktioniert. Oder kennt der Events?
Ich verwende einen bunten Mix von C, PHP und Python, also wäre socket.io kein Problem.
@mschmid sagte in Direkte Schnittstelle zu übergeordnetem System:
Oder kennt der Events?
Kann sein das ich Blödsinn schreibe weil es schon länger her ist das ich den Adapter verwendet habe, aber ja ich bin der Meinung da gibt es eine Art push. VIS verwendet das auch als Basis.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden