Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Befehle von Neeo nach ioBroker senden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Befehle von Neeo nach ioBroker senden

Geplant Angeheftet Gesperrt Verschoben Hardware
neeo
62 Beiträge 3 Kommentatoren 5.7k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • K Offline
    K Offline
    Kusi
    schrieb am zuletzt editiert von Kusi
    #1

    Anbei die Vorgehensweise, um von der Neeo-Fernbedienung Befehle an ioBroker zu senden.

    Voraussetzung ist Node.js, ioBroker läuft auf einem Raspberry Pi 4.

    Zuerst muss die Neeo-SDK installiert werden.

    npm install git+https://github.com/NEEOInc/neeo-sdk.git
    

    Optional können noch Beispiel SDK´s installiert werden, welche dann unter /home/pi/node_modules erscheinen.

    npm install git+https://github.com/NEEOInc/neeo-sdk-examples.git
    

    Danach muss ein Treiber installiert werden, um die Kommunikation von Neeo zu ioBroker zu ermöglichen.

    npm install git+https://github.com/nklerk/neeo_driver-simple.git
    

    Jetzt muss die Datei index.js im Ordner /home/pi/node_modules/neeo_driver-test geöffnet werden. Ich selber habe dafür die Remoteverbindung benutzt. Natürlich kann dies auch über Putty gemacht werden.

    "use strict";
    const neeoapi = require("neeo-sdk");
    const http = require("http.min");
    
    let actualDriverObject;
    actualDriverObject = neeoapi.buildDevice("My first driver"); // 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
    
    // 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://www.google.com"); //Just sneds a http get, use this to controll devices that supports a http get
      }
      if (buttonName == "button-b") {
        http("http://www.google.com");
      }
      if (buttonName == "button-c") {
        http.post("https://httpbin.org/post", { data: "hello" }); //Sends a http post with json data {data: "hello"}
      }
      if (buttonName == "button-d") {
        http.post("https://httpbin.org/post", { data: "hello" });
      }
    });
    
    // 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);
      });
    
    

    In der Zeile 32 muss die IP-Adresse des Brains eingetragen/ersetzt werden.
    In der Zeile 17 muss ein *http get"-Befehl hinterlegt werden. Dieser wird dann gesendet, wenn die Taste "button-a" gedrückt wird. Meiner sieht hier wie folgt aus:

      if (buttonName == "button-a") {
        http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=A");
    

    Die IP-Adresse ist diese von ioBroker (Raspberry Pi), der Datenpunkt welcher der gesteuert werden soll. Dieser muss vorgängig erstellt werden. Bei mir schickt der Button A den Wert "A" an den Datenpunkt, Button B den Wert "B", usw.
    Ausserdem muss noch der Simple RESTful API-Adapter in ioBroker installiert werden.

    Wenn die index.js angepasst und gespeichert wurde, dann können wir wieder zurück zu Putty wechseln und starten dann den Treiber wie folgt:

    node /home/pi/node_modules/neeo_driver-test
    

    Der Treiber wird nun geladen und in der Neeo-App kann nach einem neuen Device nach "neeo_driver-test" suchen. Wurde dies gefunden und einem Raum zugeordnet, dann können im gewünschten Recipe die Buttons eingefügt werden. Werden diese gedrückt, dann ändert sich der Datenpunkt in ioBroker.

    Wird der Treiber im Putty beendet, dann funktionieren die Tasten auf der Neeo nicht mehr.
    Dies habe ich gelöst, indem ich mit Blockly eine Javascript-Funktion mit folgendem Befehl erstellt habe:

    exec('node /home/pi/node_modules/neeo_driver-test');
    

    Natürlich kann der Treiber auch per Autostart vom Raspberry Pi gestartet werden. Damit kenne ich mich aber noch zu wenig aus.

    In Blockly kann dann definiert werden, was bei der Änderung des Datenpunktes geschehen soll.
    Ich habe zu Testzwecken die Tasten den Shellys für auf/ab zugeordnet.

    mickymM UncleSamU 4 Antworten Letzte Antwort
    0
    • K Kusi

      Anbei die Vorgehensweise, um von der Neeo-Fernbedienung Befehle an ioBroker zu senden.

      Voraussetzung ist Node.js, ioBroker läuft auf einem Raspberry Pi 4.

      Zuerst muss die Neeo-SDK installiert werden.

      npm install git+https://github.com/NEEOInc/neeo-sdk.git
      

      Optional können noch Beispiel SDK´s installiert werden, welche dann unter /home/pi/node_modules erscheinen.

      npm install git+https://github.com/NEEOInc/neeo-sdk-examples.git
      

      Danach muss ein Treiber installiert werden, um die Kommunikation von Neeo zu ioBroker zu ermöglichen.

      npm install git+https://github.com/nklerk/neeo_driver-simple.git
      

      Jetzt muss die Datei index.js im Ordner /home/pi/node_modules/neeo_driver-test geöffnet werden. Ich selber habe dafür die Remoteverbindung benutzt. Natürlich kann dies auch über Putty gemacht werden.

      "use strict";
      const neeoapi = require("neeo-sdk");
      const http = require("http.min");
      
      let actualDriverObject;
      actualDriverObject = neeoapi.buildDevice("My first driver"); // 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
      
      // 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://www.google.com"); //Just sneds a http get, use this to controll devices that supports a http get
        }
        if (buttonName == "button-b") {
          http("http://www.google.com");
        }
        if (buttonName == "button-c") {
          http.post("https://httpbin.org/post", { data: "hello" }); //Sends a http post with json data {data: "hello"}
        }
        if (buttonName == "button-d") {
          http.post("https://httpbin.org/post", { data: "hello" });
        }
      });
      
      // 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);
        });
      
      

      In der Zeile 32 muss die IP-Adresse des Brains eingetragen/ersetzt werden.
      In der Zeile 17 muss ein *http get"-Befehl hinterlegt werden. Dieser wird dann gesendet, wenn die Taste "button-a" gedrückt wird. Meiner sieht hier wie folgt aus:

        if (buttonName == "button-a") {
          http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=A");
      

      Die IP-Adresse ist diese von ioBroker (Raspberry Pi), der Datenpunkt welcher der gesteuert werden soll. Dieser muss vorgängig erstellt werden. Bei mir schickt der Button A den Wert "A" an den Datenpunkt, Button B den Wert "B", usw.
      Ausserdem muss noch der Simple RESTful API-Adapter in ioBroker installiert werden.

      Wenn die index.js angepasst und gespeichert wurde, dann können wir wieder zurück zu Putty wechseln und starten dann den Treiber wie folgt:

      node /home/pi/node_modules/neeo_driver-test
      

      Der Treiber wird nun geladen und in der Neeo-App kann nach einem neuen Device nach "neeo_driver-test" suchen. Wurde dies gefunden und einem Raum zugeordnet, dann können im gewünschten Recipe die Buttons eingefügt werden. Werden diese gedrückt, dann ändert sich der Datenpunkt in ioBroker.

      Wird der Treiber im Putty beendet, dann funktionieren die Tasten auf der Neeo nicht mehr.
      Dies habe ich gelöst, indem ich mit Blockly eine Javascript-Funktion mit folgendem Befehl erstellt habe:

      exec('node /home/pi/node_modules/neeo_driver-test');
      

      Natürlich kann der Treiber auch per Autostart vom Raspberry Pi gestartet werden. Damit kenne ich mich aber noch zu wenig aus.

      In Blockly kann dann definiert werden, was bei der Änderung des Datenpunktes geschehen soll.
      Ich habe zu Testzwecken die Tasten den Shellys für auf/ab zugeordnet.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @Kusi Hier habe ich schon mal einen Treiber gefunden, bei dem Du HTTP Requests absetzen kannst:
      https://github.com/nklerk/neeo_driver-simple

      https://github.com/nklerk/neeo_driver-simple/blob/master/index.js

      aus

      https://planet.neeo.com/t/36r4jd/create-a-http-device

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      K 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @Kusi Hier habe ich schon mal einen Treiber gefunden, bei dem Du HTTP Requests absetzen kannst:
        https://github.com/nklerk/neeo_driver-simple

        https://github.com/nklerk/neeo_driver-simple/blob/master/index.js

        aus

        https://planet.neeo.com/t/36r4jd/create-a-http-device

        K Offline
        K Offline
        Kusi
        schrieb am zuletzt editiert von
        #3

        @mickym Der Treiber konnte ich auf meiner Neeo laden. Die Tasten A, B, C und D konnte ich einfügen.

        Wie muss folgende Codezeilen abgeändert werden, damit "http get" funktioniert?

        // 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://www.google.com"); //Just sneds a http get, use this to controll devices that supports a http get
          }
          if (buttonName == "button-b") {
            http("http://www.google.com");
          }
          if (buttonName == "button-c") {
            http.post("https://httpbin.org/post", { data: "hello" }); //Sends a http post with json data {data: "hello"}
          }
          if (buttonName == "button-d") {
            http.post("https://httpbin.org/post", { data: "hello" });
          }
        });
        
        mickymM 1 Antwort Letzte Antwort
        0
        • K Kusi

          @mickym Der Treiber konnte ich auf meiner Neeo laden. Die Tasten A, B, C und D konnte ich einfügen.

          Wie muss folgende Codezeilen abgeändert werden, damit "http get" funktioniert?

          // 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://www.google.com"); //Just sneds a http get, use this to controll devices that supports a http get
            }
            if (buttonName == "button-b") {
              http("http://www.google.com");
            }
            if (buttonName == "button-c") {
              http.post("https://httpbin.org/post", { data: "hello" }); //Sends a http post with json data {data: "hello"}
            }
            if (buttonName == "button-d") {
              http.post("https://httpbin.org/post", { data: "hello" });
            }
          });
          
          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #4

          @Kusi mach mal einen DP unter 0_userdata.0 also z.Bsp 0_userdata.0.test

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Antwort Letzte Antwort
          0
          • K Kusi

            Anbei die Vorgehensweise, um von der Neeo-Fernbedienung Befehle an ioBroker zu senden.

            Voraussetzung ist Node.js, ioBroker läuft auf einem Raspberry Pi 4.

            Zuerst muss die Neeo-SDK installiert werden.

            npm install git+https://github.com/NEEOInc/neeo-sdk.git
            

            Optional können noch Beispiel SDK´s installiert werden, welche dann unter /home/pi/node_modules erscheinen.

            npm install git+https://github.com/NEEOInc/neeo-sdk-examples.git
            

            Danach muss ein Treiber installiert werden, um die Kommunikation von Neeo zu ioBroker zu ermöglichen.

            npm install git+https://github.com/nklerk/neeo_driver-simple.git
            

            Jetzt muss die Datei index.js im Ordner /home/pi/node_modules/neeo_driver-test geöffnet werden. Ich selber habe dafür die Remoteverbindung benutzt. Natürlich kann dies auch über Putty gemacht werden.

            "use strict";
            const neeoapi = require("neeo-sdk");
            const http = require("http.min");
            
            let actualDriverObject;
            actualDriverObject = neeoapi.buildDevice("My first driver"); // 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
            
            // 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://www.google.com"); //Just sneds a http get, use this to controll devices that supports a http get
              }
              if (buttonName == "button-b") {
                http("http://www.google.com");
              }
              if (buttonName == "button-c") {
                http.post("https://httpbin.org/post", { data: "hello" }); //Sends a http post with json data {data: "hello"}
              }
              if (buttonName == "button-d") {
                http.post("https://httpbin.org/post", { data: "hello" });
              }
            });
            
            // 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);
              });
            
            

            In der Zeile 32 muss die IP-Adresse des Brains eingetragen/ersetzt werden.
            In der Zeile 17 muss ein *http get"-Befehl hinterlegt werden. Dieser wird dann gesendet, wenn die Taste "button-a" gedrückt wird. Meiner sieht hier wie folgt aus:

              if (buttonName == "button-a") {
                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=A");
            

            Die IP-Adresse ist diese von ioBroker (Raspberry Pi), der Datenpunkt welcher der gesteuert werden soll. Dieser muss vorgängig erstellt werden. Bei mir schickt der Button A den Wert "A" an den Datenpunkt, Button B den Wert "B", usw.
            Ausserdem muss noch der Simple RESTful API-Adapter in ioBroker installiert werden.

            Wenn die index.js angepasst und gespeichert wurde, dann können wir wieder zurück zu Putty wechseln und starten dann den Treiber wie folgt:

            node /home/pi/node_modules/neeo_driver-test
            

            Der Treiber wird nun geladen und in der Neeo-App kann nach einem neuen Device nach "neeo_driver-test" suchen. Wurde dies gefunden und einem Raum zugeordnet, dann können im gewünschten Recipe die Buttons eingefügt werden. Werden diese gedrückt, dann ändert sich der Datenpunkt in ioBroker.

            Wird der Treiber im Putty beendet, dann funktionieren die Tasten auf der Neeo nicht mehr.
            Dies habe ich gelöst, indem ich mit Blockly eine Javascript-Funktion mit folgendem Befehl erstellt habe:

            exec('node /home/pi/node_modules/neeo_driver-test');
            

            Natürlich kann der Treiber auch per Autostart vom Raspberry Pi gestartet werden. Damit kenne ich mich aber noch zu wenig aus.

            In Blockly kann dann definiert werden, was bei der Änderung des Datenpunktes geschehen soll.
            Ich habe zu Testzwecken die Tasten den Shellys für auf/ab zugeordnet.

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #5

            @Kusi Du könntest ggf. den Treiber noch automatisch starten - bin mir aber nicht ganz sicher, ob das so funktioniert wie ich mir das denke:

            Du könntest eine neue Datei erstellen

            sudo nano /etc/systemd/system/neeo_simple.service
            

            In diese neue Datei kannst mal probieren, ob das mit folgenden Einträgen funktioniert:

            [Unit]
            Description=Neeo Simple Service
            Wants=network.target
            After=network.target
            
            [Service]
            Type=simple
            User=pi
            WorkingDirectory=/home/pi/node_modules
            ExecStart=node /home/pi/node_modules/neeo_driver-test
            Restart=no
            
            [Install]
            WantedBy=multi-user.target
            

            dann Service bekannt machen

            sudo systemctl daemon-reload
            

            dann mal versuchen zu starten (vorher stoppen, wenn das vorher mit iobroker schon gestartet war):

            sudo systemctl start neeo_simple
            

            Überprüfen ob das Ding läuft geht ohne sudo

            systemctl status neeo_simple
            

            wenn das alles klappt und Du auf Deiner Fernebdienung Deine Tasten siehst - dann mit

            sudo systemctl enable neeo_simple.service
            

            dafür sorgen, dass der Dienst nach dem Hochfahren als nach Neustart automatisch startet!

            Ich mach das aber auch nur nach Kochrezept - bei großen Fehler müssen hier die UNIX Profis ran. ;)

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            K 1 Antwort Letzte Antwort
            0
            • K Kusi

              Anbei die Vorgehensweise, um von der Neeo-Fernbedienung Befehle an ioBroker zu senden.

              Voraussetzung ist Node.js, ioBroker läuft auf einem Raspberry Pi 4.

              Zuerst muss die Neeo-SDK installiert werden.

              npm install git+https://github.com/NEEOInc/neeo-sdk.git
              

              Optional können noch Beispiel SDK´s installiert werden, welche dann unter /home/pi/node_modules erscheinen.

              npm install git+https://github.com/NEEOInc/neeo-sdk-examples.git
              

              Danach muss ein Treiber installiert werden, um die Kommunikation von Neeo zu ioBroker zu ermöglichen.

              npm install git+https://github.com/nklerk/neeo_driver-simple.git
              

              Jetzt muss die Datei index.js im Ordner /home/pi/node_modules/neeo_driver-test geöffnet werden. Ich selber habe dafür die Remoteverbindung benutzt. Natürlich kann dies auch über Putty gemacht werden.

              "use strict";
              const neeoapi = require("neeo-sdk");
              const http = require("http.min");
              
              let actualDriverObject;
              actualDriverObject = neeoapi.buildDevice("My first driver"); // 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
              
              // 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://www.google.com"); //Just sneds a http get, use this to controll devices that supports a http get
                }
                if (buttonName == "button-b") {
                  http("http://www.google.com");
                }
                if (buttonName == "button-c") {
                  http.post("https://httpbin.org/post", { data: "hello" }); //Sends a http post with json data {data: "hello"}
                }
                if (buttonName == "button-d") {
                  http.post("https://httpbin.org/post", { data: "hello" });
                }
              });
              
              // 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);
                });
              
              

              In der Zeile 32 muss die IP-Adresse des Brains eingetragen/ersetzt werden.
              In der Zeile 17 muss ein *http get"-Befehl hinterlegt werden. Dieser wird dann gesendet, wenn die Taste "button-a" gedrückt wird. Meiner sieht hier wie folgt aus:

                if (buttonName == "button-a") {
                  http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=A");
              

              Die IP-Adresse ist diese von ioBroker (Raspberry Pi), der Datenpunkt welcher der gesteuert werden soll. Dieser muss vorgängig erstellt werden. Bei mir schickt der Button A den Wert "A" an den Datenpunkt, Button B den Wert "B", usw.
              Ausserdem muss noch der Simple RESTful API-Adapter in ioBroker installiert werden.

              Wenn die index.js angepasst und gespeichert wurde, dann können wir wieder zurück zu Putty wechseln und starten dann den Treiber wie folgt:

              node /home/pi/node_modules/neeo_driver-test
              

              Der Treiber wird nun geladen und in der Neeo-App kann nach einem neuen Device nach "neeo_driver-test" suchen. Wurde dies gefunden und einem Raum zugeordnet, dann können im gewünschten Recipe die Buttons eingefügt werden. Werden diese gedrückt, dann ändert sich der Datenpunkt in ioBroker.

              Wird der Treiber im Putty beendet, dann funktionieren die Tasten auf der Neeo nicht mehr.
              Dies habe ich gelöst, indem ich mit Blockly eine Javascript-Funktion mit folgendem Befehl erstellt habe:

              exec('node /home/pi/node_modules/neeo_driver-test');
              

              Natürlich kann der Treiber auch per Autostart vom Raspberry Pi gestartet werden. Damit kenne ich mich aber noch zu wenig aus.

              In Blockly kann dann definiert werden, was bei der Änderung des Datenpunktes geschehen soll.
              Ich habe zu Testzwecken die Tasten den Shellys für auf/ab zugeordnet.

              UncleSamU Offline
              UncleSamU Offline
              UncleSam
              Developer
              schrieb am zuletzt editiert von
              #6

              @Kusi sagte in Befehle von Neeo nach ioBroker senden:

              Anbei die Vorgehensweise, um von der Neeo-Fernbedienung Befehle an ioBroker zu senden.

              Hi Kusi
              Freut mich, dass es noch andere Neeo-ioBroker-Benutzer gibt. Cool wäre, wenn du aus deinen Erkenntnissen einen Adapter machen könntest. Damit wäre der Autostart auch geregelt und die Integration würde viel einfacher sein als per HTTP Requests und dann "Gebastel" in Blockly.
              Ich hätte gerne schon lange mal einen Neeo Adapter geschrieben, aber erstens habe ich aktuell keine Zeit und zweitens dachte ich mir, würde sich das für ein nicht mehr produziertes Produkt nicht mehr lohnen. Das zweite hast du ja nun widerlegt! :)
              /UncleSam

              Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
              ♡-lichen Dank an meine Sponsoren

              K 1 Antwort Letzte Antwort
              0
              • UncleSamU UncleSam

                @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                Anbei die Vorgehensweise, um von der Neeo-Fernbedienung Befehle an ioBroker zu senden.

                Hi Kusi
                Freut mich, dass es noch andere Neeo-ioBroker-Benutzer gibt. Cool wäre, wenn du aus deinen Erkenntnissen einen Adapter machen könntest. Damit wäre der Autostart auch geregelt und die Integration würde viel einfacher sein als per HTTP Requests und dann "Gebastel" in Blockly.
                Ich hätte gerne schon lange mal einen Neeo Adapter geschrieben, aber erstens habe ich aktuell keine Zeit und zweitens dachte ich mir, würde sich das für ein nicht mehr produziertes Produkt nicht mehr lohnen. Das zweite hast du ja nun widerlegt! :)
                /UncleSam

                K Offline
                K Offline
                Kusi
                schrieb am zuletzt editiert von Kusi
                #7

                @UncleSam Hallo UncleSam, Danke für deine Worte. Leider bin ich nicht der Programmierer. Wie man nur mit dem Erstellen eines Adapters beginnt, ist mir bereits nicht klar.

                Ohne die Hilfe von @mickym hätte ich diese Integration nie hinbekommen!!!

                Ich könnte ggfs. mitwirken, aber selber von Beginn zu Programmieren wird nie klappen, zumindest mit dem jetzigen Wissensstand nicht.
                Einen Neeo-Adapter gibt es bereits und habe ich auch installiert, jedoch erkennt dieser lediglich die Recipes (Rezepte) und ob diese momentan gestartet/gestoppt sind, sowie kann man diese auch per ioBroker starten/beenden.

                Ich bin der Meinung, auch wenn die Neeo seitens Hersteller ggfs. bald nicht mehr supportet wird, kann man diese trotzdem noch Jahre im Gebrauch halten. Ich habe Zuhause 3 Neeo-Fernbedienungen und 2 Brains, und bin damit mehr als zufrieden. Dank der Ankündigung des Supportendes sank der Preis stark, zum Teil sind sie für unter 100.- Franken im Netz zu finden.

                UncleSamU 1 Antwort Letzte Antwort
                0
                • K Kusi

                  @UncleSam Hallo UncleSam, Danke für deine Worte. Leider bin ich nicht der Programmierer. Wie man nur mit dem Erstellen eines Adapters beginnt, ist mir bereits nicht klar.

                  Ohne die Hilfe von @mickym hätte ich diese Integration nie hinbekommen!!!

                  Ich könnte ggfs. mitwirken, aber selber von Beginn zu Programmieren wird nie klappen, zumindest mit dem jetzigen Wissensstand nicht.
                  Einen Neeo-Adapter gibt es bereits und habe ich auch installiert, jedoch erkennt dieser lediglich die Recipes (Rezepte) und ob diese momentan gestartet/gestoppt sind, sowie kann man diese auch per ioBroker starten/beenden.

                  Ich bin der Meinung, auch wenn die Neeo seitens Hersteller ggfs. bald nicht mehr supportet wird, kann man diese trotzdem noch Jahre im Gebrauch halten. Ich habe Zuhause 3 Neeo-Fernbedienungen und 2 Brains, und bin damit mehr als zufrieden. Dank der Ankündigung des Supportendes sank der Preis stark, zum Teil sind sie für unter 100.- Franken im Netz zu finden.

                  UncleSamU Offline
                  UncleSamU Offline
                  UncleSam
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                  Einen Neeo-Adapter gibt es bereits

                  Das habe ich irgendwie verpasst :-). Dann müsste man aber schauen, dass all die Features, die du (und vielleicht auch ich) nutzt, in diesen Adapter einfliessen: https://github.com/jobe451/ioBroker.neeo

                  Hast du mal mit dem Daniel gesprochen?

                  Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                  ♡-lichen Dank an meine Sponsoren

                  K 1 Antwort Letzte Antwort
                  0
                  • UncleSamU UncleSam

                    @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                    Einen Neeo-Adapter gibt es bereits

                    Das habe ich irgendwie verpasst :-). Dann müsste man aber schauen, dass all die Features, die du (und vielleicht auch ich) nutzt, in diesen Adapter einfliessen: https://github.com/jobe451/ioBroker.neeo

                    Hast du mal mit dem Daniel gesprochen?

                    K Offline
                    K Offline
                    Kusi
                    schrieb am zuletzt editiert von
                    #9

                    @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                    Hast du mal mit dem Daniel gesprochen?

                    Ich habe Daniel vor mehreren Wochen angeschrieben, mich bedankt für seinen Adapter und dass ich bereit wäre fürs Testen. Leider habe ich nie eine Antwort erhalten.

                    1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @Kusi Du könntest ggf. den Treiber noch automatisch starten - bin mir aber nicht ganz sicher, ob das so funktioniert wie ich mir das denke:

                      Du könntest eine neue Datei erstellen

                      sudo nano /etc/systemd/system/neeo_simple.service
                      

                      In diese neue Datei kannst mal probieren, ob das mit folgenden Einträgen funktioniert:

                      [Unit]
                      Description=Neeo Simple Service
                      Wants=network.target
                      After=network.target
                      
                      [Service]
                      Type=simple
                      User=pi
                      WorkingDirectory=/home/pi/node_modules
                      ExecStart=node /home/pi/node_modules/neeo_driver-test
                      Restart=no
                      
                      [Install]
                      WantedBy=multi-user.target
                      

                      dann Service bekannt machen

                      sudo systemctl daemon-reload
                      

                      dann mal versuchen zu starten (vorher stoppen, wenn das vorher mit iobroker schon gestartet war):

                      sudo systemctl start neeo_simple
                      

                      Überprüfen ob das Ding läuft geht ohne sudo

                      systemctl status neeo_simple
                      

                      wenn das alles klappt und Du auf Deiner Fernebdienung Deine Tasten siehst - dann mit

                      sudo systemctl enable neeo_simple.service
                      

                      dafür sorgen, dass der Dienst nach dem Hochfahren als nach Neustart automatisch startet!

                      Ich mach das aber auch nur nach Kochrezept - bei großen Fehler müssen hier die UNIX Profis ran. ;)

                      K Offline
                      K Offline
                      Kusi
                      schrieb am zuletzt editiert von Kusi
                      #10

                      @mickym sagte in Befehle von Neeo nach ioBroker senden:

                      Treiber noch automatisch starten

                      Der Service kann gestartet werden, und mit dem Befehl

                      systemctl status neeo_simple
                      

                      kommt die Meldung, dass der Dienst aktiv ist.

                      pi@raspberrypi:~ $ sudo systemctl start neeo_simple
                      pi@raspberrypi:~ $ systemctl status neeo_simple
                      * neeo_simple.service - Neeo Simple Service
                         Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor preset: enabled)
                         Active: active (running) since Thu 2020-09-10 21:38:06 CEST; 4s ago
                       Main PID: 5731 (node)
                          Tasks: 7 (limit: 4915)
                         CGroup: /system.slice/neeo_simple.service
                                 `-5731 /usr/bin/node /home/pi/node_modules/ioBroker
                      
                      Sep 10 21:38:06 raspberrypi systemd[1]: Started Neeo Simple Service.
                      Sep 10 21:38:07 raspberrypi node[5731]: # READY! use the NEEO app to search for: ioBroker
                      Sep 10 21:38:07 raspberrypi node[5731]: [1B blob data]
                      Sep 10 21:38:07 raspberrypi node[5731]:   ACCESOIRE devices do not have their own recipy slides.
                      Sep 10 21:38:07 raspberrypi node[5731]:   You need to add the buttons as shortcuts to an existing device slide,
                      Sep 10 21:38:07 raspberrypi node[5731]:   add a dummy device (search for dummy) and add the buttons as shortcut there or
                      Sep 10 21:38:07 raspberrypi node[5731]:   change the actualDriverObject.setType line to present this driver as a different device
                      
                      

                      Nach dem Neustart des Raspberry funktioniert der Service aber nicht mehr.
                      Folgender Fehler wird angezeigt:

                      pi@raspberrypi:~ $ systemctl status neeo_simple
                      * neeo_simple.service - Neeo Simple Service
                         Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor pres
                         Active: failed (Result: exit-code) since Thu 2020-09-10 21:31:20 CEST; 3min 4
                        Process: 463 ExecStart=/usr/bin/node /home/pi/node_modules/ioBroker (code=exit
                       Main PID: 463 (code=exited, status=1/FAILURE)
                      
                      Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(corked)]: 0,
                      Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(kOutHeaders)]: [Object: nul
                      Sep 10 21:31:20 raspberrypi node[463]:     },
                      Sep 10 21:31:20 raspberrypi node[463]:     _currentUrl: 'http://192.168.1.80:300
                      Sep 10 21:31:20 raspberrypi node[463]:     [Symbol(kCapture)]: false
                      Sep 10 21:31:20 raspberrypi node[463]:   },
                      Sep 10 21:31:20 raspberrypi node[463]:   response: undefined
                      Sep 10 21:31:20 raspberrypi node[463]: }
                      Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Main process exited
                      Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Failed with result
                      lines 1-16/16 (END)...skipping...
                      * neeo_simple.service - Neeo Simple Service
                         Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor preset: enabled)
                         Active: failed (Result: exit-code) since Thu 2020-09-10 21:31:20 CEST; 3min 48s ago
                        Process: 463 ExecStart=/usr/bin/node /home/pi/node_modules/ioBroker (code=exited, status=1/FAILURE)
                       Main PID: 463 (code=exited, status=1/FAILURE)
                      
                      Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(corked)]: 0,
                      Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(kOutHeaders)]: [Object: null prototype]
                      Sep 10 21:31:20 raspberrypi node[463]:     },
                      Sep 10 21:31:20 raspberrypi node[463]:     _currentUrl: 'http://192.168.1.80:3000/systeminfo',
                      Sep 10 21:31:20 raspberrypi node[463]:     [Symbol(kCapture)]: false
                      Sep 10 21:31:20 raspberrypi node[463]:   },
                      Sep 10 21:31:20 raspberrypi node[463]:   response: undefined
                      Sep 10 21:31:20 raspberrypi node[463]: }
                      Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Main process exited, code=exited, status=1/FAILURE
                      Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Failed with result 'exit-code'.
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      ~
                      lines 1-16/16 (END)...skipping...
                      * neeo_simple.service - Neeo Simple Service
                         Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor preset: enabled)
                         Active: failed (Result: exit-code) since Thu 2020-09-10 21:31:20 CEST; 3min 48s ago
                        Process: 463 ExecStart=/usr/bin/node /home/pi/node_modules/ioBroker (code=exited, status=1/FAILURE)
                       Main PID: 463 (code=exited, status=1/FAILURE)
                      
                      Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(corked)]: 0,
                      Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(kOutHeaders)]: [Object: null prototype]
                      Sep 10 21:31:20 raspberrypi node[463]:     },
                      Sep 10 21:31:20 raspberrypi node[463]:     _currentUrl: 'http://192.168.1.80:3000/systeminfo',
                      Sep 10 21:31:20 raspberrypi node[463]:     [Symbol(kCapture)]: false
                      Sep 10 21:31:20 raspberrypi node[463]:   },
                      Sep 10 21:31:20 raspberrypi node[463]:   response: undefined
                      Sep 10 21:31:20 raspberrypi node[463]: }
                      Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Main process exited, code=exited, status=1/FAILURE
                      Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Failed with result 'exit-code'.
                      
                      
                      mickymM 1 Antwort Letzte Antwort
                      0
                      • K Kusi

                        @mickym sagte in Befehle von Neeo nach ioBroker senden:

                        Treiber noch automatisch starten

                        Der Service kann gestartet werden, und mit dem Befehl

                        systemctl status neeo_simple
                        

                        kommt die Meldung, dass der Dienst aktiv ist.

                        pi@raspberrypi:~ $ sudo systemctl start neeo_simple
                        pi@raspberrypi:~ $ systemctl status neeo_simple
                        * neeo_simple.service - Neeo Simple Service
                           Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor preset: enabled)
                           Active: active (running) since Thu 2020-09-10 21:38:06 CEST; 4s ago
                         Main PID: 5731 (node)
                            Tasks: 7 (limit: 4915)
                           CGroup: /system.slice/neeo_simple.service
                                   `-5731 /usr/bin/node /home/pi/node_modules/ioBroker
                        
                        Sep 10 21:38:06 raspberrypi systemd[1]: Started Neeo Simple Service.
                        Sep 10 21:38:07 raspberrypi node[5731]: # READY! use the NEEO app to search for: ioBroker
                        Sep 10 21:38:07 raspberrypi node[5731]: [1B blob data]
                        Sep 10 21:38:07 raspberrypi node[5731]:   ACCESOIRE devices do not have their own recipy slides.
                        Sep 10 21:38:07 raspberrypi node[5731]:   You need to add the buttons as shortcuts to an existing device slide,
                        Sep 10 21:38:07 raspberrypi node[5731]:   add a dummy device (search for dummy) and add the buttons as shortcut there or
                        Sep 10 21:38:07 raspberrypi node[5731]:   change the actualDriverObject.setType line to present this driver as a different device
                        
                        

                        Nach dem Neustart des Raspberry funktioniert der Service aber nicht mehr.
                        Folgender Fehler wird angezeigt:

                        pi@raspberrypi:~ $ systemctl status neeo_simple
                        * neeo_simple.service - Neeo Simple Service
                           Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor pres
                           Active: failed (Result: exit-code) since Thu 2020-09-10 21:31:20 CEST; 3min 4
                          Process: 463 ExecStart=/usr/bin/node /home/pi/node_modules/ioBroker (code=exit
                         Main PID: 463 (code=exited, status=1/FAILURE)
                        
                        Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(corked)]: 0,
                        Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(kOutHeaders)]: [Object: nul
                        Sep 10 21:31:20 raspberrypi node[463]:     },
                        Sep 10 21:31:20 raspberrypi node[463]:     _currentUrl: 'http://192.168.1.80:300
                        Sep 10 21:31:20 raspberrypi node[463]:     [Symbol(kCapture)]: false
                        Sep 10 21:31:20 raspberrypi node[463]:   },
                        Sep 10 21:31:20 raspberrypi node[463]:   response: undefined
                        Sep 10 21:31:20 raspberrypi node[463]: }
                        Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Main process exited
                        Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Failed with result
                        lines 1-16/16 (END)...skipping...
                        * neeo_simple.service - Neeo Simple Service
                           Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor preset: enabled)
                           Active: failed (Result: exit-code) since Thu 2020-09-10 21:31:20 CEST; 3min 48s ago
                          Process: 463 ExecStart=/usr/bin/node /home/pi/node_modules/ioBroker (code=exited, status=1/FAILURE)
                         Main PID: 463 (code=exited, status=1/FAILURE)
                        
                        Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(corked)]: 0,
                        Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(kOutHeaders)]: [Object: null prototype]
                        Sep 10 21:31:20 raspberrypi node[463]:     },
                        Sep 10 21:31:20 raspberrypi node[463]:     _currentUrl: 'http://192.168.1.80:3000/systeminfo',
                        Sep 10 21:31:20 raspberrypi node[463]:     [Symbol(kCapture)]: false
                        Sep 10 21:31:20 raspberrypi node[463]:   },
                        Sep 10 21:31:20 raspberrypi node[463]:   response: undefined
                        Sep 10 21:31:20 raspberrypi node[463]: }
                        Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Main process exited, code=exited, status=1/FAILURE
                        Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Failed with result 'exit-code'.
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        ~
                        lines 1-16/16 (END)...skipping...
                        * neeo_simple.service - Neeo Simple Service
                           Loaded: loaded (/etc/systemd/system/neeo_simple.service; enabled; vendor preset: enabled)
                           Active: failed (Result: exit-code) since Thu 2020-09-10 21:31:20 CEST; 3min 48s ago
                          Process: 463 ExecStart=/usr/bin/node /home/pi/node_modules/ioBroker (code=exited, status=1/FAILURE)
                         Main PID: 463 (code=exited, status=1/FAILURE)
                        
                        Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(corked)]: 0,
                        Sep 10 21:31:20 raspberrypi node[463]:       [Symbol(kOutHeaders)]: [Object: null prototype]
                        Sep 10 21:31:20 raspberrypi node[463]:     },
                        Sep 10 21:31:20 raspberrypi node[463]:     _currentUrl: 'http://192.168.1.80:3000/systeminfo',
                        Sep 10 21:31:20 raspberrypi node[463]:     [Symbol(kCapture)]: false
                        Sep 10 21:31:20 raspberrypi node[463]:   },
                        Sep 10 21:31:20 raspberrypi node[463]:   response: undefined
                        Sep 10 21:31:20 raspberrypi node[463]: }
                        Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Main process exited, code=exited, status=1/FAILURE
                        Sep 10 21:31:20 raspberrypi systemd[1]: neeo_simple.service: Failed with result 'exit-code'.
                        
                        
                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @Kusi Ok - dann investier da keine Zeit - dazu bin ich auch zuwenig Fachmann - dann schau vielleicht eher ob Du es automatisch übder den Javascript Adapter zum Laufen bringst.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        K 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @Kusi Ok - dann investier da keine Zeit - dazu bin ich auch zuwenig Fachmann - dann schau vielleicht eher ob Du es automatisch übder den Javascript Adapter zum Laufen bringst.

                          K Offline
                          K Offline
                          Kusi
                          schrieb am zuletzt editiert von
                          #12

                          @mickym Weist du wofür system.host.raspberrypi ist? Dort hat man den Datenpunkt "alive", welcher anzeigt ob der Adapter gestartet oder beendet ist. Mit diesem könnte man das Skript starten...

                          mickymM 1 Antwort Letzte Antwort
                          0
                          • K Kusi

                            @mickym Weist du wofür system.host.raspberrypi ist? Dort hat man den Datenpunkt "alive", welcher anzeigt ob der Adapter gestartet oder beendet ist. Mit diesem könnte man das Skript starten...

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #13

                            @Kusi Nein weiß ich leider nicht. Im Prinzip gibt es zu jedem Adapter ein "alive" der true wird, sobald der Adapter gestartet ist - also auch den Javascript-Adapter selbst. Nur Du brauchst ja wieder ein Script, der auch diese Datenpunkte auswertet. Wie willst Du das anstellen?

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            K 1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              @Kusi Nein weiß ich leider nicht. Im Prinzip gibt es zu jedem Adapter ein "alive" der true wird, sobald der Adapter gestartet ist - also auch den Javascript-Adapter selbst. Nur Du brauchst ja wieder ein Script, der auch diese Datenpunkte auswertet. Wie willst Du das anstellen?

                              K Offline
                              K Offline
                              Kusi
                              schrieb am zuletzt editiert von
                              #14

                              @mickym Den Datenpunkt "system.host.raspberrypi.alive" kann man nicht benutzen, da zu diesem Zeitpunkt der Adapter Javascript noch nicht läuft, somit die Änderung nicht wahrgenommen wird.

                              Ich habe es jetzt mit dem Datenpunkt "system.adapter.simple-api.0.alive" gelöst und es funktioniert:

                              // Beschreibe diese Funktion …
                              function ioBroker_starten() {
                                  exec('node /home/pi/node_modules/ioBroker');
                              }
                              
                              on({id: "system.adapter.simple-api.0.alive"/*simple-api.0 alive*/, val: true}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                ioBroker_starten();
                              });
                              
                              mickymM 1 Antwort Letzte Antwort
                              0
                              • K Kusi

                                @mickym Den Datenpunkt "system.host.raspberrypi.alive" kann man nicht benutzen, da zu diesem Zeitpunkt der Adapter Javascript noch nicht läuft, somit die Änderung nicht wahrgenommen wird.

                                Ich habe es jetzt mit dem Datenpunkt "system.adapter.simple-api.0.alive" gelöst und es funktioniert:

                                // Beschreibe diese Funktion …
                                function ioBroker_starten() {
                                    exec('node /home/pi/node_modules/ioBroker');
                                }
                                
                                on({id: "system.adapter.simple-api.0.alive"/*simple-api.0 alive*/, val: true}, function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  ioBroker_starten();
                                });
                                
                                mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von mickym
                                #15

                                @Kusi Das ist eine gute und schlüssige Idee - da der Adapter ja nötig ist. Und nachdem Du es ja getestet hast ist das ja gelöst. Ich hatte nur Bedenken wenn der dass der Datenpunkt "system.adapter.simple-api.0.alive bereits true ist, bevor der Javasript Adapter läuft - aber das scheint dann ja nicht der Fall zu sein. :slightly_smiling_face:

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                K 1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

                                  @Kusi Das ist eine gute und schlüssige Idee - da der Adapter ja nötig ist. Und nachdem Du es ja getestet hast ist das ja gelöst. Ich hatte nur Bedenken wenn der dass der Datenpunkt "system.adapter.simple-api.0.alive bereits true ist, bevor der Javasript Adapter läuft - aber das scheint dann ja nicht der Fall zu sein. :slightly_smiling_face:

                                  K Offline
                                  K Offline
                                  Kusi
                                  schrieb am zuletzt editiert von
                                  #16

                                  @mickym ich müsste nochmals genau hinsehen, in welcher Reihenfolge die Adapter starten. So funktioniert es jedenfalls einwandfrei und wie du richtig sagtest, der SimpleAPI-Adapter habe ich gewählt, weil dieser für Neeo erforderlich ist.

                                  K 1 Antwort Letzte Antwort
                                  0
                                  • K Kusi

                                    @mickym ich müsste nochmals genau hinsehen, in welcher Reihenfolge die Adapter starten. So funktioniert es jedenfalls einwandfrei und wie du richtig sagtest, der SimpleAPI-Adapter habe ich gewählt, weil dieser für Neeo erforderlich ist.

                                    K Offline
                                    K Offline
                                    Kusi
                                    schrieb am zuletzt editiert von Kusi
                                    #17

                                    @Kusi

                                    actualDriverObject.addButton({ name: "button-a", label: "Button A" }); // This makes a new button named button-a, on the remote its shown as Button A
                                    

                                    Kann man den Button zu einem Switch (Schalter: aus-ein) ändern?
                                    Gibt es die Möglichkeit einer Rückmeldung an Neeo? Sprich, wenn der Datenpunkt auf true gewechselt wird, der Schalter dann auf der Neeo auch auf "ein" wechselt?

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • K Kusi

                                      @Kusi

                                      actualDriverObject.addButton({ name: "button-a", label: "Button A" }); // This makes a new button named button-a, on the remote its shown as Button A
                                      

                                      Kann man den Button zu einem Switch (Schalter: aus-ein) ändern?
                                      Gibt es die Möglichkeit einer Rückmeldung an Neeo? Sprich, wenn der Datenpunkt auf true gewechselt wird, der Schalter dann auf der Neeo auch auf "ein" wechselt?

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #18

                                      @Kusi Das Problem ist, dass Du das jemand fragen musst, der sich mit Neeo ausgekennt. Zum einen bietet ja kannst du sicher von iobroker HTTP Befehle zu Deinem Brain zu schicken, aber ich wüßte nicht, wie man das in Neeo verarbeiten sollte.

                                      Das gleiche gilt, dass selbst wenn Neeo den iobroker abfragen würde - wie wird es dort weiterverarbeitet.

                                      Die Simple API Schnittstelle bietet sehr wohl die Möglichkeit jeden x-beliebigen Punkt aus iobroker auszulesen:

                                      http://192.168.1.15:8087/getPlainValue/javascript.0.Eigene_Datenpunkte.Neeo-Button
                                      

                                      oder alle Infos zum DP

                                      http://192.168.1.15:8087/get/javascript.0.Eigene_Datenpunkte.Neeo-Button
                                      

                                      Generell kannst die simple API ohne Parameter aufrufen und Du siehst die Möglichkeiten - das Problem ist die Neeo Seite. ;)

                                      Im Prinzip hängt das von dem Widget ab: s. SDK https://github.com/NEEOInc/neeo-sdk#power-control-capability

                                      siehe.
                                      Power Control Capability
                                      If your device supports Power control (power on device, power off device), add this capability - the generated recipe will power on and off your device automatically.

                                      You need to add support for the following buttons (addButton({..):

                                      POWER ON
                                      POWER OFF
                                      or just use the shortcut function .addButtonGroup('POWER')

                                      aber wie Du das dann machst - da muss sich jemand wirklich Neeo besser auskennen - da bin ich überfragt!

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      K 1 Antwort Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @Kusi Das Problem ist, dass Du das jemand fragen musst, der sich mit Neeo ausgekennt. Zum einen bietet ja kannst du sicher von iobroker HTTP Befehle zu Deinem Brain zu schicken, aber ich wüßte nicht, wie man das in Neeo verarbeiten sollte.

                                        Das gleiche gilt, dass selbst wenn Neeo den iobroker abfragen würde - wie wird es dort weiterverarbeitet.

                                        Die Simple API Schnittstelle bietet sehr wohl die Möglichkeit jeden x-beliebigen Punkt aus iobroker auszulesen:

                                        http://192.168.1.15:8087/getPlainValue/javascript.0.Eigene_Datenpunkte.Neeo-Button
                                        

                                        oder alle Infos zum DP

                                        http://192.168.1.15:8087/get/javascript.0.Eigene_Datenpunkte.Neeo-Button
                                        

                                        Generell kannst die simple API ohne Parameter aufrufen und Du siehst die Möglichkeiten - das Problem ist die Neeo Seite. ;)

                                        Im Prinzip hängt das von dem Widget ab: s. SDK https://github.com/NEEOInc/neeo-sdk#power-control-capability

                                        siehe.
                                        Power Control Capability
                                        If your device supports Power control (power on device, power off device), add this capability - the generated recipe will power on and off your device automatically.

                                        You need to add support for the following buttons (addButton({..):

                                        POWER ON
                                        POWER OFF
                                        or just use the shortcut function .addButtonGroup('POWER')

                                        aber wie Du das dann machst - da muss sich jemand wirklich Neeo besser auskennen - da bin ich überfragt!

                                        K Offline
                                        K Offline
                                        Kusi
                                        schrieb am zuletzt editiert von Kusi
                                        #19

                                        @mickym Die Volume-Gruppe konnte ich einfügen.
                                        903be710-b85f-4991-aa5a-39ba8521d858-image.png

                                        Wie ich allerdings z.B. nur Volume UP einfüge, ist mir noch ein Rätsel.
                                        Wobei ich natürlich die ganze Volume-Gruppe zum Treiber hinzufügen kann, und dann nur Volume UP auf die Benutzeroberfläche.

                                        Ein Slider lässt sich auch einfügen...
                                        18a5a291-7e2d-4d05-ad08-3fa6a5b895bf-image.png

                                        Der Switch konnte ich auch einfügen...
                                        31e254da-6b46-454c-a8de-0c4228d4e326-image.png

                                        Weist du wie ich

                                        node /home/pi/node_modules/ioBroker
                                        

                                        stoppen kann??

                                        K mickymM 2 Antworten Letzte Antwort
                                        0
                                        • K Kusi

                                          @mickym Die Volume-Gruppe konnte ich einfügen.
                                          903be710-b85f-4991-aa5a-39ba8521d858-image.png

                                          Wie ich allerdings z.B. nur Volume UP einfüge, ist mir noch ein Rätsel.
                                          Wobei ich natürlich die ganze Volume-Gruppe zum Treiber hinzufügen kann, und dann nur Volume UP auf die Benutzeroberfläche.

                                          Ein Slider lässt sich auch einfügen...
                                          18a5a291-7e2d-4d05-ad08-3fa6a5b895bf-image.png

                                          Der Switch konnte ich auch einfügen...
                                          31e254da-6b46-454c-a8de-0c4228d4e326-image.png

                                          Weist du wie ich

                                          node /home/pi/node_modules/ioBroker
                                          

                                          stoppen kann??

                                          K Offline
                                          K Offline
                                          Kusi
                                          schrieb am zuletzt editiert von
                                          #20

                                          @Kusi Folgendes ist der Code, um einen Switch einzufügen:

                                          actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{setter: (deviceId, newValue) => switchState = newValue,getter: (deviceId) => switchState,})
                                          

                                          Hättest du mir eine Idee, wie ich die Weiterleitung zu ioBroker konfigurieren muss? Ich möchte ja gerne 2 States, einmal für Schalter links und einmal für Schalter rechts.

                                            if (buttonName == "Switch") {
                                              http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=S1");
                                            }
                                          
                                          mickymM UncleSamU 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          327

                                          Online

                                          32.7k

                                          Benutzer

                                          82.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe