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 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 Offline
    mickymM Offline
    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 Offline
        mickymM Offline
        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 Offline
          mickymM Offline
          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 Offline
                      mickymM Offline
                      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 Offline
                          mickymM Offline
                          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 Offline
                              mickymM Offline
                              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 Offline
                                    mickymM Offline
                                    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
                                        • 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??

                                          mickymM Offline
                                          mickymM Offline
                                          mickym
                                          Most Active
                                          schrieb am zuletzt editiert von mickym
                                          #21

                                          @Kusi nun im Prinzip startet dein JavaScript Adapter den Prozess aber wahrscheinlich nicht als Tochterprozess. Da musst mit ps irgendwie den Prozess identifizieren und dann wohl mit kill abschießen. Da sollten Dir die linux freaks helfen können. Oder Leute die sich mit Node.js auskennen

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          728

                                          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