Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Befehle von Neeo nach ioBroker senden

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

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

      1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Kusi last edited by 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 1 Reply Last reply Reply Quote 0
        • UncleSam
          UncleSam Developer @Kusi last edited by

          @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 1 Reply Last reply Reply Quote 0
          • K
            Kusi @UncleSam last edited by 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.

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

              @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 1 Reply Last reply Reply Quote 0
              • K
                Kusi @UncleSam last edited by

                @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 Reply Last reply Reply Quote 0
                • K
                  Kusi @mickym last edited by 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'.
                  
                  
                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Kusi last edited by

                    @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 1 Reply Last reply Reply Quote 0
                    • K
                      Kusi @mickym last edited by

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

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Kusi last edited by

                        @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 1 Reply Last reply Reply Quote 0
                        • K
                          Kusi @mickym last edited by

                          @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();
                          });
                          
                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Kusi last edited by 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. 🙂

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

                              @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 Reply Last reply Reply Quote 0
                              • K
                                Kusi @Kusi last edited by 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?

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Kusi last edited by 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 1 Reply Last reply Reply Quote 0
                                  • K
                                    Kusi @mickym last edited by 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 mickym 2 Replies Last reply Reply Quote 0
                                    • K
                                      Kusi @Kusi last edited by

                                      @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");
                                        }
                                      
                                      mickym UncleSam 2 Replies Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @Kusi last edited by mickym

                                        @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

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

                                          @mickym sagte in Befehle von Neeo nach ioBroker senden:

                                          @Kusi JavaScript Adapter den Prozess aber wahrscheinlich nicht als Tochterprozess

                                          Momentan starte ich ihn per Putty, damit ich ihn mit dem Schliessen von Putty beende.
                                          So kann ich einfach testen...

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Kusi last edited by

                                            @Kusi said in Befehle von Neeo nach ioBroker senden:

                                            @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");
                                              }
                                            

                                            Ehrlich gesagt verstehe ich die Syntax nicht ganz. Im Prinzip müsstest du in einer variablen - vielleicht newValue die Stellung des Schalters speichern. Zum schuß schreibst dann den hatte Befehl und hängst den Inhalt als String hinter das = an.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            810
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            neeo
                                            3
                                            62
                                            3052
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo