NEWS
Diverse Programmierung
-
Hallo,
ich "spiele" seit einiger Zeit nun mit dem IOBroker rum und bin bis jetzt psoitiv überrascht wie einfach die Konfigurationen von verschiedenen Adaptern gehen (ich hatte vorher Openhab für Adapter wie Alexa benutzt).
Allerdings erschließen sich mir einige Dinge noch nicht ganz und in den ganzen Dokus/Foren habe ich leider auch nichts passendes gefunden.
Kurz zum Hintergrund: Meine neue Wohnung ist komplett mit KNX ausgestattet. Da ich auch programmieren kann, habe ich mir eine Visualisierung
komplett von Grund auf selbst programmiert (NodeJS als Server, HTML/CSS/Javascript als Client). Allerdings fehlten mir hier die Adapter (Alexa, Samsung TV, etc..), weswegen ich auf Openhab gekommen bin. Leider ist Openhab etwas eingeschränkt in den Möglichkeiten und Einstellungen welche ich benötige. IOBroker ist hier schon wesentlich besser.
Zu meinen Fragen:
1. Mit dem Adapter Javascript kann ich verschiedene Scripte erstellen und auch auf Events hören, verarbeiten, etc. Das funktioniert soweit auch schon Top!
Gibt es hier aber die Möglichkeit eigene Scripte in andere Scripte einzufügen? Ich suche im Prinzip die require Funktion von NodeJS, allerdings für selbst geschriebene Scripte.
Ich möchte also ein Script erstellen und dies überall benutzen ohne das es für jedes Script neu initialisiert wird. Ich suche also nicht den global Ordner (den hatte ich bereits gefunden).
2. Natürlich habe ich mich auch an einer Visualisierung mit dem Adapter vis versucht. Allerdings ist dieses "zusammenklicken" von Buttons, Fenster, usw. überhaupt nicht meins. Gibt es hier eine Möglichkeit komplett in HTML/Javascript seine eigene Visualisierung zu schreiben? Leider konnte ich hier nichts passendes finden, außer die HTML Box. Aber das finde ich auch keine 100% saubere Lösung.
3. Im vis Adapter ist es ja möglich eigene Javascript Scripte zu erstellen. Gibt es hier die Möglichkeit auf Events wie im Javascript Adapter zu reagieren? Also ich meine sowas wie folgendes:
on({id: 'knx.0.EG.adapter.adapter'}, function(obj){ console.log('Action'); });
Vielen Dank schon mal im vorab für die Antworten!
Grüße
Florian
-
Der socket-io Adapter könnte sein was du suchst.
Gesendet vom Handy …
-
Hallo,
das habe ich auch schon installiert.
Allerdings verstehe ich den nicht so ganz da es hier scheinbar keine Events gibt, auf die ich im Adapter Javascript reagieren kann.
Leider gibt die Doku dazu auch keine wirkliche Antwort…
Wie kann ich denn in den Scripten vom Javascript Adapter darauf zugreifen?
Grüße
Florian
-
socket-io ist dazu da um aus deiner HTML-Seite mit ioBroker zu Kommunizieren!
Vom JavaScript-Adapter aus baustDu ganz nocmal Skripte mit den "on"-Triggern
-
Zu 3. Vis kennt die Funktionen nicht, die der Javascript-Adapter bereitstellt, sondern Vis kennt nur natives Javascript.
-
socket-io ist dazu da um aus deiner HTML-Seite mit ioBroker zu Kommunizieren!
Vom JavaScript-Adapter aus baustDu ganz nocmal Skripte mit den "on"-Triggern `
Das ist mir auch bewusst. So funktioniert meine selbst programmiert Visu ja auch…
Nur habe ich nicht so ganz verstanden wie ich den socket-io Adapter im Script in IOBroker verwende.
Wie greife ich auf die bestehende Socket Verbindung zu?
Zu 3. Vis kennt die Funktionen nicht, die der Javascript-Adapter bereitstellt, sondern Vis kennt nur natives Javascript. `
Das habe ich mir schon gedacht. Gibt es denn eine andere Methode?
Oder geht es tatsächlich nur über diese "Klick-Dingens-Teile"?
-
Nachdem ich mich jetzt eingehend mit dem socket.io Adapter beschäftigt habe, habe ich die Lösung gefunden.
Entweder habe ich nicht richtig gelesen oder ich verstehe den Aufbau vom IOBroker noch nicht so ganz.
Ich wollte von meinem selbst programmiert Interface mittels socket.io auf IOBroker zugreifen. Ich habe immer versucht im Javascript Adapter auf den socket.io Adapter zuzugreifen.
Der socket.io Adapter ist allerdings schon komplett fertig. Mit folgendem Script kann man sich Clientseitig mit dem Adapter verbinden: https://github.com/ioBroker/ioBroker.so … er/example
Im IOBroker muss nichts weiter eingestellt werden. Vielleicht hilft das ja in Zukunft jemanden der auch dieses "Problem" hat...
-
So meinte ich es ;-))
Gesendet vom Handy …