Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Befehle von Neeo nach ioBroker senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kusi @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
                  • mickym
                    mickym Most Active @Kusi last edited by

                    @Kusi das müsstest auch mit CTRL+Z zu beenden sein

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

                      @mickym sagte in Befehle von Neeo nach ioBroker senden:

                      vielleicht newValue die Stellung des Schalters speichern. Zum schuß schreibst dann den hatte Befehl und hängst den Inhalt als String hinter das = an.

                      Hast du mir ein Beispiel?
                      Vielleicht hilft dir dies etwas... Für mich ist dies nur Chinesisch...
                      4c5be137-885d-4227-aa1f-749fd048e2f8-image.png

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

                        @mickym sagte in Befehle von Neeo nach ioBroker senden:

                        mit CTRL+Z beenden

                        Ich kann dann zwar wieder etwas eingeben in Putty, aber der Service/Dienst wird nicht beendet. Muss dann stets das Raspberry neu starten.

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

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

                          Die Funktion addSwitch() speichert ja den Zustand des Schalters in switchState und gibt sie im "getter" auch wieder zurück. Etwas verwirren tut mich, dass du buttonName == "Switch" verwendest, oben den Schalter aber name: 'Schalter' nennst.

                          Mit dem Namen sollten die Buttons unterscheidbar sein:

                            if (buttonName == "ButtonG") {
                              http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=S1");
                            }
                            else if (buttonName == "ButtonH") {
                              http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Button?value=S2");
                            }
                          

                          Allerdings würde ich für jeden Knopf einen eigenen State verwenden - das macht das Handling etwas einfacher. Im Script (Javascript Adapter) musst du dann einfach change: 'any' verwenden, damit du den Knopfdruck jedes Mal mitbekommst.

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

                            @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                            Etwas verwirren tut mich, dass du buttonName == "Switch" verwendest, oben den Schalter aber name: 'Schalter' nennst.

                            Das ist mir gar nicht aufgefallen. Danke für den Hinweis.

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

                              @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                              @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                              Etwas verwirren tut mich, dass du buttonName == "Switch" verwendest, oben den Schalter aber name: 'Schalter' nennst.

                              Das ist mir gar nicht aufgefallen. Danke für den Hinweis.

                              Du meinst damit Datenpunkt?

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

                                @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                                Du meinst damit Datenpunkt?

                                Sorry, ich bin auf Englisch unterwegs: genau, state = Datenpunkt.

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

                                  @UncleSam Was ich allerdings noch nicht verstehe, wie ich einem Schalter (aus-ein) die Zuweisung gebe, dass er auf "ein" den Befehl sendet.

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

                                  Die Konfiguration ist mir ein Rätsel und weis ich nicht, wie dies gemacht werden muss.
                                  Und gerne hätte ich dann den Befehl in beide Richtungen (aus und ein), damit ich 2 Befehle absetzen kann.

                                  Ich weis nicht, welche Wörter ich durch was ersetzen muss.

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

                                    @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                                    Und gerne hätte ich dann den Befehl in beide Richtungen (aus und ein), damit ich 2 Befehle absetzen kann.

                                    Selber habe ich das noch nie getestet, aber den ganzen Code hast du ja bereits oben:

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

                                    setter und getter sind anonyme Javascript Funktionen. Anstatt nur die Variable zu speichern kannst du darin Code ausführen:

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

                                    (XXXX und YYYY musst du natürlich noch durch die richten Werte ersetzen, die ich auch nicht kenne. Und wie gesagt: ungetestet!)

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

                                      @UncleSam sagte in Befehle von Neeo nach ioBroker senden:

                                      if (newValue == 'XXXX') {

                                      Mit "richtigen Wert" meinst du den Wert, welcher vom Schalter her kommt wenn dieser auf "ein" gestellt ist, also z.B. true?

                                      Könnte man diesen ausgegebenen Wert irgendwie auslesen?

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

                                        @Kusi sagte in Befehle von Neeo nach ioBroker senden:

                                        Könnte man diesen ausgegebenen Wert irgendwie auslesen?

                                        Du könntest ihn ja direkt an den Datenpunkt schicken:

                                        http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=" + newValue);
                                        
                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kusi @UncleSam last edited by

                                          @UncleSam Als Antwort im Browser kommt

                                          {"id":"javascript.0.Eigene_Datenpunkte.Neeo-Switch","value":"\"   newValue","val":"\"   newValue"}
                                          

                                          Wert von Datenpunkt ist dann

                                          "   newValue
                                          

                                          Ist ein Zeichen falsch?

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

                                            @Kusi Im Browser geht das auch nicht - da dort ja die Variable "newValue" nicht gesetzt wird.

                                            @UncleSam meint dass Du in dem Code des Treibers für den Switch direkt den Wert übergibst - also so:

                                            actualDriverObject.addSwitch({ name: 'Schalter', label: 'Schalter' },{
                                              setter: (deviceId, newValue) => {
                                                switchState = newValue;
                                                http("http://192.168.1.15:8087/set/javascript.0.Eigene_Datenpunkte.Neeo-Switch?value=" + newValue);
                                              },
                                              getter: (deviceId) => switchState,})
                                            
                                            
                                            UncleSam K 3 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            721
                                            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