NEWS
Test Adapter EnOcean v0.3.x
-
Cool. Super!!
Leider wegen lib Abhängigkeit Node >= 7 … Da Node 7 ne Warnung im Admin gibt weil es keine Lts Version ist also effektiv nur nodejs 8 ...
-
Nice, werd ich demnächst mal testen. Hab leider auch nur Schalter, keine Aktoren.
Btw, das Repo sollte ioBroker.enocean heißen, Kleinbuchstaben sind für das Paket in NPM zu verwenden
-
Danke für den Hinweis mit dem repo Namen. Das ändere ich sobald ich kann.
Gesendet von Unterwegs
-
Hi Jey Cee,
zuerstmal danke dafür, dass Du dich dieses Themas annimmst. Darauf warte ich schon ein kleine Ewigkeit.
Ich habe eben gerade versucht den Adapter zu installieren.
Dabei kommt folgende Fehlermeldung:
! host.castor 2017-09-26 12:24:56.741 error instance system.adapter.enocean.0 terminated with code 0 (OK)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Object. (/opt/iobroker/node_modules/iobroker.enocean/main.js:41:38)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at require (internal/module.js:20:19)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Module.require (module.js:497:17)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Function.Module._load (module.js:438:3)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at tryModuleLoad (module.js:446:12)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Module.load (module.js:487:32)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Object.Module._extensions..js (module.js:579:10)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Module._compile (module.js:542:28)
! host.castor 2017-09-26 12:24:56.741 error Caught by controller[2]: at Object.runInThisContext (vm.js:97:10)
! host.castor 2017-09-26 12:24:56.740 error Caught by controller[2]: at createScript (vm.js:56:10)
! host.castor 2017-09-26 12:24:56.740 error Caught by controller[2]: SyntaxError: missing ) after argument list
! host.castor 2017-09-26 12:24:56.740 error Caught by controller[2]: ^^^^^
! host.castor 2017-09-26 12:24:56.740 error Caught by controller[2]: socket.on( "get-last-sensor-value" , async function( id ) {
! host.castor 2017-09-26 12:24:56.739 error Caught by controller[2]: 2017-09-26 12:24:56.218 - enocean.0 /opt/iobroker/node_modules/iobroker.enocean/node_modules/node-enocean/index.js:248
! host.castor 2017-09-26 12:24:56.739 error Caught by controller[1]: 2017-09-26 12:24:56.216 - enocean.0 uncaught exception: missing ) after argument list
! host.castor 2017-09-26 12:24:56.739 error Caught by controller[0]: at Object. (/opt/iobroker/node_modules/iobroker.enocean/main.js:41:38)
! host.castor 2017-09-26 12:24:56.739 error Caught by controller[0]: at require (internal/module.js:20:19)
! host.castor 2017-09-26 12:24:56.739 error Caught by controller[0]: at Module.require (module.js:497:17)
! host.castor 2017-09-26 12:24:56.738 error Caught by controller[0]: at Function.Module._load (module.js:438:3)
! host.castor 2017-09-26 12:24:56.738 error Caught by controller[0]: at tryModuleLoad (module.js:446:12)
! host.castor 2017-09-26 12:24:56.738 error Caught by controller[0]: at Module.load (module.js:487:32)
! host.castor 2017-09-26 12:24:56.738 error Caught by controller[0]: at Object.Module._extensions..js (module.js:579:10)
! host.castor 2017-09-26 12:24:56.738 error Caught by controller[0]: at Module._compile (module.js:542:28)
! host.castor 2017-09-26 12:24:56.737 error Caught by controller[0]: at Object.runInThisContext (vm.js:97:10)
! host.castor 2017-09-26 12:24:56.737 error Caught by controller[0]: at createScript (vm.js:56:10)
! host.castor 2017-09-26 12:24:56.737 error Caught by controller[0]: SyntaxError: missing ) after argument list
! host.castor 2017-09-26 12:24:56.737 error Caught by controller[0]: ^^^^^
! host.castor 2017-09-26 12:24:56.736 error Caught by controller[0]: socket.on( "get-last-sensor-value" , async function( id ) {
! host.castor 2017-09-26 12:24:56.736 error Caught by controller[0]: /opt/iobroker/node_modules/iobroker.enocean/node_modules/node-enocean/index.js:248
! enocean.0 2017-09-26 12:24:56.319 info starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.enocean, node: v6.11.2Natürlich kann ich damit nichts anfangen. Aber villeicht hilfts Dir ja.
-
node: v6.11.2 `
Bitte oben lesen, du brauchst mindestens NodeJS 7, bzw. 8 damit ioBroker nicht meckert. -
Node 8 macht mit npm 5 bei meinen Tests immer noch Probleme.
Insofern ist die Wahl, wenn es denn eine war, nicht günstig.
Und Node 7 ist nicht LTS.
Gruß
Rainer
-
Insofern ist die Wahl, wenn es denn eine war, nicht günstig. `
Das Node-Enocean Modul verwendet leider die neueste JS-Syntax ES2017 mit async/await ohne sie zu transpilieren. Das geht nur mit NodeJS 7+. Oder man müsste das Modul forken und transpiling per Babel oder am besser gleich TypeScript einbauen, damit ältere Versionen bedient werden können. -
Super, dass jemand endlich die Zeit gefunden hat, enocean Adapter zu schreiben.
Wie man sieht es ist nicht kompliziert die Kommunikation zum Laufen zu bekommen, aber es ist schwer das bequem und umfangreich wie rflink zu machen. Und genau die zwei letzte Sachen haben mich bis jetzt angehalten.
Ich hoffe, dass gemeinsam wir es schaffen können
Ich habe gleich 2 Anmerkungen:
- eo.listen(adapter.config.serialport);
Lieber in main() aufrufen. Dafür ist die Funktion da.
- teachMode nicht im Objekt, sondern in State verwalten. Weil bei jeder Objektänderung die Instanz neu gestartet wird.
Ansonsten ich bin sehr froh und werde auch gerne bei der Entwicklung helfen.
-
Bezüglich Auswahl der seriellen Schnittstelle: Bitte bei Zwave bedienen!
Der Adapter liefert auf Linux die vorhandenen seriellen Schnittstellen bei Anfrage per sendTo:
https://github.com/ioBroker/ioBroker.zw … in.js#L150
https://github.com/ioBroker/ioBroker.zw ... in.js#L515
Abfrage im Admin ist hier zu finden:
https://github.com/ioBroker/ioBroker.zw ... .html#L119
Wenn ich vor dir die Zeit finden, mache ich einen PR, kann aber etwas dauern.
-
- teachMode nicht im Objekt, sondern in State verwalten. Weil bei jeder Objektänderung die Instanz neu gestartet wird. `
Wollte ich ursprünglich auch machen nur weiss ich nicht wie ich aus der index.html zugriff auf die Objekte bekomme.
Wenn ich vor dir die Zeit finden, mache ich einen PR, kann aber etwas dauern. `
Ich hab versucht die Abfrage zu übernehmen, das DropDown wird nicht befüllt, vermutlich nur eine Kleinigkeit. Wenn du dir das anschauen würdest wäre gut. - teachMode nicht im Objekt, sondern in State verwalten. Weil bei jeder Objektänderung die Instanz neu gestartet wird. `
-
Kann ich machen.
-
Zum Überarbeiten des USB-Dropdown bin ich noch nicht gekommen, aber zum Testen. Ich habe einen PTM215 DB, der korrekt als
"eepFunc": "Rocker Switch, 2 Rocker", "eepType": "Light Control - Application Style 1"
erkannt wird.
Drücke ich eine der Tasten, wird state auf einen der Zustände "A0|A1|B0|B1 down" gesetzt, nach dem Loslassen kommt "released".
Zwei Tasten gleichzeitig mag der Adapter nicht. Da erscheint ein neuer State "unknown" mit Wert "unknown".
-
PR für USB-Dropdown erstellt https://github.com/Jey-Cee/ioBroker.enocean/pull/2
-
Habe nen PR für Teach-Mode in Arbeit, werde ich heute Abend bereitstellen. Muss da noch ein wenig Hand anlegen, um deine Änderungen von eben rein zu bekommen.
-
Habe nen PR für Teach-Mode in Arbeit, werde ich heute Abend bereitstellen. Muss da noch ein wenig Hand anlegen, um deine Änderungen von eben rein zu bekommen. `
Super. Wie löst du das? Hab gerade nach einer Lösung gesucht, hab aber nur die sendTo möglichkeit gefunden.
Hab das DropDown nochmal angepasst so das es für Windows und Linux passt, falls es für den Z-Wave von interesse ist kannst das dort auch einbauen.
Ich habe einen PTM215 DB, der korrekt als
CODE: ALLES AUSWÄHLEN
"eepFunc": "Rocker Switch, 2 Rocker",
"eepType": "Light Control - Application Style 1"
erkannt wird.
Drücke ich eine der Tasten, wird state auf einen der Zustände "A0|A1|B0|B1 down" gesetzt, nach dem Loslassen kommt "released".
Zwei Tasten gleichzeitig mag der Adapter nicht. Da erscheint ein neuer State "unknown" mit Wert "unknown". `
Das ist so alles Korrekt. Ich hatte schon überlegt es anders an zu gehen, aber die enOcean Geräte übertragen ein Value. Das heisst es muss für jedes Gerät ein Profil hinterlegt werden wie mit dem Value gearbeitet werden muss.Deswegen lass ich das vorerst mal so.
@Jey Cee:Mal sehen ob ich irgendwo ein oder zwei Empfänger günstig bekomme. `
Hab mir einen Zwischenstecker geschossen, das heisst ich werde sobald er da ist das senden einbauen. -
@Jey Cee:Super. Wie löst du das? Hab gerade nach einer Lösung gesucht, hab aber nur die sendTo möglichkeit gefunden. `
Beschreibe ich dir dann später im PR@Jey Cee:Hab das DropDown nochmal angepasst so das es für Windows und Linux passt, falls es für den Z-Wave von interesse ist kannst das dort auch einbauen. `
Ist denke ich schon von Interesse, sollte aber noch etwas aufgeräumt werden. Die Schleifen kann man elegant durch map/filter ersetzen.Für EnOcean bau ich nen PR (vor allem können wir das dank NodeJS >= 7 wunderschön mit async/await lösen).
Für ZWave (Node 4+) können wir basierend darauf zurück auf Callbacks gehen.
@Jey Cee:Das ist so alles Korrekt. Ich hatte schon überlegt es anders an zu gehen, aber die enOcean Geräte übertragen ein Value. Das heisst es muss für jedes Gerät ein Profil hinterlegt werden wie mit dem Value gearbeitet werden muss.
Deswegen lass ich das vorerst mal so. `
Ok, dann schau ich demnächst mal, ob das halbwegs allgemein geht. In FHEM stand dann einfach "A0,B1" im State. -
Dank AlCalzone und Holger, der das node-enocean Modul erstellt hat, können enOcean Geräte jetzt auch wieder abgelernt werden.
Außerdem wurde der Anlernmodus von AlCalzone angepasst so das kein Adapter Neustart erforderlich ist.
Eine weitere Neuerung ist die Auswahl des Serialport, es kann jetzt Komfortabel aus einem DropDown der Port ausgewählt werden.
Zurzeit ist es noch nicht möglich enOcean Geräte mit dem Adapter zu steuern.
Bitte Testet die neue Version. Es wäre auch gut wenn ihr preis gebt welche Geräte ihr einsetzt und ob sie vom Adapter erkannt werden.
-
Ich habe neuerdings diesen Multisensor zum Testen da: http://www.perfactory.de/bauformen/#VoCap
Muss ihn aber erst noch zum Laufen bringen, dann werde ich berichten. Gibts irgendwann nächstes Jahr auch energieautark.
-
Der Multisensor crasht den Adapter. Fix => https://github.com/Jey-Cee/ioBroker.enocean/pull/7
-
Der Multisensor crasht den Adapter. Fix => https://github.com/Jey-Cee/ioBroker.enocean/pull/7 `
Den Fix hab ich übernommen. Läuft der Multisensor und liefert er auch alle Daten an ioBroker?
Edit: Was kostet der Sensor?