Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Befehle von Neeo nach ioBroker senden

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Befehle von Neeo nach ioBroker senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kusi @UncleSam last edited by

      @UncleSam Wenn ich den Treiber lade, kann ich ihn dann kein erneutes mal laden nach Änderungen. Ich kann ihn zwar pausieren, aber nicht stoppen, aus diesem Grund der Raspi-Neustart.

      Den Ordner /ioBroker habe ich erstellt, anstelle von /neeo_driver-test.
      Habe /ioBroker jetzt gelöscht und lasse den Standardordner.

      1 Reply Last reply Reply Quote 0
      • K
        Kusi @UncleSam last edited by Kusi

        @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

        SDK Quellcode habe ich gesehen, dass newValue tatsächlich ein boolean ist; damit wäre es true oder false

        Wie muss es genau heissen?

        Wie folgt kann ich den Treiber nicht laden:

        actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
          setter: (deviceId, newValue) => {
            switchState = newValue;
            if (newValue) {
              http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=wahr"
            } else {
              http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=falsch"
            }
          },
        
        UncleSam 1 Reply Last reply Reply Quote 0
        • UncleSam
          UncleSam Developer @Kusi last edited by

          @Kusi Die schliessenden Klammern fehlen beim http(...)

          K 1 Reply Last reply Reply Quote 0
          • K
            Kusi @UncleSam last edited by Kusi

            @UncleSam das habe ich mir eben auch gedacht und beim zweiten Versuch getestet, aber dann kommt folgender Fehler:

            pi@raspberrypi:~ $ node /home/pi/node_modules/neeo_driver-test
            /home/pi/node_modules/neeo_driver-test/index.js:29
            actualDriverObject.addButtonHandler((buttonName, deviceId) => {
                              ^
            
            SyntaxError: Unexpected token '.'
                at wrapSafe (internal/modules/cjs/loader.js:1053:16)
                at Module._compile (internal/modules/cjs/loader.js:1101:27)
                at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
                at Module.load (internal/modules/cjs/loader.js:985:32)
                at Function.Module._load (internal/modules/cjs/loader.js:878:14)
                at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
                at internal/main/run_main_module.js:17:47
            

            So sieht es jetzt komplett aus:

            "use strict";
            const neeoapi = require("neeo-sdk");
            const http = require("http.min");
            
            let actualDriverObject;
            actualDriverObject = neeoapi.buildDevice("ioBroker"); // change "My first driver" to anything you like but keep the "" characters
            actualDriverObject.setType("ACCESSOIRE"); // can be changed to "ACCESSOIRE" or "AVRECEIVER" or "DVB" or "DVD" or "GAMECONSOLE" or "LIGHT" or "MEDIAPLAYER" or "MUSICPLAYER" or "PROJECTOR" or "TV" or "VOD"
            actualDriverObject.addButton({ name: "button-a", label: "Button A" }); // This makes a new button named button-a, on the remote its shown as Button A
            actualDriverObject.addButton({ name: "button-b", label: "Button B" }); // This makes a new button named button-b, on the remote its shown as Button B
            actualDriverObject.addButton({ name: "button-c", label: "Button C" }); // This makes a new button named button-c, on the remote its shown as Button C
            actualDriverObject.addButton({ name: "button-d", label: "Button D" }); // This makes a new button named button-d, on the remote its shown as Button D
            actualDriverObject.addButton({ name: "button-e", label: "Button E" }); // This makes a new button named button-d, on the remote its shown as Button E
            actualDriverObject.addButton({ name: "button-f", label: "Button F" }); // This makes a new button named button-d, on the remote its shown as Button F
            actualDriverObject.addButton({ name: "button-g", label: "Button G" }); // This makes a new button named button-d, on the remote its shown as Button G
            actualDriverObject.addButton({ name: "button-h", label: "Button H" }); // This makes a new button named button-d, on the remote its shown as Button H
            
            actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
              setter: (deviceId, newValue) => {
                switchState = newValue;
                if (newValue) {
                  http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=wahr")
                } else {
                  http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=falsch")
                }
              },
            
            
            // Here is the code that gets executed when a button is pressed.
            actualDriverObject.addButtonHandler((buttonName, deviceId) => {
              console.log(`[CONTROLLER] ${buttonName} button pressed`);
              if (buttonName == "button-a") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=A"); //Just sneds a http get, use this to controll devices that supports a http get
              }
              if (buttonName == "button-b") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=B");
              }
              if (buttonName == "button-c") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=C");
              }
              if (buttonName == "button-d") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=D");
              }
              if (buttonName == "button-e") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=E");
              }
              if (buttonName == "button-f") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=F");
              }
              if (buttonName == "button-g") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=G");
              }
              if (buttonName == "button-h") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=H");
              }
            });
            
            // change this to set your NEEO brain IP. change 10.2.1.64 to the IP address of your NEEO brain.
            const neeoSettings = {
              brain: "192.168.1.80",
              port: 1104,
              name: "eigeneTasten",
              devices: [actualDriverObject]
            };
            
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // Do not change the code below this point. ///////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // Do not change the code below this point. ///////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // Do not change the code below this point. ///////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // Do not change the code below this point. ///////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            neeoapi
              .startServer(neeoSettings)
              .then(() => {
                console.log("# READY! use the NEEO app to search for: " + actualDriverObject.devicename);
                if (actualDriverObject.type == "ACCESSOIRE") {
                  console.log("\r\n  ACCESOIRE devices do not have their own recipy slides.");
                  console.log("  You need to add the buttons as shortcuts to an existing device slide,");
                  console.log("  add a dummy device (search for dummy) and add the buttons as shortcut there or");
                  console.log("  change the actualDriverObject.setType line to present this driver as a different device type.");
                }
              })
              .catch(err => {
                console.error("ERROR!", err);
                process.exit(1);
              });
            
            
            1 Reply Last reply Reply Quote 0
            • UncleSam
              UncleSam Developer @mickym last edited by

              @mickym sagte in Befehle von Neeo nach ioBroker senden:

              actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
                setter: (deviceId, newValue) => {
                  switchState = newValue;
                  http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=" + newValue);
                },
                getter: (deviceId) => switchState,})
              
              

              Das hier geht, oder? Wenn du etwas änderst, musst du immer schauen, dass die öffnenden und schliessenden Klammern (rund, geschweift, eckig) übereinstimmen.

              Ergo sollte es IMHO heissen:

              actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
                setter: (deviceId, newValue) => {
                  switchState = newValue;
                  if (newValue) {
                    http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=wahr"
                  } else {
                    http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=falsch"
                  }
                },
                getter: (deviceId) => switchState,})
              
              K UncleSam 2 Replies Last reply Reply Quote 0
              • K
                Kusi @UncleSam last edited by Kusi

                @UncleSam Gemäss Fehler beim vorherigen Laden des Treibers liegt der Fehler vermutlich an einem anderen Ort?

                Zeilen 28 und 29 von index.js

                // Here is the code that gets executed when a button is pressed.
                actualDriverObject.addButtonHandler((buttonName, deviceId) => {
                
                UncleSam 1 Reply Last reply Reply Quote 0
                • UncleSam
                  UncleSam Developer @Kusi last edited by

                  @Kusi Wenn Zeichen fehlen auf den vorherigen Zeilen, kann es sehr gut sein, dass der Fehler erst auf der nächsten Code-Zeile "zum Vorschein" kommt.

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Kusi @UncleSam last edited by Kusi

                    @UncleSam Aus meiner Sicht fehlt irgendwo eine schliessende Klammer, denn die Öffnende ist bei

                    actualDriverObject.addSwitch(
                    

                    Woher weis die If-Schleife eigentlich, ob der Wert/Schalter true oder false isch?

                    UncleSam 1 Reply Last reply Reply Quote 0
                    • UncleSam
                      UncleSam Developer @UncleSam last edited by

                      @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                      Ergo sollte es IMHO heissen:

                      actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
                        setter: (deviceId, newValue) => {
                          switchState = newValue;
                          if (newValue) {
                            http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=wahr"
                          } else {
                            http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=falsch"
                          }
                        },
                        getter: (deviceId) => switchState,})
                      

                      Genau. Zeile 10.

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kusi @UncleSam last edited by Kusi

                        @UncleSam Das ist jetzt die Antwort beim Treiber-Start:

                        pi@raspberrypi:~ $ node /home/pi/node_modules/neeo_driver-test
                        /home/pi/node_modules/neeo_driver-test/index.js:25
                              http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=wahr"
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        
                        SyntaxError: missing ) after argument list
                            at wrapSafe (internal/modules/cjs/loader.js:1053:16)
                            at Module._compile (internal/modules/cjs/loader.js:1101:27)
                            at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
                            at Module.load (internal/modules/cjs/loader.js:985:32)
                            at Function.Module._load (internal/modules/cjs/loader.js:878:14)
                            at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
                            at internal/main/run_main_module.js:17:47
                        
                        

                        Klammer fehlten!

                        1 Reply Last reply Reply Quote 0
                        • UncleSam
                          UncleSam Developer @Kusi last edited by

                          @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                          Woher weis die If-Schleife eigentlich, ob der Wert/Schalter true oder false isch?

                          if (newValue) überprüft den übergebenen neuen Wert, wenn der true (oder etwas ähnliches) ist, wird das erste ausgeführt, sonst das zweite.

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

                            Sorry, falsches korrigiert:

                            actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
                              setter: (deviceId, newValue) => {
                                switchState = newValue;
                                if (newValue) {
                                  http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=wahr");
                                } else {
                                  http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=falsch");
                                }
                              },
                              getter: (deviceId) => switchState,})
                            
                            K 1 Reply Last reply Reply Quote 0
                            • K
                              Kusi @UncleSam last edited by

                              @UncleSam Wie beende ich denn jetzt den Treiber, ohne dass ich den Raspi neu starten muss??

                              pi@raspberrypi:~ $ node /home/pi/node_modules/neeo_driver-test
                              # READY! use the NEEO app to search for: ioBroker
                              
                                ACCESOIRE devices do not have their own recipy slides.
                                You need to add the buttons as shortcuts to an existing device slide,
                                add a dummy device (search for dummy) and add the buttons as shortcut there or
                                change the actualDriverObject.setType line to present this driver as a different device type.
                              
                              UncleSam 1 Reply Last reply Reply Quote 0
                              • UncleSam
                                UncleSam Developer @Kusi last edited by

                                @Kusi Ctrl-C in dem Putty-Fenster in dem der driver läuft.

                                K 2 Replies Last reply Reply Quote 0
                                • K
                                  Kusi @UncleSam last edited by

                                  @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                                  @Kusi Ctrl-C in dem Putty-Fenster in dem der driver läuft.

                                  Danke.

                                  Laden des Treibers funktioniert, jedoch ändert der DP nicht.

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    Kusi @UncleSam last edited by

                                    @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                                    @Kusi Ctrl-C in dem Putty-Fenster in dem der driver läuft.

                                    Gibt es auch eine Möglichkeit den Treiber zu stoppen, wenn dieser als Java aus ioBroker gestartet wird?

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    866
                                    Online

                                    31.8k
                                    Users

                                    79.9k
                                    Topics

                                    1.3m
                                    Posts

                                    neeo
                                    3
                                    62
                                    3052
                                    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