Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Sonoff NSPanel

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Sonoff NSPanel

Geplant Angeheftet Gesperrt Verschoben Hardware
1.5k Beiträge 78 Kommentatoren 636.8k Aufrufe 80 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.
  • H hene42

    @saeft_2003

    im Moment so, die Frage ist ob das so i.o. ist

    Screenshot 2022-01-02 145152.jpg

    S Offline
    S Offline
    saeft_2003
    Most Active
    schrieb am zuletzt editiert von
    #18

    @hene42

    Das probiere ich heute Abend auch mal aus 👍

    1 Antwort Letzte Antwort
    0
    • D DocGame

      @saeft_2003 Ich habe meines zum Testen zuerst an die Ewelinkapp angelernt. Alles hat prima geklappt.
      Habe dann das ganze mit der "tasmota32-nspanel.bin" geflasht. Zuerst sah alles gut aus. Die Analogtemperatur zeigt allerdings Minusgrade an (Bin in einem 20 Grad warmen Zimmer) und die ESP-Temperatur erscheint mir auch zu hoch. Die Relays kann ich schalten. Was aber extrem ungünstig ist, ist die Tatsache das das Display keine Uhrzeit und keine Temperatur anzeigt. Wenn ich nach rechts und links Swipe sind die Widgets verschwunden und da steht, das ich mich mit der App verbinden soll. Die Zeigt offline und ein erneutes Verbinden geht auch nicht meht.
      Ein drücken der Hardwaretasten für 5 Sekunden soll ihn ja reseten. Das funktioniert aber leider auch nicht mehr. Das einzige was am NSPanel direkt geht ist das swipen am Touchdisplay und die 2 Tasten zum Relay schalten (Wobei die Anzeige des Balkens auch nicht mehr geht).
      Ich habe auch schon ein Update auf die normale 10.1.0.3 gemacht. Die "nspanel.be" und die "autoexec.be" müssten stimmen und das Template habe ich von Blakadder übernommen.
      Kann mir jemand weiterhelfen?
      NSPanel1.JPG NPPanel2.jpg NSPanel4.jpg NSPanel3.jpg

      G Offline
      G Offline
      gecko1a
      schrieb am zuletzt editiert von
      #19

      @docgame Ich habe das gleiche Problem. Seltsamerweise funktioniert es beim meinem 1. Panel und ich bekomme Wetter/ Uhrzeit und auch Widgets angezeigt, bei meinem Zweiten nicht. ich meine alles gleich gemacht zu haben ...
      Hat jemand die original Firmware noch? Ich habe diese leider nicht gesichert und wollte nochmal an den Anfang zurück.
      Oder konntest Du das Problem lösen.
      Gruß Frank

      G V 2 Antworten Letzte Antwort
      0
      • G gecko1a

        @docgame Ich habe das gleiche Problem. Seltsamerweise funktioniert es beim meinem 1. Panel und ich bekomme Wetter/ Uhrzeit und auch Widgets angezeigt, bei meinem Zweiten nicht. ich meine alles gleich gemacht zu haben ...
        Hat jemand die original Firmware noch? Ich habe diese leider nicht gesichert und wollte nochmal an den Anfang zurück.
        Oder konntest Du das Problem lösen.
        Gruß Frank

        G Offline
        G Offline
        gecko1a
        schrieb am zuletzt editiert von
        #20

        @gecko1a Jetzt antworte ich mir selbst 🙂
        Ich habe es bei mir wieder hinbekommen. Erstmal stromlos und dann beim anschließen der Spannung die rechte Taste länger gedrückt. Dabei schein die Tasmota Konfig zurückgesetzt zu werden. Wieder SSID eingeben und nur das Template angerichtet. Daraufhin startete das Panel inklusiv (falscher) Temperatur und Wetter.
        Grüße Frank

        D 1 Antwort Letzte Antwort
        0
        • G gecko1a

          @gecko1a Jetzt antworte ich mir selbst 🙂
          Ich habe es bei mir wieder hinbekommen. Erstmal stromlos und dann beim anschließen der Spannung die rechte Taste länger gedrückt. Dabei schein die Tasmota Konfig zurückgesetzt zu werden. Wieder SSID eingeben und nur das Template angerichtet. Daraufhin startete das Panel inklusiv (falscher) Temperatur und Wetter.
          Grüße Frank

          D Offline
          D Offline
          DocGame
          schrieb am zuletzt editiert von
          #21

          @gecko1a Bezüglich des Temperatur-Unterschied Problems hat mir saeft_2003 Tip geholfen:

          @saeft_2003 sagte in Sonoff NSPanel:

          @docgame

          Ja bei mir war das auch so mit den 5 Grad. Probiere mal die Parameter die kommen bei mir ganz gut hin

          {"AdcParam1":[2,28000,18000,13950]}

          Noch ein Tipp mit nspdim 0 und 1 kannst du steuern ob das Display nur gedimmt wird oder ganz ausgeschalten wird. Tagsüber wird es bei mir gedimmt und Nachts oder bei Abwesenheit ist es aus.

          Bei der Temperatur-Steuerpage und dem einbinden der Widgets an ioBroker Datenpunkte gibt es leider keine Fortschritte.

          1 Antwort Letzte Antwort
          0
          • H hene42

            @saeft_2003

            im Moment so, die Frage ist ob das so i.o. ist

            Screenshot 2022-01-02 145152.jpg

            D Offline
            D Offline
            DocGame
            schrieb am zuletzt editiert von DocGame
            #22

            @hene42 @saeft_2003 Ich habe irgendwie schon immer Probleme beim parsen von Mqtt-Json's.
            Vielleicht sollte man auf Github beim Sonoffadapter ein Issue aufmachen um an die "Virtuellen" States ran zu kommen.
            Die Hardwarebuttons sind ja kein Problem, ist ja aber nicht die Lösung, da hierzu auch ein Schelly2.5 hinter dem Schalter ausgereicht hätte.
            Irgendwie müsste man doch an die Funktionen rankommen. scheinbar geht ja jetzt auch Rollo-Steuerung. (NSPanel Curtain )
            Da ich mit meinem bescheidenen Wissen nur solche simplen Blocklys hinbekomme warte ich einfach mal auf neuste Erkenntnisse.
            NSBlockly.JPG

            T 1 Antwort Letzte Antwort
            0
            • D DocGame

              @hene42 @saeft_2003 Ich habe irgendwie schon immer Probleme beim parsen von Mqtt-Json's.
              Vielleicht sollte man auf Github beim Sonoffadapter ein Issue aufmachen um an die "Virtuellen" States ran zu kommen.
              Die Hardwarebuttons sind ja kein Problem, ist ja aber nicht die Lösung, da hierzu auch ein Schelly2.5 hinter dem Schalter ausgereicht hätte.
              Irgendwie müsste man doch an die Funktionen rankommen. scheinbar geht ja jetzt auch Rollo-Steuerung. (NSPanel Curtain )
              Da ich mit meinem bescheidenen Wissen nur solche simplen Blocklys hinbekomme warte ich einfach mal auf neuste Erkenntnisse.
              NSBlockly.JPG

              T Offline
              T Offline
              timbo
              schrieb am zuletzt editiert von
              #23

              Ich habe auch ein NSPanel am laufen und bis auf die Widgets funktioniert das soweit auch.
              Was ich gern hätte, wäre folgendes:

              der linke Schalter schaltet eine Deckenlampe an/aus - alles perfekt. Der rechte Schalter ist momentan so, dass ich den Status im ioBrocker abfrage und damit dann Hue Lampen in dem Zimmer schalte. Funktioniert auch alles, aber da in dem Zimmer auch eine Alexa ist und mit dieser die Hue Lampen auch geschaltet werden können, ist der Status am rechten Schalter des NSpanels natürlich dann nicht synchron. Ich habe mich schon an einem Blockly versucht, aber irgendwie eine Todesschleife hinbekommen und dafür gesorgt, dass die Hue Lampen ca. 5 min an / aus gingen 🙂

              Hat jemand einen Tipp, wie ich das hinbekomme?

              Gruß Timo

              haus-automatisierungH 1 Antwort Letzte Antwort
              0
              • T timbo

                Ich habe auch ein NSPanel am laufen und bis auf die Widgets funktioniert das soweit auch.
                Was ich gern hätte, wäre folgendes:

                der linke Schalter schaltet eine Deckenlampe an/aus - alles perfekt. Der rechte Schalter ist momentan so, dass ich den Status im ioBrocker abfrage und damit dann Hue Lampen in dem Zimmer schalte. Funktioniert auch alles, aber da in dem Zimmer auch eine Alexa ist und mit dieser die Hue Lampen auch geschaltet werden können, ist der Status am rechten Schalter des NSpanels natürlich dann nicht synchron. Ich habe mich schon an einem Blockly versucht, aber irgendwie eine Todesschleife hinbekommen und dafür gesorgt, dass die Hue Lampen ca. 5 min an / aus gingen 🙂

                Hat jemand einen Tipp, wie ich das hinbekomme?

                Gruß Timo

                haus-automatisierungH Offline
                haus-automatisierungH Offline
                haus-automatisierung
                Developer Most Active
                schrieb am zuletzt editiert von
                #24

                @timbo sagte in Sonoff NSPanel:

                Hat jemand einen Tipp, wie ich das hinbekomme?

                1. Hast Du den Button in Tasmota vom Relais entkoppelt?
                2. Löse den Status auf dem Display von Tasmota (in der nspanel.be)
                3. Sorge dafür, dass jeder Tastendruck per MQTT gesendet wird
                4. Führe den Status ausschließlich (für bestätigte Änderungen) in ioBroker. Wie das geht, steht hier

                {"switches":[{"outlet":1,"switch":"on"}]}

                Fertig. Siehe auch

                https://haus-automatisierung.com/hardware/sonoff/2022/01/18/sonoff-nspanel-iobroker.html

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                1 Antwort Letzte Antwort
                1
                • D Offline
                  D Offline
                  doc.snyder112
                  schrieb am zuletzt editiert von
                  #25

                  Hallo,
                  ich habe mit meinen NSPanel das Problem, daß ich per MQTT keine Befehle an das Panel senden kann. Es sollte ja eigendlich ins topic
                  mqtt.0.SmartHome.nspanel_2BEE78.cmnd.NSPSend
                  und dort z.B. {"index":2, "type":"delete"} das Senden und das 2. Widget sollte verschwinden.

                  In der Tasmota Console klappt das auch wunderbar. Meldungen vom Panel zum Iobroker gehen auch.

                  Vielleicht kann mir jemand weiterhelfen.
                  Grüße Danilo

                  haus-automatisierungH 1 Antwort Letzte Antwort
                  0
                  • D doc.snyder112

                    Hallo,
                    ich habe mit meinen NSPanel das Problem, daß ich per MQTT keine Befehle an das Panel senden kann. Es sollte ja eigendlich ins topic
                    mqtt.0.SmartHome.nspanel_2BEE78.cmnd.NSPSend
                    und dort z.B. {"index":2, "type":"delete"} das Senden und das 2. Widget sollte verschwinden.

                    In der Tasmota Console klappt das auch wunderbar. Meldungen vom Panel zum Iobroker gehen auch.

                    Vielleicht kann mir jemand weiterhelfen.
                    Grüße Danilo

                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #26

                    @doc-snyder112 sagte in Sonoff NSPanel:

                    ich habe mit meinen NSPanel das Problem, daß ich per MQTT keine Befehle an das Panel senden kann.

                    Wie hast Du den Datenpunkt denn angelegt? Ich sende dafür immer einen Befehl aus einem MQTT-Programm (wie MQTT-Explorer) damit dieser in ioBroker angelegt wird. Manuell anlegen klappt nicht, weil Dir dann das native-Attribut für das Topic fehlt.

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    BananaJoeB Dark AngelD 2 Antworten Letzte Antwort
                    0
                    • haus-automatisierungH haus-automatisierung

                      @doc-snyder112 sagte in Sonoff NSPanel:

                      ich habe mit meinen NSPanel das Problem, daß ich per MQTT keine Befehle an das Panel senden kann.

                      Wie hast Du den Datenpunkt denn angelegt? Ich sende dafür immer einen Befehl aus einem MQTT-Programm (wie MQTT-Explorer) damit dieser in ioBroker angelegt wird. Manuell anlegen klappt nicht, weil Dir dann das native-Attribut für das Topic fehlt.

                      BananaJoeB Online
                      BananaJoeB Online
                      BananaJoe
                      Most Active
                      schrieb am zuletzt editiert von
                      #27

                      @haus-automatisierung @doc-snyder112

                      Manuell anlegen im ioBroker klappt nur über die SendTo-Methode, bin ich auch schon drüber gestolpert:

                      // Beispiel für SendTo von https://github.com/ioBroker/ioBroker.mqtt
                      // Test ob ich das zum Anlegen von neuen MQTT-Topics etc. nutzen kann
                      /*
                       * @param {string}  MQTT instance     Specify MQTT instance to send message through (may be either server or client)
                       * @param {string}  action            Action to use (always 'sendMessage2Client' for sending plain messages)
                       * @param {object}  payload         
                       * @param {string}  payload.topic     Topic to publish message on
                       * @param {string}  payload.message   Message to be published on specified topic
                       *
                       */
                      sendTo('mqtt.0', 'sendMessage2Client', {topic: 'znil/Tests/Testnachricht', message: '42'});
                      

                      oder als Blockly:
                      54e7076e-7cb9-4507-80d5-aca8bbc01b23-image.png
                      Export:

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <block type="sendto_custom" id="BWr5ehE:SME/#2Y:xw7n" x="138" y="163">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
                          <field name="INSTANCE">mqtt.0</field>
                          <field name="COMMAND">sendMessage2Client</field>
                          <field name="LOG"></field>
                          <field name="WITH_STATEMENT">FALSE</field>
                          <value name="ARG0">
                            <shadow type="text" id="shDRnRIW0=J[-cD/uTNJ">
                              <field name="TEXT">znil/Tests/TestnachrichtBlockly</field>
                            </shadow>
                          </value>
                          <value name="ARG1">
                            <shadow type="text" id="KvpMsF((eyp:O5@zp#uw">
                              <field name="TEXT">99</field>
                            </shadow>
                          </value>
                        </block>
                      </xml>
                      

                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        doc.snyder112
                        schrieb am zuletzt editiert von
                        #28

                        Danke für die Tips.

                        Ich hatte allerdings einen Fehler in der MQTT Adapter Konfig.

                        Jetzt Funktioniert es.

                        1 Antwort Letzte Antwort
                        1
                        • _JOHN__ Offline
                          _JOHN__ Offline
                          _JOHN_
                          schrieb am zuletzt editiert von
                          #29

                          Tach zusammen,

                          ich bastele nun auch seit einigen Tagen an dem Panel rum. Will an der Stelle gerne meine Erfahrungen teilen.
                          Ich bin zwar mit TASMOTA generell schon einige Jahre vertraut, bei dem PANEL hat mir aber sehr die Anleitung dieses Kollegen geholfen:

                          https://haus-automatisierung.com/hardware/sonoff/2022/01/18/sonoff-nspanel-iobroker.html

                          Zum Auslesen, Schalten und Widget setzen hat er bereits ein für meine Begriffe gutes Basisscript zur Verfügung gestellt, das man natürlich noch weiter anpassen muss je nachdem was man haben will. (wird im Video kurz erklärt, hilft vll. beim anfänglichen Verständnis).
                          Ich habe das noch ein wenig für meine Bedürfnisse aufgebohrt, bspw. das die Main-Widgets (Switche) direkt auch einen ordentlichen Namen bekommen und nicht nur Index heißen.

                          Zu meiner Frage an der Stelle:
                          Hat jemand evtl. eine Möglichkeit gefunden bei den Multiswitches den Namen der einzelnen OUTLETS zu ändern?
                          Es ist für mich wenig hilfreich und sinnig, dass ich dann zwar bis zu 4 Outlets habe - diese aber nicht umbenennen kann. habe schon einiges versucht, aber es ist mir leider noch nicht gelungen.
                          Der Parameter "name" in der JSON bspw., egal an welcher position ändert stets nur den Namen des "Haupt"-Switches aber nicht der darunter liegenden Outlets.

                          Hier sind verschiedene Parameter auch im Details aufgelistet und erklärt:

                          https://blakadder.github.io/nspanel/

                          Allerdings wird dort auch behauptet das man den Namen generell nicht ändern kann...was bei mir ja funktioniert.
                          ich hab also noch Hoffnung.

                          unten hier noch mein angepasstes Blockly Script.

                          Grüße John


                          <xml xmlns="https://developers.google.com/blockly/xml">
                          <variables>
                          <variable id="[pN7+pI7mS^v48AI2C">temp</variable> <variable id="cgN3b1dG]l9vJae#x%.|">index</variable> <variable id="H0NS77?9z5:L[t(ay.@">ctype</variable>
                          <variable id="/a:u~VISw+Afcj|JR|8O">type</variable>
                          <variable id="vYE5j0|Ypb@Dn;AYwl.
                          ">var_name</variable>
                          <variable id="}1#OtR3yZ8ZdPNuPzT9">params</variable>
                          <variable id="~[^+suo|DPeoXQ|a#U$O">mqttCmndId</variable>
                          <variable id="aevDUp]R;DeT@4L/rdho">mqttLwtId</variable>
                          <variable id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</variable>
                          <variable id="ZpE5jt??D}:s}opX$elU">mqttResultId</variable>
                          <variable id="tIM,K-nHxcf0DRJN(Y)C">resultObj</variable>
                          <variable type="timeout" id="waitForBoot">waitForBoot</variable>
                          </variables>
                          <block type="procedures_defcustomnoreturn" id="tBm:we7xW3,X53RAG]ER" x="63" y="13">
                          <mutation statements="false">
                          <arg name="temp" varid="[pN
                          7+pI7mS^v48AI2C"></arg> </mutation> <field name="NAME">setTemperature</field> <field name="SCRIPT">Y29uc3QgdGVtcE9iamVjdCA9IHsKICAgIHRlbXBlcmF0dXJlOiB0ZW1wCn07CmNvbnNvbGUubG9nKCdOU1BTZW5kOiAnICsgSlNPTi5zdHJpbmdpZnkodGVtcE9iamVjdCkpOwpzZXRTdGF0ZShtcXR0Q21uZElkLCBKU09OLnN0cmluZ2lmeSh0ZW1wT2JqZWN0KSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="QZ(E*R:#^tJDH@B?4EHF" x="63" y="38"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> </mutation> <field name="NAME">deleteWidget</field> <field name="SCRIPT">Y29uc3Qgd2lkZ2V0T2JqZWN0ID0gewogICAgaW5kZXg6IGluZGV4LAogICAgdHlwZTogJ2RlbGV0ZScKfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeSh3aWRnZXRPYmplY3QpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkod2lkZ2V0T2JqZWN0KSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="Z1gw8,0k6N~]9.0I{c!" x="63" y="63">
                          <mutation statements="false">
                          <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg>
                          <arg name="ctype" varid="H0NS77?9z5:L[t(ay.@"></arg> <arg name="type" varid="/a:u~VISw+Afcj|JR|8O"></arg> <arg name="var_name" varid="vYE5j0|Ypb@Dn;AYwl.*"></arg> </mutation> <field name="NAME">createWidget</field> <field name="SCRIPT">Y29uc3Qgd2lkZ2V0T2JqZWN0ID0gewogICAgIkhNSV9yZXNvdXJjZXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAiaW5kZXgiOiBpbmRleCwKICAgICAgICAgICAgImN0eXBlIjogY3R5cGUsCiAgICAgICAgICAgICJpZCI6IGluZGV4LnRvU3RyaW5nKCksCiAgICAgICAgICAgICJ1aWlkIjogdHlwZQogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeSh3aWRnZXRPYmplY3QpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkod2lkZ2V0T2JqZWN0KSk7CgovL3NldCBuYW1lCmNvbnN0IHJlbGF0aW9uT2JqZWN0MiA9IHsKICAgICJyZWxhdGlvbiI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IGluZGV4LnRvU3RyaW5nKCksCiAgICAgICAgICAgICJuYW1lIjogdmFyX25hbWUsCiAgICAgICAgICAgICJvbmxpbmUiOiB0cnVlCiAgICAgICAgICAgIAogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdDIpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkocmVsYXRpb25PYmplY3QyKSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="JjKn(WNnRSx123AsRjB1" x="63" y="88"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> <arg name="params" varid="}1#OtR*3yZ8ZdPNuPzT9"></arg> </mutation> <field name="NAME">setWidgetParams</field> <field name="SCRIPT">Y29uc3QgcmVsYXRpb25PYmplY3QgPSB7CiAgICAicmVsYXRpb24iOiBbCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiBpbmRleC50b1N0cmluZygpLAogICAgICAgICAgICAib25saW5lIjogdHJ1ZSwKICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcwogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdCkpOwpzZXRTdGF0ZShtcXR0Q21uZElkLCBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdCkpOwo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="^xL3c=7]_~zw,h7S7$0W" x="62" y="113"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> <arg name="var_name" varid="vYE5j0|Ypb@Dn;AYwl.*"></arg> </mutation> <field name="NAME">setWidgetName</field> <field name="SCRIPT">Y29uc3QgcmVsYXRpb25PYmplY3QyID0gewogICAgInJlbGF0aW9uIjogWwogICAgICAgIHsKICAgICAgICAgICAgImlkIjogaW5kZXgsCiAgICAgICAgICAgICJuYW1lIjogdmFyX25hbWUsCiAgICAgICAgICAgICJvbmxpbmUiOiB0cnVlCiAgICAgICAgICAgIAogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdDIpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkocmVsYXRpb25PYmplY3QyKSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defnoreturn" id="9zfL=sT{0k2)6;~l)o|}" x="62" y="162"> <field name="NAME">initWidgets</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="procedures_callcustomnoreturn" id="_Na?8dXXNdmc^z/;c}u^"> <mutation name="createWidget"> <arg name="index"></arg> <arg name="ctype"></arg> <arg name="type"></arg> <arg name="var_name"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="qhMlPMISbd_t30tPg)u">
                          <field name="NUM">1</field>
                          </block>
                          </value>
                          <value name="ARG1">
                          <block type="text" id="fB@CZ9L7Tx)5Ae[S-/Kr">
                          <field name="TEXT">group</field>
                          </block>
                          </value>
                          <value name="ARG2">
                          <block type="math_number" id="+]TF(%Eq^^u%CHD5z.{">
                          <field name="NUM">1</field>
                          </block>
                          </value>
                          <value name="ARG3">
                          <block type="text" id="1kafWi;p!WwUnO..ME">
                          <field name="TEXT">Couche</field>
                          </block>
                          </value>
                          <next>
                          <block type="procedures_callcustomnoreturn" id="g#9!6tcf^x/rHwKM,;+H">
                          <mutation name="createWidget">
                          <arg name="index"></arg>
                          <arg name="ctype"></arg>
                          <arg name="type"></arg>
                          <arg name="var_name"></arg>
                          </mutation>
                          <value name="ARG0">
                          <block type="math_number" id="-t;%S;D7C(q;HRaU/,G?">
                          <field name="NUM">2</field>
                          </block>
                          </value>
                          <value name="ARG1">
                          <block type="text" id="OFP_{UxCUjXj/nZAvr8z">
                          <field name="TEXT">group</field>
                          </block>
                          </value>
                          <value name="ARG2">
                          <block type="math_number" id="XK$T@k8Br_M:``LnN7ge">
                          <field name="NUM">4</field>
                          </block>
                          </value>
                          <value name="ARG3">
                          <block type="text" id="]pUdyT3TVb9y]J*P~Zc"> <field name="TEXT">Garten</field> </block> </value> <next> <block type="controls_for" id="Zj7J8U}-2jtZ_@X*S("> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> <value name="FROM"> <shadow type="math_number" id="*?tw.{_R[c0jlY6V[[%("> <field name="NUM">3</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="zy3_@3T]3S-l^%-,r%4n"> <field name="NUM">8</field> </shadow> </value> <value name="BY"> <shadow type="math_number" id=":KMFw#)jV[xkn6C%-7}~"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="procedures_callcustomnoreturn" id="EmNj8nlDc1$gu({hJA9,"> <mutation name="deleteWidget"> <arg name="index"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="t(|9o:Gv,o,[eX!/lkro"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="yJ9?Mh}-G^y1Lg}W!ror" x="63" y="638"> <field name="COMMENT">Full topic in Tasmota: SmartHome/%topic%/%prefix%/</field> <next> <block type="variables_set" id="!ZL27~%4XS^GIsp$,TjP"> <field name="VAR" id="~[^+suo|DPeoXQ|a#U$O">mqttCmndId</field> <value name="VALUE"> <block type="field_oid" id="RZOc)Pb(~=CW],;60V*M"> <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.cmnd.NSPSend</field> </block> </value> <next> <block type="variables_set" id="bun(psdk1Bh4bV(-d^Fw"> <field name="VAR" id="aevDUp]R;DeT@4L/rdho">mqttLwtId</field> <value name="VALUE"> <block type="field_oid" id="t)%4COMDb9PoSEOuE_c">
                          <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.tele.LWT</field>
                          </block>
                          </value>
                          <next>
                          <block type="variables_set" id="rITtEbJ
                          XnsZ%(|)AxGY">
                          <field name="VAR" id="ZpE5jt??D}:s}opX$elU">mqttResultId</field>
                          <value name="VALUE">
                          <block type="field_oid" id="8VYgu@Y0QKWL:0wP;^Iw">
                          <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.tele.RESULT</field>
                          </block>
                          </value>
                          <next>
                          <block type="procedures_callnoreturn" id="5B,M{6073Jx7.7S{}4]G">
                          <mutation name="initWidgets"></mutation>
                          <next>
                          <block type="on_ext" id="IHkIGB_aJ=={[#xJH3Cl">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                          <field name="CONDITION">any</field>
                          <field name="ACK_CONDITION">true</field>
                          <value name="OID0">
                          <shadow type="field_oid" id=":%Z+6DxleqY],NLY3Y">
                          <field name="oid">default</field>
                          </shadow>
                          <block type="variables_get" id="7RP1(a[;d4fV2Du[vo+[">
                          <field name="VAR" id="ZpE5jt??D}:s}opX$elU">mqttResultId</field>
                          </block>
                          </value>
                          <statement name="STATEMENT">
                          <block type="variables_set" id="GQp/+B[#cS7
                          ;jJ)bKdg">
                          <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                          <value name="VALUE">
                          <block type="convert_json2object" id="6OUSmanN;zWzb;C0f3m{">
                          <value name="VALUE">
                          <block type="on_source" id="h-A5c/u;9ucgT|K/ntg%">
                          <field name="ATTR">state.val</field>
                          </block>
                          </value>
                          </block>
                          </value>
                          <next>
                          <block type="controls_if" id="=1^,PC#~rRZtbF{VZjR">
                          <value name="IF0">
                          <block type="get_attr" id="K1s;#/e2g8YZT/Lu}c_?">
                          <value name="PATH">
                          <shadow type="text" id="Hkv+uAyP3^#W~h]99@t">
                          <field name="TEXT">NSPanel</field>
                          </shadow>
                          </value>
                          <value name="OBJECT">
                          <block type="variables_get" id="K31i70L$$?X50OY?$nY{">
                          <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                          </block>
                          </value>
                          </block>
                          </value>
                          <statement name="DO0">
                          <block type="variables_set" id="64^z.-QNoJQ_+6LM5mU9">
                          <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field>
                          <value name="VALUE">
                          <block type="get_attr" id="BHJGBbK,iqHZO^-F@k-q">
                          <value name="PATH">
                          <shadow type="text" id="U$LR3~OE
                          i9S]:NRb.pY">
                          <field name="TEXT">NSPanel.id</field>
                          </shadow>
                          </value>
                          <value name="OBJECT">
                          <block type="variables_get" id="r^]pHhk+Xo5t1AKb-O,j">
                          <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                          </block>
                          </value>
                          </block>
                          </value>
                          <next>
                          <block type="comment" id="BWRRa8Il{h-N;zD@jUf=">
                          <field name="COMMENT">Für welches Widget ist der Befehl?</field>
                          <next>
                          <block type="controls_if" id="X}Xt@.~;{y]=C/(R@vo,">
                          <mutation elseif="1"></mutation>
                          <value name="IF0">
                          <block type="logic_compare" id="PzVs
                          ;ol!KBLj^t)q|">
                          <field name="OP">EQ</field>
                          <value name="A">
                          <block type="variables_get" id="n~Bg9~[gqs[,X-E8M}o"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> <value name="B"> <block type="math_number" id="Oy8gy}|^Q+y-Tg+a.3cx"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Awlzupeq7qdMK5AGOi]$"> <field name="COMMENT">Ist es ein Switch-Befehl?</field> <next> <block type="controls_if" id="y=G2tAb|R1EZP-vzy0|%"> <value name="IF0"> <block type="get_attr" id="TTx_Jvq)XqxKQ/xbl1Ub"> <value name="PATH"> <shadow type="text" id="Szg@1uiFGYgs*N3_Q!2k"> <field name="TEXT">NSPanel.params.switch</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="jy4?,JKnm#6S.:3iI[S5"> <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="EeIf8hXqw_zP/[c3iWh~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Hilfsobjekte.dump3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="|8Bl3@O7mOZ%*g*n1QYT"> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="X{!@:/Ael+hT^7v10DWK"> <value name="PATH"> <shadow type="text" id="K-MPcd~az/E.B1,4hG3u"> <field name="TEXT">NSPanel.params.switch</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="r[3fNz]UId/UyCmdav6]"> <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="2IHj$68WOMw=Ts}c+r0H"> <field name="TEXT">on</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Cg6gGRghF.uMe,Bz0(lH"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="O3ish0VOZxQxQ{$n..8H"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> <value name="B"> <block type="math_number" id="eRbWjErChVYi8A_$)ATO"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="comment" id="LG9pn}J^;=p3%/.[/ZQH"> <field name="COMMENT">LWT überwachen, wenn Gerät wieder online</field> <next> <block type="on_ext" id="7hBsLcs|]|+gKB9{k:
                          ">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                          <field name="CONDITION">ne</field>
                          <field name="ACK_CONDITION">true</field>
                          <value name="OID0">
                          <shadow type="field_oid" id="OS$aDgD5RMCV0Dw:dOB">
                          <field name="oid">default</field>
                          </shadow>
                          <block type="variables_get" id="S1onAM.%F86D0Y0T:/n,">
                          <field name="VAR" id="aevDUp]R;DeT@4L/rdho">mqttLwtId</field>
                          </block>
                          </value>
                          <statement name="STATEMENT">
                          <block type="controls_if" id="1Zl(bF]sLz$:B:(g2Wvy">
                          <value name="IF0">
                          <block type="logic_compare" id="wOI#M-K)ebeVKAPQJDs"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="09hBZ8={I/z11+RQ0[k)"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="2;SK_QQLlb0L!915(
                          ^">
                          <field name="TEXT">Online</field>
                          </block>
                          </value>
                          </block>
                          </value>
                          <statement name="DO0">
                          <block type="debug" id="cbdJqZauF,H18x{(8Lt8">
                          <field name="Severity">log</field>
                          <value name="TEXT">
                          <shadow type="text" id="as^JY._XYLiLpq_J[Y|M">
                          <field name="TEXT">Gerät wieder online - übertrage Widgets in 5 Sekunden</field>
                          </shadow>
                          </value>
                          <next>
                          <block type="timeouts_settimeout" id="U4S^h#fW?VrNElhm!/9R">
                          <field name="NAME">waitForBoot</field>
                          <field name="DELAY">5</field>
                          <field name="UNIT">sec</field>
                          <statement name="STATEMENT">
                          <block type="procedures_callnoreturn" id="#~G1[gfyht#w+ybY9hMt">
                          <mutation name="initWidgets"></mutation>
                          </block>
                          </statement>
                          </block>
                          </next>
                          </block>
                          </statement>
                          </block>
                          </statement>
                          <next>
                          <block type="comment" id=")-n:BsiU4!-O$,NIY#M=">
                          <field name="COMMENT">Wenn Änderung bestätigt: Feedback an Widget 1</field>
                          <next>
                          <block type="on_ext" id="gi)(I1mFU6#J#Q7EDD$"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="dVKBso]cCaN;9Na@3Efh"> <field name="oid">javascript.0.Hilfsobjekte.dump3</field> </shadow> </value> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="GK@I-l{LOT1f3#6Z1tLr"> <mutation name="setWidgetParams"> <arg name="index"></arg> <arg name="params"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="ql^P-/mY]ALrMTB,]oth"> <field name="NUM">1</field> </block> </value> <value name="ARG1"> <block type="convert_json2object" id="CaBI06^Vk={UOVWiy]Dh"> <value name="VALUE"> <block type="text_join" id="/gQwArXf4nPPNqJG{fDe"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="hB*x2{kHp8p(w9Da8dP0"> <field name="TEXT">{"switch":"</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="^:%04E8=-(Qtga4+wnY."> <value name="IF"> <block type="on_source" id="Waa2QArV=XkB~r:BK2t">
                          <field name="ATTR">state.val</field>
                          </block>
                          </value>
                          <value name="THEN">
                          <block type="text" id="{C0x/oMSSFhsp2gl]9qt">
                          <field name="TEXT">on</field>
                          </block>
                          </value>
                          <value name="ELSE">
                          <block type="text" id="ZgwcG{)XCUZBoGo`xN39">
                          <field name="TEXT">off</field>
                          </block>
                          </value>
                          </block>
                          </value>
                          <value name="ADD2">
                          <block type="text" id="(/k^gB{DV7E{Fq)Uedr8">
                          <field name="TEXT">"}</field>
                          </block>
                          </value>
                          </block>
                          </value>
                          </block>
                          </value>
                          </block>
                          </statement>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </next>
                          </block>
                          </xml>

                          M haus-automatisierungH 2 Antworten Letzte Antwort
                          0
                          • _JOHN__ _JOHN_

                            Tach zusammen,

                            ich bastele nun auch seit einigen Tagen an dem Panel rum. Will an der Stelle gerne meine Erfahrungen teilen.
                            Ich bin zwar mit TASMOTA generell schon einige Jahre vertraut, bei dem PANEL hat mir aber sehr die Anleitung dieses Kollegen geholfen:

                            https://haus-automatisierung.com/hardware/sonoff/2022/01/18/sonoff-nspanel-iobroker.html

                            Zum Auslesen, Schalten und Widget setzen hat er bereits ein für meine Begriffe gutes Basisscript zur Verfügung gestellt, das man natürlich noch weiter anpassen muss je nachdem was man haben will. (wird im Video kurz erklärt, hilft vll. beim anfänglichen Verständnis).
                            Ich habe das noch ein wenig für meine Bedürfnisse aufgebohrt, bspw. das die Main-Widgets (Switche) direkt auch einen ordentlichen Namen bekommen und nicht nur Index heißen.

                            Zu meiner Frage an der Stelle:
                            Hat jemand evtl. eine Möglichkeit gefunden bei den Multiswitches den Namen der einzelnen OUTLETS zu ändern?
                            Es ist für mich wenig hilfreich und sinnig, dass ich dann zwar bis zu 4 Outlets habe - diese aber nicht umbenennen kann. habe schon einiges versucht, aber es ist mir leider noch nicht gelungen.
                            Der Parameter "name" in der JSON bspw., egal an welcher position ändert stets nur den Namen des "Haupt"-Switches aber nicht der darunter liegenden Outlets.

                            Hier sind verschiedene Parameter auch im Details aufgelistet und erklärt:

                            https://blakadder.github.io/nspanel/

                            Allerdings wird dort auch behauptet das man den Namen generell nicht ändern kann...was bei mir ja funktioniert.
                            ich hab also noch Hoffnung.

                            unten hier noch mein angepasstes Blockly Script.

                            Grüße John


                            <xml xmlns="https://developers.google.com/blockly/xml">
                            <variables>
                            <variable id="[pN7+pI7mS^v48AI2C">temp</variable> <variable id="cgN3b1dG]l9vJae#x%.|">index</variable> <variable id="H0NS77?9z5:L[t(ay.@">ctype</variable>
                            <variable id="/a:u~VISw+Afcj|JR|8O">type</variable>
                            <variable id="vYE5j0|Ypb@Dn;AYwl.
                            ">var_name</variable>
                            <variable id="}1#OtR3yZ8ZdPNuPzT9">params</variable>
                            <variable id="~[^+suo|DPeoXQ|a#U$O">mqttCmndId</variable>
                            <variable id="aevDUp]R;DeT@4L/rdho">mqttLwtId</variable>
                            <variable id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</variable>
                            <variable id="ZpE5jt??D}:s}opX$elU">mqttResultId</variable>
                            <variable id="tIM,K-nHxcf0DRJN(Y)C">resultObj</variable>
                            <variable type="timeout" id="waitForBoot">waitForBoot</variable>
                            </variables>
                            <block type="procedures_defcustomnoreturn" id="tBm:we7xW3,X53RAG]ER" x="63" y="13">
                            <mutation statements="false">
                            <arg name="temp" varid="[pN
                            7+pI7mS^v48AI2C"></arg> </mutation> <field name="NAME">setTemperature</field> <field name="SCRIPT">Y29uc3QgdGVtcE9iamVjdCA9IHsKICAgIHRlbXBlcmF0dXJlOiB0ZW1wCn07CmNvbnNvbGUubG9nKCdOU1BTZW5kOiAnICsgSlNPTi5zdHJpbmdpZnkodGVtcE9iamVjdCkpOwpzZXRTdGF0ZShtcXR0Q21uZElkLCBKU09OLnN0cmluZ2lmeSh0ZW1wT2JqZWN0KSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="QZ(E*R:#^tJDH@B?4EHF" x="63" y="38"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> </mutation> <field name="NAME">deleteWidget</field> <field name="SCRIPT">Y29uc3Qgd2lkZ2V0T2JqZWN0ID0gewogICAgaW5kZXg6IGluZGV4LAogICAgdHlwZTogJ2RlbGV0ZScKfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeSh3aWRnZXRPYmplY3QpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkod2lkZ2V0T2JqZWN0KSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="Z1gw8,0k6N~]9.0I{c!" x="63" y="63">
                            <mutation statements="false">
                            <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg>
                            <arg name="ctype" varid="H0NS77?9z5:L[t(ay.@"></arg> <arg name="type" varid="/a:u~VISw+Afcj|JR|8O"></arg> <arg name="var_name" varid="vYE5j0|Ypb@Dn;AYwl.*"></arg> </mutation> <field name="NAME">createWidget</field> <field name="SCRIPT">Y29uc3Qgd2lkZ2V0T2JqZWN0ID0gewogICAgIkhNSV9yZXNvdXJjZXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAiaW5kZXgiOiBpbmRleCwKICAgICAgICAgICAgImN0eXBlIjogY3R5cGUsCiAgICAgICAgICAgICJpZCI6IGluZGV4LnRvU3RyaW5nKCksCiAgICAgICAgICAgICJ1aWlkIjogdHlwZQogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeSh3aWRnZXRPYmplY3QpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkod2lkZ2V0T2JqZWN0KSk7CgovL3NldCBuYW1lCmNvbnN0IHJlbGF0aW9uT2JqZWN0MiA9IHsKICAgICJyZWxhdGlvbiI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IGluZGV4LnRvU3RyaW5nKCksCiAgICAgICAgICAgICJuYW1lIjogdmFyX25hbWUsCiAgICAgICAgICAgICJvbmxpbmUiOiB0cnVlCiAgICAgICAgICAgIAogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdDIpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkocmVsYXRpb25PYmplY3QyKSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="JjKn(WNnRSx123AsRjB1" x="63" y="88"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> <arg name="params" varid="}1#OtR*3yZ8ZdPNuPzT9"></arg> </mutation> <field name="NAME">setWidgetParams</field> <field name="SCRIPT">Y29uc3QgcmVsYXRpb25PYmplY3QgPSB7CiAgICAicmVsYXRpb24iOiBbCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiBpbmRleC50b1N0cmluZygpLAogICAgICAgICAgICAib25saW5lIjogdHJ1ZSwKICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcwogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdCkpOwpzZXRTdGF0ZShtcXR0Q21uZElkLCBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdCkpOwo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="^xL3c=7]_~zw,h7S7$0W" x="62" y="113"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> <arg name="var_name" varid="vYE5j0|Ypb@Dn;AYwl.*"></arg> </mutation> <field name="NAME">setWidgetName</field> <field name="SCRIPT">Y29uc3QgcmVsYXRpb25PYmplY3QyID0gewogICAgInJlbGF0aW9uIjogWwogICAgICAgIHsKICAgICAgICAgICAgImlkIjogaW5kZXgsCiAgICAgICAgICAgICJuYW1lIjogdmFyX25hbWUsCiAgICAgICAgICAgICJvbmxpbmUiOiB0cnVlCiAgICAgICAgICAgIAogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdDIpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkocmVsYXRpb25PYmplY3QyKSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defnoreturn" id="9zfL=sT{0k2)6;~l)o|}" x="62" y="162"> <field name="NAME">initWidgets</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="procedures_callcustomnoreturn" id="_Na?8dXXNdmc^z/;c}u^"> <mutation name="createWidget"> <arg name="index"></arg> <arg name="ctype"></arg> <arg name="type"></arg> <arg name="var_name"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="qhMlPMISbd_t30tPg)u">
                            <field name="NUM">1</field>
                            </block>
                            </value>
                            <value name="ARG1">
                            <block type="text" id="fB@CZ9L7Tx)5Ae[S-/Kr">
                            <field name="TEXT">group</field>
                            </block>
                            </value>
                            <value name="ARG2">
                            <block type="math_number" id="+]TF(%Eq^^u%CHD5z.{">
                            <field name="NUM">1</field>
                            </block>
                            </value>
                            <value name="ARG3">
                            <block type="text" id="1kafWi;p!WwUnO..ME">
                            <field name="TEXT">Couche</field>
                            </block>
                            </value>
                            <next>
                            <block type="procedures_callcustomnoreturn" id="g#9!6tcf^x/rHwKM,;+H">
                            <mutation name="createWidget">
                            <arg name="index"></arg>
                            <arg name="ctype"></arg>
                            <arg name="type"></arg>
                            <arg name="var_name"></arg>
                            </mutation>
                            <value name="ARG0">
                            <block type="math_number" id="-t;%S;D7C(q;HRaU/,G?">
                            <field name="NUM">2</field>
                            </block>
                            </value>
                            <value name="ARG1">
                            <block type="text" id="OFP_{UxCUjXj/nZAvr8z">
                            <field name="TEXT">group</field>
                            </block>
                            </value>
                            <value name="ARG2">
                            <block type="math_number" id="XK$T@k8Br_M:``LnN7ge">
                            <field name="NUM">4</field>
                            </block>
                            </value>
                            <value name="ARG3">
                            <block type="text" id="]pUdyT3TVb9y]J*P~Zc"> <field name="TEXT">Garten</field> </block> </value> <next> <block type="controls_for" id="Zj7J8U}-2jtZ_@X*S("> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> <value name="FROM"> <shadow type="math_number" id="*?tw.{_R[c0jlY6V[[%("> <field name="NUM">3</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="zy3_@3T]3S-l^%-,r%4n"> <field name="NUM">8</field> </shadow> </value> <value name="BY"> <shadow type="math_number" id=":KMFw#)jV[xkn6C%-7}~"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="procedures_callcustomnoreturn" id="EmNj8nlDc1$gu({hJA9,"> <mutation name="deleteWidget"> <arg name="index"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="t(|9o:Gv,o,[eX!/lkro"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="yJ9?Mh}-G^y1Lg}W!ror" x="63" y="638"> <field name="COMMENT">Full topic in Tasmota: SmartHome/%topic%/%prefix%/</field> <next> <block type="variables_set" id="!ZL27~%4XS^GIsp$,TjP"> <field name="VAR" id="~[^+suo|DPeoXQ|a#U$O">mqttCmndId</field> <value name="VALUE"> <block type="field_oid" id="RZOc)Pb(~=CW],;60V*M"> <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.cmnd.NSPSend</field> </block> </value> <next> <block type="variables_set" id="bun(psdk1Bh4bV(-d^Fw"> <field name="VAR" id="aevDUp]R;DeT@4L/rdho">mqttLwtId</field> <value name="VALUE"> <block type="field_oid" id="t)%4COMDb9PoSEOuE_c">
                            <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.tele.LWT</field>
                            </block>
                            </value>
                            <next>
                            <block type="variables_set" id="rITtEbJ
                            XnsZ%(|)AxGY">
                            <field name="VAR" id="ZpE5jt??D}:s}opX$elU">mqttResultId</field>
                            <value name="VALUE">
                            <block type="field_oid" id="8VYgu@Y0QKWL:0wP;^Iw">
                            <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.tele.RESULT</field>
                            </block>
                            </value>
                            <next>
                            <block type="procedures_callnoreturn" id="5B,M{6073Jx7.7S{}4]G">
                            <mutation name="initWidgets"></mutation>
                            <next>
                            <block type="on_ext" id="IHkIGB_aJ=={[#xJH3Cl">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                            <field name="CONDITION">any</field>
                            <field name="ACK_CONDITION">true</field>
                            <value name="OID0">
                            <shadow type="field_oid" id=":%Z+6DxleqY],NLY3Y">
                            <field name="oid">default</field>
                            </shadow>
                            <block type="variables_get" id="7RP1(a[;d4fV2Du[vo+[">
                            <field name="VAR" id="ZpE5jt??D}:s}opX$elU">mqttResultId</field>
                            </block>
                            </value>
                            <statement name="STATEMENT">
                            <block type="variables_set" id="GQp/+B[#cS7
                            ;jJ)bKdg">
                            <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                            <value name="VALUE">
                            <block type="convert_json2object" id="6OUSmanN;zWzb;C0f3m{">
                            <value name="VALUE">
                            <block type="on_source" id="h-A5c/u;9ucgT|K/ntg%">
                            <field name="ATTR">state.val</field>
                            </block>
                            </value>
                            </block>
                            </value>
                            <next>
                            <block type="controls_if" id="=1^,PC#~rRZtbF{VZjR">
                            <value name="IF0">
                            <block type="get_attr" id="K1s;#/e2g8YZT/Lu}c_?">
                            <value name="PATH">
                            <shadow type="text" id="Hkv+uAyP3^#W~h]99@t">
                            <field name="TEXT">NSPanel</field>
                            </shadow>
                            </value>
                            <value name="OBJECT">
                            <block type="variables_get" id="K31i70L$$?X50OY?$nY{">
                            <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                            </block>
                            </value>
                            </block>
                            </value>
                            <statement name="DO0">
                            <block type="variables_set" id="64^z.-QNoJQ_+6LM5mU9">
                            <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field>
                            <value name="VALUE">
                            <block type="get_attr" id="BHJGBbK,iqHZO^-F@k-q">
                            <value name="PATH">
                            <shadow type="text" id="U$LR3~OE
                            i9S]:NRb.pY">
                            <field name="TEXT">NSPanel.id</field>
                            </shadow>
                            </value>
                            <value name="OBJECT">
                            <block type="variables_get" id="r^]pHhk+Xo5t1AKb-O,j">
                            <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                            </block>
                            </value>
                            </block>
                            </value>
                            <next>
                            <block type="comment" id="BWRRa8Il{h-N;zD@jUf=">
                            <field name="COMMENT">Für welches Widget ist der Befehl?</field>
                            <next>
                            <block type="controls_if" id="X}Xt@.~;{y]=C/(R@vo,">
                            <mutation elseif="1"></mutation>
                            <value name="IF0">
                            <block type="logic_compare" id="PzVs
                            ;ol!KBLj^t)q|">
                            <field name="OP">EQ</field>
                            <value name="A">
                            <block type="variables_get" id="n~Bg9~[gqs[,X-E8M}o"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> <value name="B"> <block type="math_number" id="Oy8gy}|^Q+y-Tg+a.3cx"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Awlzupeq7qdMK5AGOi]$"> <field name="COMMENT">Ist es ein Switch-Befehl?</field> <next> <block type="controls_if" id="y=G2tAb|R1EZP-vzy0|%"> <value name="IF0"> <block type="get_attr" id="TTx_Jvq)XqxKQ/xbl1Ub"> <value name="PATH"> <shadow type="text" id="Szg@1uiFGYgs*N3_Q!2k"> <field name="TEXT">NSPanel.params.switch</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="jy4?,JKnm#6S.:3iI[S5"> <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="EeIf8hXqw_zP/[c3iWh~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Hilfsobjekte.dump3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="|8Bl3@O7mOZ%*g*n1QYT"> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="X{!@:/Ael+hT^7v10DWK"> <value name="PATH"> <shadow type="text" id="K-MPcd~az/E.B1,4hG3u"> <field name="TEXT">NSPanel.params.switch</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="r[3fNz]UId/UyCmdav6]"> <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="2IHj$68WOMw=Ts}c+r0H"> <field name="TEXT">on</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Cg6gGRghF.uMe,Bz0(lH"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="O3ish0VOZxQxQ{$n..8H"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> <value name="B"> <block type="math_number" id="eRbWjErChVYi8A_$)ATO"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="comment" id="LG9pn}J^;=p3%/.[/ZQH"> <field name="COMMENT">LWT überwachen, wenn Gerät wieder online</field> <next> <block type="on_ext" id="7hBsLcs|]|+gKB9{k:
                            ">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                            <field name="CONDITION">ne</field>
                            <field name="ACK_CONDITION">true</field>
                            <value name="OID0">
                            <shadow type="field_oid" id="OS$aDgD5RMCV0Dw:dOB">
                            <field name="oid">default</field>
                            </shadow>
                            <block type="variables_get" id="S1onAM.%F86D0Y0T:/n,">
                            <field name="VAR" id="aevDUp]R;DeT@4L/rdho">mqttLwtId</field>
                            </block>
                            </value>
                            <statement name="STATEMENT">
                            <block type="controls_if" id="1Zl(bF]sLz$:B:(g2Wvy">
                            <value name="IF0">
                            <block type="logic_compare" id="wOI#M-K)ebeVKAPQJDs"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="09hBZ8={I/z11+RQ0[k)"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="2;SK_QQLlb0L!915(
                            ^">
                            <field name="TEXT">Online</field>
                            </block>
                            </value>
                            </block>
                            </value>
                            <statement name="DO0">
                            <block type="debug" id="cbdJqZauF,H18x{(8Lt8">
                            <field name="Severity">log</field>
                            <value name="TEXT">
                            <shadow type="text" id="as^JY._XYLiLpq_J[Y|M">
                            <field name="TEXT">Gerät wieder online - übertrage Widgets in 5 Sekunden</field>
                            </shadow>
                            </value>
                            <next>
                            <block type="timeouts_settimeout" id="U4S^h#fW?VrNElhm!/9R">
                            <field name="NAME">waitForBoot</field>
                            <field name="DELAY">5</field>
                            <field name="UNIT">sec</field>
                            <statement name="STATEMENT">
                            <block type="procedures_callnoreturn" id="#~G1[gfyht#w+ybY9hMt">
                            <mutation name="initWidgets"></mutation>
                            </block>
                            </statement>
                            </block>
                            </next>
                            </block>
                            </statement>
                            </block>
                            </statement>
                            <next>
                            <block type="comment" id=")-n:BsiU4!-O$,NIY#M=">
                            <field name="COMMENT">Wenn Änderung bestätigt: Feedback an Widget 1</field>
                            <next>
                            <block type="on_ext" id="gi)(I1mFU6#J#Q7EDD$"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="dVKBso]cCaN;9Na@3Efh"> <field name="oid">javascript.0.Hilfsobjekte.dump3</field> </shadow> </value> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="GK@I-l{LOT1f3#6Z1tLr"> <mutation name="setWidgetParams"> <arg name="index"></arg> <arg name="params"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="ql^P-/mY]ALrMTB,]oth"> <field name="NUM">1</field> </block> </value> <value name="ARG1"> <block type="convert_json2object" id="CaBI06^Vk={UOVWiy]Dh"> <value name="VALUE"> <block type="text_join" id="/gQwArXf4nPPNqJG{fDe"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="hB*x2{kHp8p(w9Da8dP0"> <field name="TEXT">{"switch":"</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="^:%04E8=-(Qtga4+wnY."> <value name="IF"> <block type="on_source" id="Waa2QArV=XkB~r:BK2t">
                            <field name="ATTR">state.val</field>
                            </block>
                            </value>
                            <value name="THEN">
                            <block type="text" id="{C0x/oMSSFhsp2gl]9qt">
                            <field name="TEXT">on</field>
                            </block>
                            </value>
                            <value name="ELSE">
                            <block type="text" id="ZgwcG{)XCUZBoGo`xN39">
                            <field name="TEXT">off</field>
                            </block>
                            </value>
                            </block>
                            </value>
                            <value name="ADD2">
                            <block type="text" id="(/k^gB{DV7E{Fq)Uedr8">
                            <field name="TEXT">"}</field>
                            </block>
                            </value>
                            </block>
                            </value>
                            </block>
                            </value>
                            </block>
                            </statement>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </next>
                            </block>
                            </xml>

                            M Online
                            M Online
                            mrjeschke
                            schrieb am zuletzt editiert von
                            #30

                            @leone-mortuo
                            Ich probiere auch schon seit Tagen die Outlets-Namen zu ändern.
                            Bis jetzt ebenfalls ohne Erfolg. Weder über die Konsole noch über die
                            nspanel.be klappt das.
                            Die Widgets selbst erzeuge ich in der nspanel.be. Gefällt mir besser als
                            das mit einem Blockly zu machen.

                            _JOHN__ 1 Antwort Letzte Antwort
                            0
                            • M mrjeschke

                              @leone-mortuo
                              Ich probiere auch schon seit Tagen die Outlets-Namen zu ändern.
                              Bis jetzt ebenfalls ohne Erfolg. Weder über die Konsole noch über die
                              nspanel.be klappt das.
                              Die Widgets selbst erzeuge ich in der nspanel.be. Gefällt mir besser als
                              das mit einem Blockly zu machen.

                              _JOHN__ Offline
                              _JOHN__ Offline
                              _JOHN_
                              schrieb am zuletzt editiert von
                              #31

                              @maik-0

                              ein Mitstreiter, das ist doch schon mal prima 🙂

                              hatte ich auch schon überlegt, wenn die erst mal erstellt sind brauche ich die Dynamik eines script eigentlich nicht mehr zwingend. ist das allerdings dann auch "Bootfest" ? falls mal der Strom weg is...

                              Das mit den Outlets kostet mich momentan den letzten Nerv, hatte sogar schon überlegt die org. Firmware drauf zu spielen in der Hoffnung das man es dann ändern kann und vll. ne Info zu den Parameter bekommt. im netz konnte ich noch garnix dazu finden .

                              M 1 Antwort Letzte Antwort
                              0
                              • _JOHN__ _JOHN_

                                @maik-0

                                ein Mitstreiter, das ist doch schon mal prima 🙂

                                hatte ich auch schon überlegt, wenn die erst mal erstellt sind brauche ich die Dynamik eines script eigentlich nicht mehr zwingend. ist das allerdings dann auch "Bootfest" ? falls mal der Strom weg is...

                                Das mit den Outlets kostet mich momentan den letzten Nerv, hatte sogar schon überlegt die org. Firmware drauf zu spielen in der Hoffnung das man es dann ändern kann und vll. ne Info zu den Parameter bekommt. im netz konnte ich noch garnix dazu finden .

                                M Online
                                M Online
                                mrjeschke
                                schrieb am zuletzt editiert von
                                #32

                                @leone-mortuo
                                Wenn du die Widget mit dem Blockly erzeugst, dürften sie nach dem
                                booten weg sein. Wenn du sie aber über die nspanel.be erstellst,
                                werden sie beim booten neu erstellt.
                                Diese Datei wird ja beim Start automatisch ausgeführt.

                                1 Antwort Letzte Antwort
                                0
                                • _JOHN__ _JOHN_

                                  Tach zusammen,

                                  ich bastele nun auch seit einigen Tagen an dem Panel rum. Will an der Stelle gerne meine Erfahrungen teilen.
                                  Ich bin zwar mit TASMOTA generell schon einige Jahre vertraut, bei dem PANEL hat mir aber sehr die Anleitung dieses Kollegen geholfen:

                                  https://haus-automatisierung.com/hardware/sonoff/2022/01/18/sonoff-nspanel-iobroker.html

                                  Zum Auslesen, Schalten und Widget setzen hat er bereits ein für meine Begriffe gutes Basisscript zur Verfügung gestellt, das man natürlich noch weiter anpassen muss je nachdem was man haben will. (wird im Video kurz erklärt, hilft vll. beim anfänglichen Verständnis).
                                  Ich habe das noch ein wenig für meine Bedürfnisse aufgebohrt, bspw. das die Main-Widgets (Switche) direkt auch einen ordentlichen Namen bekommen und nicht nur Index heißen.

                                  Zu meiner Frage an der Stelle:
                                  Hat jemand evtl. eine Möglichkeit gefunden bei den Multiswitches den Namen der einzelnen OUTLETS zu ändern?
                                  Es ist für mich wenig hilfreich und sinnig, dass ich dann zwar bis zu 4 Outlets habe - diese aber nicht umbenennen kann. habe schon einiges versucht, aber es ist mir leider noch nicht gelungen.
                                  Der Parameter "name" in der JSON bspw., egal an welcher position ändert stets nur den Namen des "Haupt"-Switches aber nicht der darunter liegenden Outlets.

                                  Hier sind verschiedene Parameter auch im Details aufgelistet und erklärt:

                                  https://blakadder.github.io/nspanel/

                                  Allerdings wird dort auch behauptet das man den Namen generell nicht ändern kann...was bei mir ja funktioniert.
                                  ich hab also noch Hoffnung.

                                  unten hier noch mein angepasstes Blockly Script.

                                  Grüße John


                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                  <variables>
                                  <variable id="[pN7+pI7mS^v48AI2C">temp</variable> <variable id="cgN3b1dG]l9vJae#x%.|">index</variable> <variable id="H0NS77?9z5:L[t(ay.@">ctype</variable>
                                  <variable id="/a:u~VISw+Afcj|JR|8O">type</variable>
                                  <variable id="vYE5j0|Ypb@Dn;AYwl.
                                  ">var_name</variable>
                                  <variable id="}1#OtR3yZ8ZdPNuPzT9">params</variable>
                                  <variable id="~[^+suo|DPeoXQ|a#U$O">mqttCmndId</variable>
                                  <variable id="aevDUp]R;DeT@4L/rdho">mqttLwtId</variable>
                                  <variable id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</variable>
                                  <variable id="ZpE5jt??D}:s}opX$elU">mqttResultId</variable>
                                  <variable id="tIM,K-nHxcf0DRJN(Y)C">resultObj</variable>
                                  <variable type="timeout" id="waitForBoot">waitForBoot</variable>
                                  </variables>
                                  <block type="procedures_defcustomnoreturn" id="tBm:we7xW3,X53RAG]ER" x="63" y="13">
                                  <mutation statements="false">
                                  <arg name="temp" varid="[pN
                                  7+pI7mS^v48AI2C"></arg> </mutation> <field name="NAME">setTemperature</field> <field name="SCRIPT">Y29uc3QgdGVtcE9iamVjdCA9IHsKICAgIHRlbXBlcmF0dXJlOiB0ZW1wCn07CmNvbnNvbGUubG9nKCdOU1BTZW5kOiAnICsgSlNPTi5zdHJpbmdpZnkodGVtcE9iamVjdCkpOwpzZXRTdGF0ZShtcXR0Q21uZElkLCBKU09OLnN0cmluZ2lmeSh0ZW1wT2JqZWN0KSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="QZ(E*R:#^tJDH@B?4EHF" x="63" y="38"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> </mutation> <field name="NAME">deleteWidget</field> <field name="SCRIPT">Y29uc3Qgd2lkZ2V0T2JqZWN0ID0gewogICAgaW5kZXg6IGluZGV4LAogICAgdHlwZTogJ2RlbGV0ZScKfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeSh3aWRnZXRPYmplY3QpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkod2lkZ2V0T2JqZWN0KSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="Z1gw8,0k6N~]9.0I{c!" x="63" y="63">
                                  <mutation statements="false">
                                  <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg>
                                  <arg name="ctype" varid="H0NS77?9z5:L[t(ay.@"></arg> <arg name="type" varid="/a:u~VISw+Afcj|JR|8O"></arg> <arg name="var_name" varid="vYE5j0|Ypb@Dn;AYwl.*"></arg> </mutation> <field name="NAME">createWidget</field> <field name="SCRIPT">Y29uc3Qgd2lkZ2V0T2JqZWN0ID0gewogICAgIkhNSV9yZXNvdXJjZXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAiaW5kZXgiOiBpbmRleCwKICAgICAgICAgICAgImN0eXBlIjogY3R5cGUsCiAgICAgICAgICAgICJpZCI6IGluZGV4LnRvU3RyaW5nKCksCiAgICAgICAgICAgICJ1aWlkIjogdHlwZQogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeSh3aWRnZXRPYmplY3QpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkod2lkZ2V0T2JqZWN0KSk7CgovL3NldCBuYW1lCmNvbnN0IHJlbGF0aW9uT2JqZWN0MiA9IHsKICAgICJyZWxhdGlvbiI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IGluZGV4LnRvU3RyaW5nKCksCiAgICAgICAgICAgICJuYW1lIjogdmFyX25hbWUsCiAgICAgICAgICAgICJvbmxpbmUiOiB0cnVlCiAgICAgICAgICAgIAogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdDIpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkocmVsYXRpb25PYmplY3QyKSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="JjKn(WNnRSx123AsRjB1" x="63" y="88"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> <arg name="params" varid="}1#OtR*3yZ8ZdPNuPzT9"></arg> </mutation> <field name="NAME">setWidgetParams</field> <field name="SCRIPT">Y29uc3QgcmVsYXRpb25PYmplY3QgPSB7CiAgICAicmVsYXRpb24iOiBbCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiBpbmRleC50b1N0cmluZygpLAogICAgICAgICAgICAib25saW5lIjogdHJ1ZSwKICAgICAgICAgICAgInBhcmFtcyI6IHBhcmFtcwogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdCkpOwpzZXRTdGF0ZShtcXR0Q21uZElkLCBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdCkpOwo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="^xL3c=7]_~zw,h7S7$0W" x="62" y="113"> <mutation statements="false"> <arg name="index" varid="cgN3b1dG]l9vJae#x%.|"></arg> <arg name="var_name" varid="vYE5j0|Ypb@Dn;AYwl.*"></arg> </mutation> <field name="NAME">setWidgetName</field> <field name="SCRIPT">Y29uc3QgcmVsYXRpb25PYmplY3QyID0gewogICAgInJlbGF0aW9uIjogWwogICAgICAgIHsKICAgICAgICAgICAgImlkIjogaW5kZXgsCiAgICAgICAgICAgICJuYW1lIjogdmFyX25hbWUsCiAgICAgICAgICAgICJvbmxpbmUiOiB0cnVlCiAgICAgICAgICAgIAogICAgICAgIH0KICAgIF0KfTsKY29uc29sZS5sb2coJ05TUFNlbmQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZWxhdGlvbk9iamVjdDIpKTsKc2V0U3RhdGUobXF0dENtbmRJZCwgSlNPTi5zdHJpbmdpZnkocmVsYXRpb25PYmplY3QyKSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defnoreturn" id="9zfL=sT{0k2)6;~l)o|}" x="62" y="162"> <field name="NAME">initWidgets</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="procedures_callcustomnoreturn" id="_Na?8dXXNdmc^z/;c}u^"> <mutation name="createWidget"> <arg name="index"></arg> <arg name="ctype"></arg> <arg name="type"></arg> <arg name="var_name"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="qhMlPMISbd_t30tPg)u">
                                  <field name="NUM">1</field>
                                  </block>
                                  </value>
                                  <value name="ARG1">
                                  <block type="text" id="fB@CZ9L7Tx)5Ae[S-/Kr">
                                  <field name="TEXT">group</field>
                                  </block>
                                  </value>
                                  <value name="ARG2">
                                  <block type="math_number" id="+]TF(%Eq^^u%CHD5z.{">
                                  <field name="NUM">1</field>
                                  </block>
                                  </value>
                                  <value name="ARG3">
                                  <block type="text" id="1kafWi;p!WwUnO..ME">
                                  <field name="TEXT">Couche</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="procedures_callcustomnoreturn" id="g#9!6tcf^x/rHwKM,;+H">
                                  <mutation name="createWidget">
                                  <arg name="index"></arg>
                                  <arg name="ctype"></arg>
                                  <arg name="type"></arg>
                                  <arg name="var_name"></arg>
                                  </mutation>
                                  <value name="ARG0">
                                  <block type="math_number" id="-t;%S;D7C(q;HRaU/,G?">
                                  <field name="NUM">2</field>
                                  </block>
                                  </value>
                                  <value name="ARG1">
                                  <block type="text" id="OFP_{UxCUjXj/nZAvr8z">
                                  <field name="TEXT">group</field>
                                  </block>
                                  </value>
                                  <value name="ARG2">
                                  <block type="math_number" id="XK$T@k8Br_M:``LnN7ge">
                                  <field name="NUM">4</field>
                                  </block>
                                  </value>
                                  <value name="ARG3">
                                  <block type="text" id="]pUdyT3TVb9y]J*P~Zc"> <field name="TEXT">Garten</field> </block> </value> <next> <block type="controls_for" id="Zj7J8U}-2jtZ_@X*S("> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> <value name="FROM"> <shadow type="math_number" id="*?tw.{_R[c0jlY6V[[%("> <field name="NUM">3</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="zy3_@3T]3S-l^%-,r%4n"> <field name="NUM">8</field> </shadow> </value> <value name="BY"> <shadow type="math_number" id=":KMFw#)jV[xkn6C%-7}~"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="procedures_callcustomnoreturn" id="EmNj8nlDc1$gu({hJA9,"> <mutation name="deleteWidget"> <arg name="index"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="t(|9o:Gv,o,[eX!/lkro"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="yJ9?Mh}-G^y1Lg}W!ror" x="63" y="638"> <field name="COMMENT">Full topic in Tasmota: SmartHome/%topic%/%prefix%/</field> <next> <block type="variables_set" id="!ZL27~%4XS^GIsp$,TjP"> <field name="VAR" id="~[^+suo|DPeoXQ|a#U$O">mqttCmndId</field> <value name="VALUE"> <block type="field_oid" id="RZOc)Pb(~=CW],;60V*M"> <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.cmnd.NSPSend</field> </block> </value> <next> <block type="variables_set" id="bun(psdk1Bh4bV(-d^Fw"> <field name="VAR" id="aevDUp]R;DeT@4L/rdho">mqttLwtId</field> <value name="VALUE"> <block type="field_oid" id="t)%4COMDb9PoSEOuE_c">
                                  <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.tele.LWT</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="variables_set" id="rITtEbJ
                                  XnsZ%(|)AxGY">
                                  <field name="VAR" id="ZpE5jt??D}:s}opX$elU">mqttResultId</field>
                                  <value name="VALUE">
                                  <block type="field_oid" id="8VYgu@Y0QKWL:0wP;^Iw">
                                  <field name="oid">mqtt.0.NSPANEL.tasmota_7DD4EC.tele.RESULT</field>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="procedures_callnoreturn" id="5B,M{6073Jx7.7S{}4]G">
                                  <mutation name="initWidgets"></mutation>
                                  <next>
                                  <block type="on_ext" id="IHkIGB_aJ=={[#xJH3Cl">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                  <field name="CONDITION">any</field>
                                  <field name="ACK_CONDITION">true</field>
                                  <value name="OID0">
                                  <shadow type="field_oid" id=":%Z+6DxleqY],NLY3Y">
                                  <field name="oid">default</field>
                                  </shadow>
                                  <block type="variables_get" id="7RP1(a[;d4fV2Du[vo+[">
                                  <field name="VAR" id="ZpE5jt??D}:s}opX$elU">mqttResultId</field>
                                  </block>
                                  </value>
                                  <statement name="STATEMENT">
                                  <block type="variables_set" id="GQp/+B[#cS7
                                  ;jJ)bKdg">
                                  <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                                  <value name="VALUE">
                                  <block type="convert_json2object" id="6OUSmanN;zWzb;C0f3m{">
                                  <value name="VALUE">
                                  <block type="on_source" id="h-A5c/u;9ucgT|K/ntg%">
                                  <field name="ATTR">state.val</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="controls_if" id="=1^,PC#~rRZtbF{VZjR">
                                  <value name="IF0">
                                  <block type="get_attr" id="K1s;#/e2g8YZT/Lu}c_?">
                                  <value name="PATH">
                                  <shadow type="text" id="Hkv+uAyP3^#W~h]99@t">
                                  <field name="TEXT">NSPanel</field>
                                  </shadow>
                                  </value>
                                  <value name="OBJECT">
                                  <block type="variables_get" id="K31i70L$$?X50OY?$nY{">
                                  <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO0">
                                  <block type="variables_set" id="64^z.-QNoJQ_+6LM5mU9">
                                  <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field>
                                  <value name="VALUE">
                                  <block type="get_attr" id="BHJGBbK,iqHZO^-F@k-q">
                                  <value name="PATH">
                                  <shadow type="text" id="U$LR3~OE
                                  i9S]:NRb.pY">
                                  <field name="TEXT">NSPanel.id</field>
                                  </shadow>
                                  </value>
                                  <value name="OBJECT">
                                  <block type="variables_get" id="r^]pHhk+Xo5t1AKb-O,j">
                                  <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <next>
                                  <block type="comment" id="BWRRa8Il{h-N;zD@jUf=">
                                  <field name="COMMENT">Für welches Widget ist der Befehl?</field>
                                  <next>
                                  <block type="controls_if" id="X}Xt@.~;{y]=C/(R@vo,">
                                  <mutation elseif="1"></mutation>
                                  <value name="IF0">
                                  <block type="logic_compare" id="PzVs
                                  ;ol!KBLj^t)q|">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                  <block type="variables_get" id="n~Bg9~[gqs[,X-E8M}o"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> <value name="B"> <block type="math_number" id="Oy8gy}|^Q+y-Tg+a.3cx"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Awlzupeq7qdMK5AGOi]$"> <field name="COMMENT">Ist es ein Switch-Befehl?</field> <next> <block type="controls_if" id="y=G2tAb|R1EZP-vzy0|%"> <value name="IF0"> <block type="get_attr" id="TTx_Jvq)XqxKQ/xbl1Ub"> <value name="PATH"> <shadow type="text" id="Szg@1uiFGYgs*N3_Q!2k"> <field name="TEXT">NSPanel.params.switch</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="jy4?,JKnm#6S.:3iI[S5"> <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="EeIf8hXqw_zP/[c3iWh~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Hilfsobjekte.dump3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="|8Bl3@O7mOZ%*g*n1QYT"> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="X{!@:/Ael+hT^7v10DWK"> <value name="PATH"> <shadow type="text" id="K-MPcd~az/E.B1,4hG3u"> <field name="TEXT">NSPanel.params.switch</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="r[3fNz]UId/UyCmdav6]"> <field name="VAR" id="tIM,K-nHxcf0DRJN(Y)C">resultObj</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="2IHj$68WOMw=Ts}c+r0H"> <field name="TEXT">on</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Cg6gGRghF.uMe,Bz0(lH"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="O3ish0VOZxQxQ{$n..8H"> <field name="VAR" id="Hgc9h6j{(_HrOD+W-rN2">widgetIndex</field> </block> </value> <value name="B"> <block type="math_number" id="eRbWjErChVYi8A_$)ATO"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="comment" id="LG9pn}J^;=p3%/.[/ZQH"> <field name="COMMENT">LWT überwachen, wenn Gerät wieder online</field> <next> <block type="on_ext" id="7hBsLcs|]|+gKB9{k:
                                  ">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                  <field name="CONDITION">ne</field>
                                  <field name="ACK_CONDITION">true</field>
                                  <value name="OID0">
                                  <shadow type="field_oid" id="OS$aDgD5RMCV0Dw:dOB">
                                  <field name="oid">default</field>
                                  </shadow>
                                  <block type="variables_get" id="S1onAM.%F86D0Y0T:/n,">
                                  <field name="VAR" id="aevDUp]R;DeT@4L/rdho">mqttLwtId</field>
                                  </block>
                                  </value>
                                  <statement name="STATEMENT">
                                  <block type="controls_if" id="1Zl(bF]sLz$:B:(g2Wvy">
                                  <value name="IF0">
                                  <block type="logic_compare" id="wOI#M-K)ebeVKAPQJDs"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="09hBZ8={I/z11+RQ0[k)"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="2;SK_QQLlb0L!915(
                                  ^">
                                  <field name="TEXT">Online</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <statement name="DO0">
                                  <block type="debug" id="cbdJqZauF,H18x{(8Lt8">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                  <shadow type="text" id="as^JY._XYLiLpq_J[Y|M">
                                  <field name="TEXT">Gerät wieder online - übertrage Widgets in 5 Sekunden</field>
                                  </shadow>
                                  </value>
                                  <next>
                                  <block type="timeouts_settimeout" id="U4S^h#fW?VrNElhm!/9R">
                                  <field name="NAME">waitForBoot</field>
                                  <field name="DELAY">5</field>
                                  <field name="UNIT">sec</field>
                                  <statement name="STATEMENT">
                                  <block type="procedures_callnoreturn" id="#~G1[gfyht#w+ybY9hMt">
                                  <mutation name="initWidgets"></mutation>
                                  </block>
                                  </statement>
                                  </block>
                                  </next>
                                  </block>
                                  </statement>
                                  </block>
                                  </statement>
                                  <next>
                                  <block type="comment" id=")-n:BsiU4!-O$,NIY#M=">
                                  <field name="COMMENT">Wenn Änderung bestätigt: Feedback an Widget 1</field>
                                  <next>
                                  <block type="on_ext" id="gi)(I1mFU6#J#Q7EDD$"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="dVKBso]cCaN;9Na@3Efh"> <field name="oid">javascript.0.Hilfsobjekte.dump3</field> </shadow> </value> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="GK@I-l{LOT1f3#6Z1tLr"> <mutation name="setWidgetParams"> <arg name="index"></arg> <arg name="params"></arg> </mutation> <value name="ARG0"> <block type="math_number" id="ql^P-/mY]ALrMTB,]oth"> <field name="NUM">1</field> </block> </value> <value name="ARG1"> <block type="convert_json2object" id="CaBI06^Vk={UOVWiy]Dh"> <value name="VALUE"> <block type="text_join" id="/gQwArXf4nPPNqJG{fDe"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="hB*x2{kHp8p(w9Da8dP0"> <field name="TEXT">{"switch":"</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="^:%04E8=-(Qtga4+wnY."> <value name="IF"> <block type="on_source" id="Waa2QArV=XkB~r:BK2t">
                                  <field name="ATTR">state.val</field>
                                  </block>
                                  </value>
                                  <value name="THEN">
                                  <block type="text" id="{C0x/oMSSFhsp2gl]9qt">
                                  <field name="TEXT">on</field>
                                  </block>
                                  </value>
                                  <value name="ELSE">
                                  <block type="text" id="ZgwcG{)XCUZBoGo`xN39">
                                  <field name="TEXT">off</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  <value name="ADD2">
                                  <block type="text" id="(/k^gB{DV7E{Fq)Uedr8">
                                  <field name="TEXT">"}</field>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  </block>
                                  </value>
                                  </block>
                                  </statement>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </next>
                                  </block>
                                  </xml>

                                  haus-automatisierungH Offline
                                  haus-automatisierungH Offline
                                  haus-automatisierung
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #33

                                  @leone-mortuo sagte in Sonoff NSPanel:

                                  Hat jemand evtl. eine Möglichkeit gefunden bei den Multiswitches den Namen der einzelnen OUTLETS zu ändern?

                                  Nach Doku geht das mit den relations. Dort kann ein Name übergeben werden. Habe ich aber im Detail nicht weiter getestet. Das Video war so schon lang genug 😄

                                  {"relation":[{"ctype":"device","id":"1001383218","name":"NSPane..","online":true,"params":{"switches":[{"switch":"off","outlet":0},{"switch":"off","outlet":1}]}}]}
                                  

                                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                  📚 Meine inoffizielle ioBroker Dokumentation

                                  _JOHN__ 2 Antworten Letzte Antwort
                                  0
                                  • haus-automatisierungH haus-automatisierung

                                    @leone-mortuo sagte in Sonoff NSPanel:

                                    Hat jemand evtl. eine Möglichkeit gefunden bei den Multiswitches den Namen der einzelnen OUTLETS zu ändern?

                                    Nach Doku geht das mit den relations. Dort kann ein Name übergeben werden. Habe ich aber im Detail nicht weiter getestet. Das Video war so schon lang genug 😄

                                    {"relation":[{"ctype":"device","id":"1001383218","name":"NSPane..","online":true,"params":{"switches":[{"switch":"off","outlet":0},{"switch":"off","outlet":1}]}}]}
                                    
                                    _JOHN__ Offline
                                    _JOHN__ Offline
                                    _JOHN_
                                    schrieb am zuletzt editiert von _JOHN_
                                    #34

                                    @haus-automatisierung

                                    das ist richtig 🙂
                                    Allerdings wird dabei immer nur das, ich nenn das mal Hauptwidget umbenannt. Also von Index1 nach XYZ z.b.

                                    0825bade-b2b1-4892-89d6-57c6bec5f652-image.png

                                    Die Bezeichnung OUTLET der "darunter" liegenden Switches bleibt davon aber (leider) immer unberührt.

                                    Ich habe auch schon mit den unterschiedlichsten Kombinationen experimentiert.
                                    Bspw. die definition "name" innerhalb der Parameter anzugeben, für das jeweilige Outlet. auch dann wird aber das Hauptwidget umbenannt.

                                    also das geht z.B. nicht:

                                    params":{"switches":[{"name":"test","outlet":0},{"switch":"off","outlet":1}]}}]}
                                    

                                    @Maik-0
                                    du hast recht, das Script ist aber auch darauf ausgelegt bei einem Neustart die Konfig nochmal neu zu pushen. das würde sich also nix nehmen... am Ende is es wohl Geschmackssache 😄 - ich weiß noch ned was mir mehr nützt. wie ich das in der nspanel.be genau mache müsste ich mir aber jetzt auch erst wieder genauer ansehen 🤓

                                    M 1 Antwort Letzte Antwort
                                    0
                                    • _JOHN__ _JOHN_

                                      @haus-automatisierung

                                      das ist richtig 🙂
                                      Allerdings wird dabei immer nur das, ich nenn das mal Hauptwidget umbenannt. Also von Index1 nach XYZ z.b.

                                      0825bade-b2b1-4892-89d6-57c6bec5f652-image.png

                                      Die Bezeichnung OUTLET der "darunter" liegenden Switches bleibt davon aber (leider) immer unberührt.

                                      Ich habe auch schon mit den unterschiedlichsten Kombinationen experimentiert.
                                      Bspw. die definition "name" innerhalb der Parameter anzugeben, für das jeweilige Outlet. auch dann wird aber das Hauptwidget umbenannt.

                                      also das geht z.B. nicht:

                                      params":{"switches":[{"name":"test","outlet":0},{"switch":"off","outlet":1}]}}]}
                                      

                                      @Maik-0
                                      du hast recht, das Script ist aber auch darauf ausgelegt bei einem Neustart die Konfig nochmal neu zu pushen. das würde sich also nix nehmen... am Ende is es wohl Geschmackssache 😄 - ich weiß noch ned was mir mehr nützt. wie ich das in der nspanel.be genau mache müsste ich mir aber jetzt auch erst wieder genauer ansehen 🤓

                                      M Online
                                      M Online
                                      mrjeschke
                                      schrieb am zuletzt editiert von
                                      #35

                                      @leone-mortuo
                                      Das in die nspanel.de einzubauen ist relativ simpel.
                                      Steht dort auch beschrieben.
                                      Bei meinem Test sieht das z.B. so aus.

                                      
                                        var widget = {
                                        1: ["Wohnen", "group", 1],
                                        2: ["Küche", "group", 1],
                                        3: ["Flur", "group", 1],
                                        4: ["Licht", "group", 4],
                                        5: [],
                                        6: [],
                                        7: [],
                                        8: [],
                                      }
                                      

                                      Mir ist das mit dem Blockly etwas zu umständlich, aber jeder wie er mag.

                                      M _JOHN__ 2 Antworten Letzte Antwort
                                      0
                                      • M mrjeschke

                                        @leone-mortuo
                                        Das in die nspanel.de einzubauen ist relativ simpel.
                                        Steht dort auch beschrieben.
                                        Bei meinem Test sieht das z.B. so aus.

                                        
                                          var widget = {
                                          1: ["Wohnen", "group", 1],
                                          2: ["Küche", "group", 1],
                                          3: ["Flur", "group", 1],
                                          4: ["Licht", "group", 4],
                                          5: [],
                                          6: [],
                                          7: [],
                                          8: [],
                                        }
                                        

                                        Mir ist das mit dem Blockly etwas zu umständlich, aber jeder wie er mag.

                                        M Offline
                                        M Offline
                                        mameier1234
                                        schrieb am zuletzt editiert von mameier1234
                                        #36

                                        Ich experimentiere seit gestern auch mit der Anleitung von Hausautomisierung.com ... Wirklich gut erklärt.

                                        Die Möglichkeit mit den Namen der Widgets habe ich auch hinbekommen.. alles über das Blockly .

                                        Mein Problem ist jetzt aktuell, dass der Status eines geschalteten Widgets nicht bleibt..

                                        Wenn ich den Widgettype 1 verwende (switch horizintal) , dann bleibt dieser stabil an oder aus...

                                        Der Type 6 (vertikal) spring aber immer wieder automatisch auf aus...

                                        Auch LightBulb (52) schaltet einwandfrei , springt aber wieder auf aus... d.H, wenn ich die Lampe ausschalten will, muss ich schnell sein.. .an, und gleich wieder aus, bevor es von alleine auf Aus zurückspringt..

                                        Hat das noch jemand, und eine Idee ??

                                        Edit.. .Gefunden 🙂 Ich hatte das Feedback nicht angepasst.. nur wie im Beispiel für das erste Widget...

                                        Grüße,

                                        Martin

                                        1 Antwort Letzte Antwort
                                        1
                                        • M mrjeschke

                                          @leone-mortuo
                                          Das in die nspanel.de einzubauen ist relativ simpel.
                                          Steht dort auch beschrieben.
                                          Bei meinem Test sieht das z.B. so aus.

                                          
                                            var widget = {
                                            1: ["Wohnen", "group", 1],
                                            2: ["Küche", "group", 1],
                                            3: ["Flur", "group", 1],
                                            4: ["Licht", "group", 4],
                                            5: [],
                                            6: [],
                                            7: [],
                                            8: [],
                                          }
                                          

                                          Mir ist das mit dem Blockly etwas zu umständlich, aber jeder wie er mag.

                                          _JOHN__ Offline
                                          _JOHN__ Offline
                                          _JOHN_
                                          schrieb am zuletzt editiert von
                                          #37

                                          @maik-0

                                          danke für das Beispiel - das is echt simple oO.
                                          ich werd meine Lösung, wenigstens für die Erstellung vielleicht nochmal überdenken.

                                          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

                                          444

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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