Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter EnOcean v0.3.x

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter EnOcean v0.3.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer last edited by Jey Cee

      Hallo,

      nach fast einem Jahr hab ich es endlich geschafft mir einen EnOcean Taster und ein USB 300 Gateway zu besorgen. Anfangs hatte ich das zu Test zwecken nur mit dem JS Adapter eingebunden, aber vor ein paar Tagen hab ich mir auch noch 2 Bewegungsmelder zugelegt.

      Da ohnehin ein EnOcean Adapter geplant war hab ich das gleich mal als Anlass genommen den Adapter zu schreiben.

      Zum jetzigen Zeitpunkt kann der Adapter nur Daten empfangen, senden ist noch nicht möglich. Da ich auch keine Empfänger(Aktoren) habe kann ich das dann auch nur Blind implementieren. Mal sehen ob ich irgendwo ein oder zwei Empfänger günstig bekomme.

      Installation ist derzeit nur von git möglich.

      Vorraussetzungen:

      • EnOcean USB 300 Gateway oder EnOcean Pi

      • Nodejs version >=7.x.x

      • Adapter: https://github.com/Jey-Cee/iobroker.enocean

      282_settings_alpha.png
      282__bersicht_objekte.png

      UPDATE:

      Für die Leute unter euch die selbst neue Geräte hinzufügen gibt es ein paar Infos.

      Syryna hat eine Einsteigerhilfe für das Verständnis der EEPs erstellt. –> https://forum.iobroker.net/viewtopic.php?p=211810#p211810

      Hier eine kurze Übersicht der Dateien die für die Implementierung neuer EEPs angefasst werden müssen:

      • EEP2IOB.json definiert die Objekte die für ein Profil angelegt werden
      • z.B. "A5-3F-7F.js" hier werden die Funktionen hinterlegt für das Auswerten der Daten und den Bau der Datentelegramme die gesendet werden sollen
      • devices.json hier sind die Geräte mit Infos wie Hersteller, Model, EEP(s) und Type hinterlegt.
      • eepInclude.js fast alle EEP files zusammen und stellt sie im Adapter zur Verfügung
      1 Reply Last reply Reply Quote 1
      • apollon77
        apollon77 last edited by

        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 ...

        1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer last edited by

          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 😉

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer last edited by

            Danke für den Hinweis mit dem repo Namen. Das ändere ich sobald ich kann.

            Gesendet von Unterwegs

            1 Reply Last reply Reply Quote 0
            • H
              Heinzelmaennchen last edited by

              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.2

              Natürlich kann ich damit nichts anfangen. Aber villeicht hilfts Dir ja.

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                @Heinzelmaennchen:

                node: v6.11.2 `
                Bitte oben lesen, du brauchst mindestens NodeJS 7, bzw. 8 damit ioBroker nicht meckert.

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  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

                  1 Reply Last reply Reply Quote 0
                  • AlCalzone
                    AlCalzone Developer last edited by

                    @Homoran:

                    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.

                    1 Reply Last reply Reply Quote 0
                    • Bluefox
                      Bluefox last edited by

                      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.

                      1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer last edited by

                        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.

                        1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer last edited by

                          @Bluefox:

                          • 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.

                          @AlCalzone:

                          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.

                          1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer last edited by

                            Kann ich machen.

                            1 Reply Last reply Reply Quote 0
                            • AlCalzone
                              AlCalzone Developer last edited by

                              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".

                              1 Reply Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer last edited by

                                PR für USB-Dropdown erstellt https://github.com/Jey-Cee/ioBroker.enocean/pull/2

                                Jey-Cee created this issue in Jey-Cee/ioBroker.enocean

                                closed BaseID offset calculation #2

                                1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer last edited by

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • Jey Cee
                                    Jey Cee Developer last edited by

                                    @AlCalzone:

                                    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.

                                    @AlCalzone:

                                    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.

                                    1 Reply Last reply Reply Quote 0
                                    • AlCalzone
                                      AlCalzone Developer last edited by

                                      @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.

                                      1 Reply Last reply Reply Quote 0
                                      • Jey Cee
                                        Jey Cee Developer last edited by

                                        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.

                                        1 Reply Last reply Reply Quote 0
                                        • AlCalzone
                                          AlCalzone Developer last edited by

                                          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.

                                          1 Reply Last reply Reply Quote 0
                                          • AlCalzone
                                            AlCalzone Developer last edited by

                                            Der Multisensor crasht den Adapter. Fix => https://github.com/Jey-Cee/ioBroker.enocean/pull/7

                                            Jey-Cee created this issue in Jey-Cee/ioBroker.enocean

                                            closed add HORA SmratDrive MX (A5-20-04) #7

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            757
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            enocean
                                            31
                                            265
                                            45920
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo