NEWS
[Aufruf] ioBroker Jung/Gira eNet Adapter testen
-
Super, das es nun endlich funktioniert!
Ich weiß allerdings nicht, ob der Adapter auch mit dem eNet Server funktioniert.
-
Bin gerade erst auf das Thema aufmerksam geworden.
Werde es mal in Verbindung mit dem Server testen, nachdem ich mich eingelesen habe
-
Toll, dann sind wir schon zu dritt, die sich an eNet versuchen…
Server ist auf dem Weg....
-
Hi,
ich habe den Gira eNet Server mit Firmware 2.0, 14 Rolladenaktoren und einen Sonnensensor. Möchte gerne alles über Alexa bedienen aber ich habe noch nichts passendes gefunden. Wäre ioBroker hier das richtige?
Gruß
XC
-
Leider kann ich - mangels Server zum Testen - nicht sagen, inwiefern der Adapter auch mit dem eNet Server funktioniert.
Der Adapter ist derzeit nur für das eNet Gateway.
-
So,
habe jetzt einen Jung eNet Server,
und eines kann ich jetzt schon sagen, Gateway und Server sind nicht "kompatibel".
Der Server wird über ein Web-Interface konfiguriert/programmiert.
Die Ports des Servers(80,443,4004,8056), die ich gefunden habe, können mit den Gateway-Befehlen nichts anfangen..
Allein über das Webinterface (Port 80) könnte ich mir eine Kommunikation vorstellen…stehe da aber noch ganz am Anfang... ( und bin da ziemlicher Laie...)
"kabel-hai", zeigt eine Kommunikation mit JSON ( ähnlich zum Gateway)
erste Hürde ist aber erst einmal die Authentifizierung :shock:
die scheint notwendig zu sein, um überhaupt mit dem Server zu kommunizieren.
bekomme immer:
{"jsonrpc":"2.0","error":{"code":-29997,"message":"Authentication failed"},"id":"2"}
-
Ohne Authentifizierung werden wir da nicht weiter kommen.
Du kannst ja mal Wireshark laufen lassen und dann mal via eNet-Oberfläche (nicht die Adminoberfläche) versuchen was zu schalten.
Mal schauen was da an JSON Daten läuft.
Kannst Du mir auch mal einen JSON String hier posten, der da so abläuft?
Wäre cool wenn wir den Adapter auch mit dem eNet Server reden lassen könnten.
-
was meinst du mit eNet-Oberfläche?
es gibt die WebOberfläche mit der Konfiguration(da kann man auch - bedingt- mit schalten) und es gibt die eNetApp.
es gibt von Gira ein Windows-Programm, das scheint aber mit Jung Server nicht "zu können",
bleibt bei der Authentifizierung hängen(?)
Mit der SmartPhone-App habe ich noch nichts rausbekommen.
prinzipiell scheint das ganze so zu laufen:
Connect zum eNetServer,
eine Login-Seite wird aufgebaut…
nach User und Password Eingabe werden folgende strings geschickt:
{"jsonrpc":"2.0", "method":"getDigestAuthentificationInfos", "params":null, "id":"1952"}
das kommt als Antwort:
{"jsonrpc":"2.0","result":{"realm":"Insta-NetBox","domain":"","uri":"/jsonrpc//management","nonce":"7475a8d60b52306835283a8f14ab9006e2ef0c2e","opaque":"65683165666a357569696b326d37736d6a6b3935386666346962","algorithm":"sha","qop":"auth"},"id":"1952"}
darauf wird das geschickt:
{"jsonrpc":"2.0", "method":"userLoginDigest", "params":{"userName":"user", "uri":"/jsonrpc//management", "qop":"auth", "cnonce":"ABC750E976373C55B832EC3E96E6C667383C4C81", "nc":"00000001", "response":"519C733EFBD6CA40D394868EE2CCA82C003AE78D", "realm":"Insta-NetBox", "nonce":"7475a8d60b52306835283a8f14ab9006e2ef0c2e", "algorithm":"sha", "opaque":"65683165666a357569696b326d37736d6a6b3935386666346962"}, "id":"1953"}
darauf kommt das zurück:
{"jsonrpc":"2.0","result":{"userName":"user","userRoles":[{"userRole":"UR_VISU"},{"userRole":"UR_CONFIG"}],"sessionID":"1oi9cukw91rbufzd6lepzxqtu"},"id":"1953"}
damit ist man eingeloggt
wenn man jetzt einen Sensor abfragt:
{"jsonrpc":"2.0", "method":"getCurrentValuesFromOutputDeviceFunction", "params":{"deviceFunctionUID":"13db8f9c-4863-44df-b329-b2670000062c"}, "id":"111"}
kommt das zurück:
{"jsonrpc":"2.0","result":{"currentValues":[{"value":12.96,"valueTypeID":"VT_VALUE_LUX_RANGE_0.0_670760.0","valueUID":"13db8f9c-4863-44df-b329-b2670000062b"}]},"id":"111"}
Rollo schalten geht eigentlich genauso…(Protokoll hab ich aus Versehen überschrieben)
Die Funktionalität scheint ähnlich zum Gateway...
aber -wie gesagt- ich scheitere schon am "zweiten" String (oben), da bekomm' ich zurück:
{"jsonrpc":"2.0","error":{"code":-29997,"message":"Authentication failed"},"id":"2"}
da steh' ich momentan…
-
Ja scheint ähnlich zum Gateway zu sein, aber wirklich auch nur ähnlich…
Leider habe ich keinen eNet Server hier zum Testen. Also wenn Du die Authentifizierung hin kriegst, sollte der Rest auch klappen.
-
kurzer Zwischenstand:
Authentifizierung müßte jetzt funktionieren… jedenfalls bekomme ich die gleiche "Response" wie im Webbrowser...
aber ich habe einfach generelle Verständnisprobleme mit Javascript und function->callback...
ich kann da einfach nicht sequentiell ( so bin ich's bisher gewohnt..) Anfragen schicken...
da "überholt" eine Anfrage die von zuvor... und Werte, die ich für die weitere Anfrage brauche sind noch nicht gesetzt...
irgendwie stehe ich auf "Kriegsfuss" mit "node.js"
-
Ich denke Du solltest Dein Problem mal im entsprechenden Scripting-Unterforum posten.
Wenn Du Lust hast, kannst Du Dir den Adapter im GitHub forken und mit dranarbeiten
-
So, ich hatte mal wieder Zeit:
aktueller Stand:
- ich kann das Projekt (die devices) und aktuellen Values lesen (siehe screenshot)
und ich kann values ändern, d.h. Rollos rauf und runter lassen…
eigentlich sieht's gut aus, aber!!!
so wie es jetzt ist, "kann man es machen, aber dann ist es halt SCHEI...."
warum:
ich muß alles "innerhalb der Konfiguration machen"
aktuell klappt das "ausloggen" nicht, d.h. man muß ab und an ( bei Problemen) den Reset Knopf am eNet-Server drücken ( alles bleibt aber erhalten)
Bis zum Adapter ist es aber noch ein weiter Weg... je nach Funktionalität... :oops: (Szenen, etc.., berücksichtigen, etc..)
Upps...
Anhang klappt nicht "Kontingent vollständig ausgenutzt..." was soll denn das?
-
Das klingt doch aber schon mal super.
Wie realisierst Du das Ganze denn? Mit einem Script?
-
aktuell mit mehreren Scripten
-
authentifizieren
-
"Inbetriebnahme" starten
-
Devices lesen (4 Jalousieaktoren und 2 Sonnensensoren)
das eigentlich nur einmal
dann ein Script welches die Zustände liest (Scheduler)
und ein Script zum setzen der Devices (bei mir:Jalousie-Aktoren)
alles sehr kryptisch (ich bin nicht der Profiprogrammierer) und mit Javascript "tu' ich mich auch noch schwer"…
hier mal ein Screenshot:
die Werte ( Values) sind die Zustände ( 100= Rollladen ganz zu, 115,84 lux)
4219_enet4.jpg -
-
Dann liesse sich das ja in einen Adapter packen
-
Ja, das ist das Ziel,
leider hab ich davon noch keine Ahnung, wie sowas geht,…
-
Magst Du mir mal Deine Scripte hier posten oder schicken?
Dann kann ich mal schauen, inwiefern wir das in den Adapter bekommen
-
Hallo zusammen,
hat jmd. von euch eine Lösung gefunden wie wir unseren Jung/Gira eNet-Server steuern können?
Beste Grüße
-
stoffel67 hat da was per Script geschafft (siehe oben).
Wenn er mir die Scripte zur Verfügung stellt, kann ich das in den Adapter mit implementieren.
-
Hi,
habt ihr schon mal versucht mehrere Objekte per Skript gleichzeitig zu Steuern? Bei mir kommt es häufiger vor, dass ein Rollladen das Signal nicht empfängt. Kann man eventuell ein Bestätigung der Änderung über den Adapter abfragen und ansonsten den Befehl erneut senden?
!
2018-04-09 20:33:20.262 - info: javascript.0 script.js.common.Rollladensteuerung: {"id":"enet.0.channels.16.LEVEL","value":80} 2018-04-09 20:33:20.263 - info: javascript.0 script.js.common.Rollladensteuerung: {"id":"enet.0.channels.18.LEVEL","value":80} 2018-04-09 20:33:20.263 - info: javascript.0 script.js.common.Rollladensteuerung: {"id":"enet.0.channels.19.LEVEL","value":80} 2018-04-09 20:33:20.263 - info: javascript.0 script.js.common.Rollladensteuerung: {"id":"enet.0.channels.25.LEVEL","value":80} 2018-04-09 20:33:20.263 - info: javascript.0 script.js.common.Rollladensteuerung: {"id":"enet.0.channels.27.LEVEL","value":80} 2018-04-09 20:33:20.263 - info: javascript.0 script.js.common.Rollladensteuerung: {"id":"enet.0.channels.28.LEVEL","value":80} 2018-04-09 20:33:20.279 - debug: enet.0 SetGatewayChannel: SHUTTER: ID: enet.0.channels.16.LEVEL, Object Type: number Object Role: level.blind 2018-04-09 20:33:20.280 - debug: enet.0 SetGatewayChannel: SHUTTER: ID: enet.0.channels.18.LEVEL, Object Type: number Object Role: level.blind 2018-04-09 20:33:20.283 - debug: enet.0 SetGatewayChannel: SHUTTER: ID: enet.0.channels.19.LEVEL, Object Type: number Object Role: level.blind 2018-04-09 20:33:20.284 - debug: enet.0 SetGatewayChannel: SHUTTER: ID: enet.0.channels.25.LEVEL, Object Type: number Object Role: level.blind 2018-04-09 20:33:20.284 - debug: enet.0 SetGatewayChannel: SHUTTER: ID: enet.0.channels.27.LEVEL, Object Type: number Object Role: level.blind 2018-04-09 20:33:20.284 - debug: enet.0 SetGatewayChannel: SHUTTER: ID: enet.0.channels.28.LEVEL, Object Type: number Object Role: level.blind 2018-04-09 20:33:20.326 - debug: enet.0 getGatewayStates: Starting to retrieve the current states from eNet gateway 2018-04-09 20:33:20.328 - debug: enet.0 getGatewayStates: Array of subscribeable Channels: 16,17,18,19,20,21,22,23,24,25,26,27,28,29,33,35 2018-04-09 20:33:20.330 - error: enet.0 getGatewayStates: Error on signing in channels for subscription: Error: read ECONNRESET 2018-04-09 20:33:20.828 - debug: enet.0 getGatewayStates: Starting to retrieve the current states from eNet gateway !