Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. NSPanel - Hardwarebuttons und MQTT Problem (gelöst)

    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

    NSPanel - Hardwarebuttons und MQTT Problem (gelöst)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dark Angel
      Dark Angel last edited by Dark Angel

      Re: SONOFF NSPanel mit Lovelace UI

      Irgendwie komme ich nicht weiter...
      Habe alles 5x kontrolliert, die Installation komplett Schritt für Schritt erneut durchgeführt, trotzdem bekomme ich die Hardwarebuttons nicht dazu den aktuellen Status in mqtt zu synchronisieren.

      NSPanel - Tasmota Einstellungen:

      {"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1,"CMND":"ADCParam 2,12400,7800,3950, | Sleep 0 | BuzzerPWM 1"}
      

      Tasmota - Vorlage konfigurieren.png

      @tt-tom sagte in SONOFF NSPanel mit Lovelace UI:

      Hi @dark-angel

      Wie ist die Konfiguration deiner Button, hast du sie von den Relais entkoppelt?

      Ich glaube, genau an dieser Stelle hackt es, nur ich finde die Stelle, bzw. richtige Einstellung nicht...
      Die Config der Buttons in dem entspr. TypeScript:

          button1: {
              mode: null,     // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
              page: null,     // Zielpage - Verwendet wenn mode = page (bisher button1Page)
              entity: null,   // Zielentity - Verwendet wenn mode = set oder toggle
              setValue: null  // Zielwert - Verwendet wenn mode = set
          },
          button2: {
              mode: null,     // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
              page: null,     // Zielpage - Verwendet wenn mode = page (bisher button2Page)
              entity: null,   // Zielentity - Verwendet wenn mode = set oder toggle
              setValue: null  // Zielwert - Verwendet wenn mode = set
          }
      

      Würde mich wirklich freuen, wenn mir jemand mit dem Zaunpfahl einen drüberbratten würde.

      T 1 Reply Last reply Reply Quote 0
      • T
        TT-Tom @Dark Angel last edited by TT-Tom

        @dark-angel

        Hast du die Button abgekoppelt von den Relais mit diesem Befehl?

        Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
        

        mit dem Befehl aktivierst du die Regel

        Rule2 1
        

        Zeige mal bitte deine MQTT einstellungen vom Panel

        Dann ist mir aufgefallen das bei GIPO27 bei mir eine 2 steht

        Dark Angel 1 Reply Last reply Reply Quote 0
        • Dark Angel
          Dark Angel @TT-Tom last edited by

          @tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:

          Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon

          Habe ich gerade eben erledigt:

          14:40:38.840 CMD: Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
          14:40:38.846 RUL: Stored uncompressed, would compress from 177 to 81 (-54%)
          14:40:38.853 MQT: SmartHome/NSPanel/stat/RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":177,"Free":334,"Rules":"on Button1#state do Publish %topic%/%prefix%/RESULT {\"CustomRecv\":\"event,button1\"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {\"CustomRecv\":\"event,button2\"} endon"}}
          

          NSPanel neu gestartet:

          00:00:00.002 HDW: ESP32-D0WD-V3 
          00:00:00.029 UFS: FlashFS mounted with 276 kB free
          00:00:00.044 CFG: Loaded from File, Anzahl 2101
          00:00:00.054 QPC: Count 1
          00:00:00.161 BRY: Berry initialized, RAM used=4041 bytes
          00:00:00.174 TFS: File '.drvset003' not found
          00:00:00.174 CFG: Energy use defaults as file system not ready or file not found
          00:00:00.184 Projekt tasmota - Tasmota Version 12.4.0(tasmota)-2_0_6(2023.02.24 15:41:22)
          00:00:00.370 NXP: Initializing Driver
          00:00:00.378 BRY: Successfully loaded 'autoexec.be'
          00:00:00.974 WIF: verbinden mit AP1 xxx Channel 6 BSSId xx:xx:xx:xx:xx:xx in Modus 11n als NSPanel-XXXX...
          00:00:02.879 WIF: verbunden
          00:00:03.189 HTP: Web-Server aktiv bei NSPanel-XXXX mit IP-Adresse 192.168.x.y
          14:44:25.168 MQT: Verbindungsversuch...
          14:44:25.214 MQT: verbunden
          14:44:25.218 MQT: SmartHome/NSPanel/tele/LWT = Online (beibehalten)
          14:44:25.220 MQT: SmartHome/NSPanel/cmnd/POWER = 
          14:44:25.227 MQT: SmartHome/NSPanel/tele/INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.4.0(tasmota)","FallbackTopic":"cmnd/NSPanel_fb/","GroupTopic":"SmartHome/tasmotas/cmnd/"}}
          14:44:25.242 MQT: SmartHome/NSPanel/tele/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"NSPanel-XXXX","IPAddress":"192.168.x.y","IP6Global":"","IP6Local":"xyz"}}
          14:44:25.256 MQT: SmartHome/NSPanel/tele/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":93}}
          14:44:25.269 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"OFF"}
          14:44:25.273 MQT: SmartHome/NSPanel/stat/POWER1 = OFF
          14:44:25.275 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER2":"OFF"}
          14:44:25.290 MQT: SmartHome/NSPanel/stat/POWER2 = OFF
          14:44:25.522 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"OFF"}
          14:44:25.524 MQT: SmartHome/NSPanel/stat/POWER1 = OFF
          14:44:25.600 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:25.628 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"OFF"}
          14:44:25.630 MQT: SmartHome/NSPanel/stat/POWER1 = OFF
          14:44:25.702 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:25.734 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"OFF"}
          14:44:25.737 MQT: SmartHome/NSPanel/stat/POWER1 = OFF
          14:44:25.799 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.092 MQT: SmartHome/NSPanel/tele/RESULT = {"CustomRecv":"event,startup,50,eu"}
          14:44:27.208 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.251 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.298 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.361 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.515 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.564 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.595 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"OFF"}
          14:44:27.598 MQT: SmartHome/NSPanel/stat/POWER1 = OFF
          14:44:27.664 MQT: SmartHome/NSPanel/stat/RESULT = {"CustomSend":"Done"}
          14:44:27.929 QPC: Reset
          14:44:29.933 MQT: SmartHome/NSPanel/tele/STATE = {"Time":"2023-03-12T14:44:29","Uptime":"0T00:00:09","UptimeSec":9,"Heap":132,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":198,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":239},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"XYZ","BSSId":"xx:xx:xx:xx:xx:xx","Channel":6,"Mode":"11n","RSSI":26,"Signal":-87,"LinkCount":1,"Downtime":"0T00:00:04"}}
          14:44:29.974 MQT: SmartHome/NSPanel/tele/SENSOR = {"Time":"2023-03-12T14:44:29","ANALOG":{"Temperature1":22.3},"ESP32":{"Temperature":57.2},"TempUnit":"C"}
          14:44:37.471 MQT: SmartHome/NSPanel/tele/RESULT = {"CustomRecv":"event,sleepReached,cardEntities"}
          

          Betätige ich den Button 1 (Ein / Aus) bekomme ich in der Console folgendes angezeig:

          14:50:52.383 MQT: SmartHome/NSPanel/tele/RESULT = {"CustomRecv":"event,buttonPress2,screensaver,bExit,1"}
          14:50:54.006 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"ON"}
          14:50:54.009 MQT: SmartHome/NSPanel/stat/POWER1 = ON
          14:50:56.344 MQT: SmartHome/NSPanel/stat/RESULT = {"POWER1":"OFF"}
          14:50:56.346 MQT: SmartHome/NSPanel/stat/POWER1 = OFF
          
          Rule2 1
          

          ausgeführt und ... Feierabend. Kann per Buttons kein Licht mehr schalten...

          1 Reply Last reply Reply Quote 0
          • Dark Angel
            Dark Angel last edited by

            Habe jetzt auch folgendes (ohne Erfolg) probiert:

            Rule2 on Button1#state do Publish SmartHome/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
            

            Hier die MQTT Config:
            Tasmota - MQTT konfigurieren.png

            T 1 Reply Last reply Reply Quote 0
            • T
              TT-Tom @Dark Angel last edited by TT-Tom

              @dark-angel

              mit Rule2 0 kannst du es wieder deaktivieren. Also du möchtest mit den Button die Relais schalten direkt?

              EDIT: Was möchtest du den genau machen?

              Dark Angel 1 Reply Last reply Reply Quote 0
              • Dark Angel
                Dark Angel @TT-Tom last edited by

                @tt-tom :
                Ich möchte einfach per physikalischen Druck auf den Buttons das Licht Ein/Ausschalten und den jeweiligen Zustand z.B. in Jarvis angezeigt bekommen.
                Das Problm ist, dass der Zustand nicht an ioBroker übermittelt wird, weshalb dieser weder in Jarvis, noch direkt auf dem NSPanel (Screensaver obere Ecken) angezeigt wird.

                T 2 Replies Last reply Reply Quote 0
                • T
                  TT-Tom @Dark Angel last edited by TT-Tom

                  @dark-angel Wenn du auf die Tasten drückst bekommst du doch auf dem MQTT die Meldung Power1 on /off bzw. Power2 on/off. Diese kannst du doch auswerten

                  mqtt.x.SmartHome.NSPanelBüro.stat.POWER1
                  
                  1 Reply Last reply Reply Quote 0
                  • T
                    TT-Tom @Dark Angel last edited by

                    @dark-angel es gibt jetzt eine Erweiterung mit der Version 4.0.4.1 und höher. Dazu musst du aber bitte mal ein Test für mich machen. Da ich die Kiste mit den Relais nicht hinten dran habe. kann ich das jetzt nicht testen. in den Service Seiten unter Einstellung / Relais solltest du die Relais schalten können, bitte mal testen.

                    Dann gibt es eine Möglichkeit über das Script zu steuern.

                    Dark Angel 1 Reply Last reply Reply Quote 0
                    • Dark Angel
                      Dark Angel @TT-Tom last edited by Dark Angel

                      @tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:

                      @dark-angel Wenn du auf die Tasten drückst bekommst du doch auf dem MQTT die Meldung Power1 on /off bzw. Power2 on/off. Diese kannst du doch auswerten

                      mqtt.x.SmartHome.NSPanelBüro.stat.POWER1
                      

                      Da muss ich wohl noch etwas basteln um den Wert als Alias abzulegen in der Hoffnung, dass es dann in Jarvis klappt (und auch in dem TrueScript für den NSPanel).

                      @tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:

                      @dark-angel es gibt jetzt eine Erweiterung mit der Version 4.0.4.1 und höher. Dazu musst du aber bitte mal ein Test für mich machen. Da ich die Kiste mit den Relais nicht hinten dran habe. kann ich das jetzt nicht testen. in den Service Seiten unter Einstellung / Relais solltest du die Relais schalten können, bitte mal testen.

                      Dann gibt es eine Möglichkeit über das Script zu steuern.

                      Ich habe schon die 4.0.4.2 "am laufen".
                      Wenn ich in den Einstellungen > Relais schalte, dann.. Ja dann wird der Wert auch ordentlich an ioBroker übermittelt und dem entsprechend auch in Jarvis angezeigt, sowie auch in den oberen Screensaver Ecken am NSPanel.
                      Umgekehrt ist es auch so, dass wenn ich das Licht per Jarvis einschalte, auch die Werte richtig in den Screensaver Ecken und unter Einstellungen > Relais angezeigt werden.

                      Es ist tatsächlich nur die fehlende Kommunikation zw. den Hardwarebuttons und ioBroker.

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        TT-Tom @Dark Angel last edited by

                        @dark-angel Dann aktiviere nochmal die Rule2 und im Script musst du dann für die Button folgende Einstellung machen. Beispiel für Button 1

                        button1: {
                            mode: 'toggle',                    // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
                            page: null,                        // Zielpage - Verwendet wenn mode = page (bisher button1Page)
                            entity: '0_userdata.0.NSPanel.Büro.Relay.1', // Zielentity - Verwendet wenn mode = set oder toggle
                            setValue: null                     // Zielwert - Verwendet wenn mode = set
                        }
                        
                        Dark Angel 1 Reply Last reply Reply Quote 0
                        • Dark Angel
                          Dark Angel @TT-Tom last edited by

                          @TT-Tom
                          anhand meiner MQTT Konfig auf dem NSPanel, welcher wäre eigentlich der richtige Befehl?

                          Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
                          

                          oder

                          Rule2 on Button1#state do Publish SmartHome/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
                          
                          T 1 Reply Last reply Reply Quote 0
                          • T
                            TT-Tom @Dark Angel last edited by TT-Tom

                            @dark-angel der zweite

                            Dark Angel 1 Reply Last reply Reply Quote 0
                            • Dark Angel
                              Dark Angel @TT-Tom last edited by

                              @tt-tom
                              Danke.
                              Funktioniert leider trotzdem nicht:

                              State "mqtt.0.SmartHome.NSPanel.%prefix%.RESULT" has no existing object, this might lead to an error in future versions
                              
                              T 1 Reply Last reply Reply Quote 0
                              • T
                                TT-Tom @Dark Angel last edited by

                                @dark-angel Wo kommt die Meldung den jetzt her?

                                Dark Angel 1 Reply Last reply Reply Quote 0
                                • Dark Angel
                                  Dark Angel @TT-Tom last edited by Dark Angel

                                  @tt-tom aus dem ioBroker Protokol.
                                  Anscheinend sendet das NSPanel schon "irgendwas", sobald man auf dem Button klickt, aber das ist nicht das richtige.
                                  Das steht dann in der Tasmota Console auf dem NSPanel:

                                  16:42:15.477 RUL: BUTTON1#STATE performs "Publish SmartHome/NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}"
                                  16:42:15.485 MQT: SmartHome/NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"}
                                  16:42:17.078 RUL: BUTTON1#STATE performs "Publish SmartHome/NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}"
                                  16:42:17.085 MQT: SmartHome/NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"}
                                  
                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    TT-Tom @Dark Angel last edited by

                                    @dark-angel sorry da habe ich mich getäuscht. du hast doch oben schon die richtige Rule angelegt

                                    bitte das noch einmal anlegen.

                                    1 Reply Last reply Reply Quote 0
                                    • Dark Angel
                                      Dark Angel last edited by

                                      Tasmota:

                                      16:57:00.259 RUL: BUTTON1#STATE performs "Publish NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}"
                                      16:57:00.267 MQT: NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"}
                                      16:57:01.909 RUL: BUTTON1#STATE performs "Publish NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}"
                                      16:57:01.918 MQT: NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"}
                                      

                                      ioBroker:

                                      State "mqtt.0.NSPanel.%prefix%.RESULT" has no existing object, this might lead to an error in future versions
                                      

                                      Ich hoffe nur, dass es bei mir ein Einzellfall ist und nicht ein generelles Problem, denn: Wenn die Lösung darin besteht die Hardwarebuttons von ihre eigentliche Funktion (Licht Ein/Aus schalten) zu entkoppeln, wird der "Lichtschalter" praktisch ohne Funktion sein, solange kein Steuerungsscript im Hintergrund läuft.
                                      Mit der Einstellung "Rule2 0" kann man nach wie vor das Licht schalten, selbst wenn das Display noch Runden dreht und auf Daten von ioBroker wartet.
                                      Wie schon gesagt: bis vor kurzem hat es noch funktioniert...

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        TT-Tom @Dark Angel last edited by TT-Tom

                                        @dark-angel Ja mit Rule2 0 verbindest du Relais und Button direkt über Tasmota.

                                        Wenn du die Sicherheit haben möchtest das es immer funktioniert dann ist es mMn nicht anders möglich. Die Relais bringen keinen Status

                                        Wenn du es doch über das Script probieren möchtest, dann gib in der Console noch einmal die richtige Rule-Definition ein.

                                        Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
                                        

                                        dann Rule2 1

                                        Dark Angel 1 Reply Last reply Reply Quote 0
                                        • Dark Angel
                                          Dark Angel @TT-Tom last edited by Dark Angel

                                          @tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:

                                          Rule2 1

                                          Also... Hirn eingeschalten, nachgeschaut und schon hat es funktioniert:

                                          Rule2 on Button1#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button2"} endon
                                          
                                          Rule2 1
                                          

                                          Jetzt bleibt nur noch (zumindest für mich) die Frage zu klären, wieso der NSPanel in der Konsole nichts mit %prefix% anzufangen weiß.

                                          P.S. Hätte mir viel Nachdenken erspart, hätte ich in dem Kapitel etwas besser aufgepasst: NSPanel-Tasmota-FAQ#1-hardware-buttons
                                          Dort wird nirgends der %prefix% erwähnt.
                                          Ich glaube, die Kurze Info im TrueScript sollte dahingehend überarbeitet werden.
                                          Zeile 130:

                                          129 Tasmota Konsole:
                                          130   Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
                                          131   Rule2 1 (Rule aktivieren)
                                          132   Rule2 0 (Rule deaktivieren)
                                          

                                          An dieser Stelle möchte ich mich recht herzlich bei @TT-Tom für die Unterstützung bedanken.

                                          1 Reply Last reply Reply Quote 1
                                          • T
                                            TT-Tom last edited by

                                            @dark-angel sagte in NSPanel - Hardwarebuttons und MQTT Problem (gelöst):

                                            Ich glaube, die Kurze Info im TrueScript sollte dahingehend überarbeitet werden.
                                            Zeile 130:

                                            Danke für die Rückinfo, wir werden es mit aufnehmen. Viel Spass weiterhin.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            796
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            20
                                            1259
                                            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