Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Sonoff NSPanel

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    200

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

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

Sonoff NSPanel

Sonoff NSPanel

Scheduled Pinned Locked Moved Hardware
1.5k Posts 78 Posters 636.1k Views 80 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N niiccooo1

    @kuckuckmann
    Du beschreibst das Feedback wenn die PIN falsch eingegeben wird, was auch sinnvoll ist.

    Mir geht es darum, ein Feedback zu bekommen wo zwar die PIN korrekt eingeben wurde, jedoch die Alarmanalge nicht aktiviert werden kann weil z. B. noch ein Fenster auf ist.

    Aktuell gebe ich den Status "armed" erst weiter wenn die Alaramanalge keinen Fehler aus gibt, ansonsten gebe ich "disarmed" zurück.

    Für den Benutzer sieht es so aus als ob er die PIN falsch eingeben hat.

    ArmilarA Offline
    ArmilarA Offline
    Armilar
    Most Active Forum Testing
    wrote on last edited by Armilar
    #1267

    @niiccooo1 sagte in Sonoff NSPanel:

    @kuckuckmann
    Du beschreibst das Feedback wenn die PIN falsch eingegeben wird, was auch sinnvoll ist.

    Mir geht es darum, ein Feedback zu bekommen wo zwar die PIN korrekt eingeben wurde, jedoch die Alarmanalge nicht aktiviert werden kann weil z. B. noch ein Fenster auf ist.

    Aktuell gebe ich den Status "armed" erst weiter wenn die Alaramanalge keinen Fehler aus gibt, ansonsten gebe ich "disarmed" zurück.

    Für den Benutzer sieht es so aus als ob er die PIN falsch eingeben hat.

    Kannst das popUp ebenfalls verwenden um anzeigen, welche Fenster offen sind.
    Habe noch ein paar Änderungen gemacht. Fehler gefunden und teste noch etwas das Skript in Verbindung mit mehreren Panels.

    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
    https://github.com/joBr99/nspanel-lovelace-ui/wiki

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    N 1 Reply Last reply
    0
    • ArmilarA Armilar

      @niiccooo1 sagte in Sonoff NSPanel:

      @kuckuckmann
      Du beschreibst das Feedback wenn die PIN falsch eingegeben wird, was auch sinnvoll ist.

      Mir geht es darum, ein Feedback zu bekommen wo zwar die PIN korrekt eingeben wurde, jedoch die Alarmanalge nicht aktiviert werden kann weil z. B. noch ein Fenster auf ist.

      Aktuell gebe ich den Status "armed" erst weiter wenn die Alaramanalge keinen Fehler aus gibt, ansonsten gebe ich "disarmed" zurück.

      Für den Benutzer sieht es so aus als ob er die PIN falsch eingeben hat.

      Kannst das popUp ebenfalls verwenden um anzeigen, welche Fenster offen sind.
      Habe noch ein paar Änderungen gemacht. Fehler gefunden und teste noch etwas das Skript in Verbindung mit mehreren Panels.

      N Offline
      N Offline
      niiccooo1
      wrote on last edited by
      #1268

      @armilar @Kuckuckmann

      Ich habe eure Vorschläge soweit umgesetzt und es scheint so zu funktionieren wie es soll.

      Vielen Dank erstmal!

      Falls mir zu AlarmCard noch was auffällt teile ich es euch gerne mit.

      ArmilarA 1 Reply Last reply
      0
      • N niiccooo1

        @armilar @Kuckuckmann

        Ich habe eure Vorschläge soweit umgesetzt und es scheint so zu funktionieren wie es soll.

        Vielen Dank erstmal!

        Falls mir zu AlarmCard noch was auffällt teile ich es euch gerne mit.

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        wrote on last edited by
        #1269

        @niiccooo1 sagte in Sonoff NSPanel:

        @armilar @Kuckuckmann

        Ich habe eure Vorschläge soweit umgesetzt und es scheint so zu funktionieren wie es soll.

        Vielen Dank erstmal!

        Falls mir zu AlarmCard noch was auffällt teile ich es euch gerne mit.

        Kommt heute noch ein Update.

        Ich mach noch ein paar Screenshots und Anleitung zu den Änderungen.

        • Insbesondere zum neuen Status triggered (Alarm wurde ausgelöst/PIN falsch)
        • zum Alias Feueralarm (etwas Buggy unter Geräte-Manager - auch Ursache für Fehlermeldungen)
        • Neuer Datenpunkt "PIN_Failed"
        • Gemeinsamer Pfad für mehrere Panels
        • usw.

        Gebt mir noch etwas Zeit zum testen

        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        ArmilarA 1 Reply Last reply
        1
        • N Offline
          N Offline
          niiccooo1
          wrote on last edited by
          #1270

          Mal eine andere Sache:

          Ich habe die Alexa Card soweit konfiguriert und sie funktioniert auch soweit.
          Lasse ich mir die Card nun anzeigen, verschwinden meine Navigationsbutton oben links und rechts.

          Ich habe die Konfiguration von diesen Post angewendet.

          ArmilarA 1 Reply Last reply
          0
          • ArmilarA Armilar

            @niiccooo1 sagte in Sonoff NSPanel:

            @armilar @Kuckuckmann

            Ich habe eure Vorschläge soweit umgesetzt und es scheint so zu funktionieren wie es soll.

            Vielen Dank erstmal!

            Falls mir zu AlarmCard noch was auffällt teile ich es euch gerne mit.

            Kommt heute noch ein Update.

            Ich mach noch ein paar Screenshots und Anleitung zu den Änderungen.

            • Insbesondere zum neuen Status triggered (Alarm wurde ausgelöst/PIN falsch)
            • zum Alias Feueralarm (etwas Buggy unter Geräte-Manager - auch Ursache für Fehlermeldungen)
            • Neuer Datenpunkt "PIN_Failed"
            • Gemeinsamer Pfad für mehrere Panels
            • usw.

            Gebt mir noch etwas Zeit zum testen

            ArmilarA Offline
            ArmilarA Offline
            Armilar
            Most Active Forum Testing
            wrote on last edited by Armilar
            #1271

            So und jetzt die Anleitung zur cardAlarm:

            Update unter: https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs.ts

            e39a4f08-d194-4586-badd-673f79e27e37-image.png

            1) Zusätzlicher Pfad für Alarm-Datenpunkte
            Im oberen Teil habe ich eine neue Konstante eingeführt

            const NSPanel_Alarm_Path = '0_userdata.0.NSPanel.'; 
            //Neuer Pfad für gemeinsame Nutzung durch mehrere Panels
            

            Ansonsten würde jedes Panel auf seine eigenen Alarm-Daten zugreifen. Macht ja in einem Haus eigentlich wenig Sinn 😉 . Daher global für alle Panels.

            2) Zusätzliche Datenpunkte
            Ich habe zwei neue Datenpunkte (PANEL und PIN_Failed) hinzugefügt. Diese werden gemeinsam mit den vorherigen Datenpunkten im definierten Alarm_Pfad (genauso wie zuvor unter 0_userdata.0.) angelegt, wenn man erstmals die cardAlarm aufruft.
            Da dieser Pfad wahrscheinlich von der dem "bereits vorhandenen" Pfad abweicht. Sollte der Alias entsprechend auf die neuen Datenpunkte im neuen Pfad zeigen. Die alten Verzeichnisse "Alarm" unter den einzelnen NSPAnels können danach gelöscht werden.

            228a851c-9cd0-41d5-b51e-bf11ad1caa9e-image.png

            3) ALIAS Feueralarm (Einen ALIAS Alarmanlage gibt es nicht)
            Ich habe für die Tests (auch bedingt durch die gemeldeten Fehlermeldungen) meinen Alias gelöscht und im Geräte-Manager neu angelegt. Es gab die gleichen Fehlermeldungen.
            Dann habe ich den Alias im Alias-Manager angelegt und alles funktionierte ohne Fehlermeldungen.

            Neu ist in diesem Zusammenhang der Alias "PIN_Failed" (state/number)
            Das TS-Skript zählt die missglückten Anmeldeversuche und trägt sie hier ein. Könnte man also auch für einen Trigger mit Meldung an Telegram nutzen. Außerdem wird bei Fehlerhaften PIN-Eingaben der Datenpunkt AlarmState auf "triggered" gesetzt. Im Panel sieht das dann so aus (das Icon blinkt):
            21659741-2b34-48ff-a0bc-7e8c906d9902-image.png

            Betrifft auch den nächsten Punkt 4)
            Des Weiteren gibt es nun einen Datenpunkt "PANEL". Hier wird der Wert 0_userdata.0.NSPanel.X. reingeschrieben. Das hat erstens den Vorteil, dass nur das Panel an dem die Aktivierung/Deaktivierung stattfindet, aktualisiert werden muss und zweitens, dass nur an das Panel, an dem die Pin-Eingaben stattfinden auch popupNotify-Meldungen gesendet werden können. Warum sollte z.B. in der Küche ein popUp aufgehen, wenn ich doch den falsche PIN im Flur eingegeben habe 😉 ?

            4) Status "triggered"
            Durch das externe Skript (alternativ der Alarm-Emulator) kann ein Status "triggered" gesetzt werden.
            Zum Beispiel wenn der Alarm ausgelöst wurde, Die Deaktivierung der cardAlarm funktioniert somit auch bei dem Status "triggered".

            5) Externes Alarm-Skript/Emulator:
            Für den Emulator oder das externe Alarm-Skript sollten die Datenpunkte ebenfalls aktualisiert werden:
            eab23295-7095-42a7-9764-2593ea5318d8-image.png


            <xml xmlns="https://developers.google.com/blockly/xml">
            <variables>
            <variable id="LwJJoNeQC4K?A;BW5:o">nspanelAlarmPath</variable>
            <variable id=".d{cc!R.4y2U9N+gLY1K">dpAlarmState</variable>
            </variables>
            <block type="comment" id="I^BpP.H=p^7Vj|-sy!%" x="-937" y="-162"> <field name="COMMENT">Bitte nspanelAlarmPath anpassen</field> <next> <block type="comment" id="JL[C{;Q}PF[TQ_BfpN$c"> <field name="COMMENT">Der Rest wird dynamisch für das jeweilige Panel ermittelt</field> <next> <block type="variables_set" id="2}X9[s}b1IDUV{6QPzh?"> <field name="VAR" id="LwJJoNeQC4K?A;BW5:_o">nspanelAlarmPath</field> <value name="VALUE"> <block type="text" id="in2z;TR0jhq1QI85qO8">
            <field name="TEXT">0_userdata.0.NSPanel.Alarm.</field>
            </block>
            </value>
            <next>
            <block type="variables_set" id="+tlGEcYI17~KL5S
            %%1O">
            <field name="VAR" id=".d{cc!R.4y2U9N+gLY1K">dpAlarmState</field>
            <value name="VALUE">
            <block type="text_join" id="PWihVQn3v+ef7aPA%zyx">
            <mutation items="2"></mutation>
            <value name="ADD0">
            <block type="variables_get" id="v2AT~!{!0Qc0BI2!SgN"> <field name="VAR" id="LwJJoNeQC4K?A;BW5:_o">nspanelAlarmPath</field> </block> </value> <value name="ADD1"> <block type="text" id="78{g[~wI2yQXnYZvL4}t"> <field name="TEXT">AlarmState</field> </block> </value> </block> </value> <next> <block type="on_ext" id="q!?(x}z/f~TClQnNmbyU"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="]~f@4kO$zmxdg=}/810C"> <field name="oid">0_userdata.0.NSPanel.Alarm.AlarmState</field> </shadow> <block type="variables_get" id="vCPAx:V[ZG~6IkkFu/r">
            <field name="VAR" id=".d{cc!R.4y2U9N+gLY1K">dpAlarmState</field>
            </block>
            </value>
            <statement name="STATEMENT">
            <block type="controls_if" id="=e7bf!Q]$tg*0U1_2F"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="0_9gv(MmSSJ{2a$j{}(P"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="H$WWrxxX|NaWkT%W]g!Z"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="_TnyjJ5x!)JY~rQ:Opj)"> <field name="TEXT">arming</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="=w_/N]5Tu)B)NwyTbxSp"> <field name="COMMENT">weitere ioBroker-Überprüfung - z.B. Fenster offen</field> <next> <block type="control_ex" id="FGZ}]#=@X?IJ3ddc[9rP" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="OID"> <shadow type="field_oid" id="=EKIKVg=5v+fyd:5J3]B"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="Y,]v4(aeLZ~(@alJ-8;D"> <field name="VAR" id=".d{cc!R.4y2U9N+gLY1K">dpAlarmState</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="2A;g]]ox]cFCoGeBOge">
            <field name="BOOL">TRUE</field>
            </shadow>
            <block type="text" id="WOt(NkkB-R9/-Xho,6}-">
            <field name="TEXT">armed</field>
            </block>
            </value>
            <value name="DELAY_MS">
            <shadow type="math_number" id="M@|2SGg8%@2nZdqU51f
            ">
            <field name="NUM">0</field>
            </shadow>
            <block type="math_number" id=".e9qh.?F@m)/t(HM7|M"> <field name="NUM">1000</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="]p3s+ouB~BJkfd:e)G:("> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=":n]Z,t6+q#-l_hP+MEI@"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="([Ep{MPBu5s.C-lOdHgr"> <field name="TEXT">pending</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control_ex" id="FI3q9?nQ|FDT]dY;djZz" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="OID"> <shadow type="field_oid"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id=":8ls:Akgxi%bWPgrIJT}"> <field name="VAR" id=".d{cc!R.4y2U9N+gLY1K">dpAlarmState</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean"> <field name="BOOL">TRUE</field> </shadow> <block type="text" id="MH!9j:G.S:mOaq31i!aM"> <field name="TEXT">disarmed</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number"> <field name="NUM">0</field> </shadow> <block type="math_number" id="zO=:KFH/FH-zc4ob5b7^"> <field name="NUM">1000</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="pHUmm^o8GqFji*VULm*Z"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="ques8D:5Hge-)^s,XBR!"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="3Hd)Fn4g#;XPXSWwe-$">
            <field name="TEXT">triggered</field>
            </block>
            </value>
            </block>
            </value>
            <statement name="DO2">
            <block type="comment" id="c%VR#jE+K$AoZ2m%HuY_">
            <field name="COMMENT">Wenn der PIN bei der Deaktivierung falsch war</field>
            <next>
            <block type="comment" id="I-Iasuh.K$wmTE`(e!;K">
            <field name="COMMENT">Zum Beispiel MEldung an Telegram oder popupNotify </field>
            <next>
            <block type="comment" id="j_U/cfS;e3c]-j}Bie,7">
            <field name="COMMENT">an Panel senden</field>
            </block>
            </next>
            </block>
            </next>
            </block>
            </statement>
            </block>
            </statement>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </next>
            </block>
            </xml>

            6) Ablauf Alarm Aktivierung
            PIN eingeben und dann Alarm-Modus (Vollschutz, Zuhause, Nacht oder Besuch) auswählen. Im Datenpunkt AlarmType wird das als A1, A2, A3 oder A4 interpretiert und kann extern weiterverarbeitet werden.
            8dd2cb6f-c62b-4ea2-be60-cc6ce32e3056-image.png
            Das Panel wechselt in den Status (AlarmState) "arming" (Icon = gelbes blinkendes Schild/Keine Tastatur)
            7046c132-9a58-4a6f-a106-66fd016f6469-image.png
            Wenn durch das externe Skript (oder Emulator) der Status "armed" in den Datenpunkt AlarmState eingetragen wird (vorausgesetzt das externe Skript findet z.B, keine offenen Fenster) wird das Icon rot:
            2bfb731a-5c1d-4aca-9730-71944cef22e1-image.png
            Der AlarmType ist jetzt D1, die Tastatur ist wieder eingeblendet und die card Alarm bereit für die Deaktivierung.

            7) Ablauf Alarm Deaktivierung
            PIN-Eingabe zur Deaktivierung und Bestätigung durch den Button "Deaktivieren".
            3a51f6f5-70f9-4a1b-9162-26a816ed2c05-image.png
            Das Panel vergleicht jetzt den Aktivierungs-PIN mit dem Deaktivierungs-PIN. Stimmen die PIN's überein, dann wird der AlarmState auf "pending" gesetzt.
            bc3bcd03-1831-406c-b839-402b458e655a-image.png
            Das externe Alarm-Skript macht seine restlichen Aufgaben und setzt dann den Status auf "disarmed"
            5ee72b44-4588-4c0a-b514-a9335e9e9035-image.png
            Sollte der Pin nicht übereinstimmen, so setzt das Panel den AlarmState "triggered" (Icon blinkt)
            f2d8cc5c-c817-42fa-8d81-80e850266556-image.png

            8 ) Screenshots vom Alias im Alias-Manager
            ac4378dc-f2e1-4cbb-95ff-0f375f584e08-image.png

            8d3592e0-0d11-4527-8807-309f3afb4efc-image.png

            78d60959-25b8-4743-b074-ab21b11f132f-image.png
            8de12b74-fc28-4e14-89ac-3f98a852c8d7-image.png
            41eb46ac-4033-4c9a-9b68-6e1c71761e65-image.png

            24baec0a-ac25-48ce-aa06-98e866250eb8-image.png

            9) pageItem
            Wie bereits erwähnt, habe ich den Alias neu erstellt. Dieses mal auch hier global für alle Panels!

            var Seite_Alarm: PageAlarm = 
            {
                "type": "cardAlarm",
                "heading": "Alarm",
                "useColor": true,
                "subPage": false,
                "parent": undefined,
                "items": [<PageItem>{ id: "alias.0.Alarm" }]
            };
            

            So erstmal fertig ;-). Bei Fragen einfach fragen!

            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            1 Reply Last reply
            0
            • N niiccooo1

              Mal eine andere Sache:

              Ich habe die Alexa Card soweit konfiguriert und sie funktioniert auch soweit.
              Lasse ich mir die Card nun anzeigen, verschwinden meine Navigationsbutton oben links und rechts.

              Ich habe die Konfiguration von diesen Post angewendet.

              ArmilarA Offline
              ArmilarA Offline
              Armilar
              Most Active Forum Testing
              wrote on last edited by Armilar
              #1272

              @niiccooo1 sagte in Sonoff NSPanel:

              Mal eine andere Sache:

              Ich habe die Alexa Card soweit konfiguriert und sie funktioniert auch soweit.
              Lasse ich mir die Card nun anzeigen, verschwinden meine Navigationsbutton oben links und rechts.

              Ich habe die Konfiguration von diesen Post angewendet.

              Das ist uralter Code - Die Navigation hat sich seitdem mächtig verändert - wundert mich nicht
              Das ist aber auch alle im neuen Code mit korrekter Menüstruktur enthalten. Wenn es im aktuellen github-Skript nicht funktioniert, dann liegt es in der Regel am ALIAS

              Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              1 Reply Last reply
              1
              • N Offline
                N Offline
                niiccooo1
                wrote on last edited by
                #1273

                @armilar
                Stimmt. Es lag am Alias. Der Alias-Manager hat zwar den Player selbst angelegt, jedoch musste ich manuell alle Bezeichnungen ändern.

                Durch stöbern im Forum habe ich den Ansatz mit spotify-premium gefunden.
                Da ich einen Android TV mit Spotify Connect habe, würde ich gerne versuchen den spotify Adapter einzubinden.

                Aktuell scheitere ich noch an der speaker-auswahl Funktion. Ich weiß im Spotify Adapter lässt sich über "spotify-premium.0.devices.deviceList" das abzuspielende Gerät auswählen.

                Wie sähe die Funktion dann um zwischen den Geräten zu wechseln?

                ArmilarA 1 Reply Last reply
                0
                • N niiccooo1

                  @armilar
                  Stimmt. Es lag am Alias. Der Alias-Manager hat zwar den Player selbst angelegt, jedoch musste ich manuell alle Bezeichnungen ändern.

                  Durch stöbern im Forum habe ich den Ansatz mit spotify-premium gefunden.
                  Da ich einen Android TV mit Spotify Connect habe, würde ich gerne versuchen den spotify Adapter einzubinden.

                  Aktuell scheitere ich noch an der speaker-auswahl Funktion. Ich weiß im Spotify Adapter lässt sich über "spotify-premium.0.devices.deviceList" das abzuspielende Gerät auswählen.

                  Wie sähe die Funktion dann um zwischen den Geräten zu wechseln?

                  ArmilarA Offline
                  ArmilarA Offline
                  Armilar
                  Most Active Forum Testing
                  wrote on last edited by Armilar
                  #1274

                  @niiccooo1 sagte in Sonoff NSPanel:

                  @armilar
                  Stimmt. Es lag am Alias. Der Alias-Manager hat zwar den Player selbst angelegt, jedoch musste ich manuell alle Bezeichnungen ändern.

                  Durch stöbern im Forum habe ich den Ansatz mit spotify-premium gefunden.
                  Da ich einen Android TV mit Spotify Connect habe, würde ich gerne versuchen den spotify Adapter einzubinden.

                  Aktuell scheitere ich noch an der speaker-auswahl Funktion. Ich weiß im Spotify Adapter lässt sich über "spotify-premium.0.devices.deviceList" das abzuspielende Gerät auswählen.

                  Wie sähe die Funktion dann um zwischen den Geräten zu wechseln?

                  Aktuell keine Ahnung wie die Funktion dann aussehen würde.

                  Durch die Speaker-Auswahl im Panel wird folgender Zeile gesendet. Darin steht die Aktion "speaker-sel" und das Gewählte Gerät (in diesem Fall "Echo Spot Buero")
                  30585b21-09d5-441a-afb7-3bbb40fd2e73-image.png

                  speaker-sel ruft diesen Fall im TS-Skript auf
                  192d7210-933e-47fa-8490-2044e3ca6a3b-image.png

                  Im Prinzip wird hier aktuell ein Command an Alexa gesendet "Schiebe meine Musik auf Echo Spot Buero". Funktioniert für Echo-Devices und Playlists. Der Befehl funktioniert zumindest "nicht" mit FireTV-Sticks (nur mit Echo's)

                  im case 'speaker-sel' müsste deine Spotify-Logik implementiert werden.

                  Da ich nicht weiß, zwischen welchen Geräten du wann, was und wohin umschalten willst (teile mal alle Gedanken und Überlegungen sehr detailliert mit), kann ich auch nicht mehr dazu sagen. Mit anderen Worten - Was machst du den heute damit das so funktioniert, wie du es möchtest.

                  Hinweis: Der Alexa-Adapter kann mit Spotify teilweise besser umgehen als der Spotify-Adapter ...

                  Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  N 1 Reply Last reply
                  0
                  • ArmilarA Armilar

                    @niiccooo1 sagte in Sonoff NSPanel:

                    @armilar
                    Stimmt. Es lag am Alias. Der Alias-Manager hat zwar den Player selbst angelegt, jedoch musste ich manuell alle Bezeichnungen ändern.

                    Durch stöbern im Forum habe ich den Ansatz mit spotify-premium gefunden.
                    Da ich einen Android TV mit Spotify Connect habe, würde ich gerne versuchen den spotify Adapter einzubinden.

                    Aktuell scheitere ich noch an der speaker-auswahl Funktion. Ich weiß im Spotify Adapter lässt sich über "spotify-premium.0.devices.deviceList" das abzuspielende Gerät auswählen.

                    Wie sähe die Funktion dann um zwischen den Geräten zu wechseln?

                    Aktuell keine Ahnung wie die Funktion dann aussehen würde.

                    Durch die Speaker-Auswahl im Panel wird folgender Zeile gesendet. Darin steht die Aktion "speaker-sel" und das Gewählte Gerät (in diesem Fall "Echo Spot Buero")
                    30585b21-09d5-441a-afb7-3bbb40fd2e73-image.png

                    speaker-sel ruft diesen Fall im TS-Skript auf
                    192d7210-933e-47fa-8490-2044e3ca6a3b-image.png

                    Im Prinzip wird hier aktuell ein Command an Alexa gesendet "Schiebe meine Musik auf Echo Spot Buero". Funktioniert für Echo-Devices und Playlists. Der Befehl funktioniert zumindest "nicht" mit FireTV-Sticks (nur mit Echo's)

                    im case 'speaker-sel' müsste deine Spotify-Logik implementiert werden.

                    Da ich nicht weiß, zwischen welchen Geräten du wann, was und wohin umschalten willst (teile mal alle Gedanken und Überlegungen sehr detailliert mit), kann ich auch nicht mehr dazu sagen. Mit anderen Worten - Was machst du den heute damit das so funktioniert, wie du es möchtest.

                    Hinweis: Der Alexa-Adapter kann mit Spotify teilweise besser umgehen als der Spotify-Adapter ...

                    N Offline
                    N Offline
                    niiccooo1
                    wrote on last edited by niiccooo1
                    #1275

                    @armilar

                    Danke für deinen ausführlichen Kommentar.
                    Mein Ziel wäre wie folgt:

                    Über die MediaCard können, wie du bereits beschrieben hast, über 'speaker-sel' die Alexa Lautsprecher ausgewählt werden. (Ich denke sobald ein anderer Speaker über die Pfeiltaste ausgewählt wird, springt die Musik auf das Gerät über).

                    Aktuell habe ich im Alias Media nicht den Alexa Player implementiert, sondern den Spotify Player.
                    Das scheint soweit auch zu funktionieren (theoretisch könnte ich den Player auch über Alexa laufen lassen).

                    Jetzt würde ich das gerne so realisieren, dass über speaker-sel nicht die Alexa-Geräte aufgelistet werden sondern die Geräte die im spotifyadapter über "spotify-premium.0.devices.deviceList" aufgelistet werden.

                    {
                     "_id": "spotify-premium.0.devices.deviceList",
                     "type": "state",
                     "common": {
                       "name": "All devices saved in common part. Change this value to a device id to start playing on this.",
                       "type": "string",
                       "role": "value",
                       "states": {
                         "c0d4dfea666270411a233ed452adb01a47efc381": "TV Wohnzimmer",
                         "d09e64cd-7ba6-4410-a7e2-78d5f7b7d1e4_amzn_1": "Echo Dot 4 weiß",
                         "033ab8c7abb61a952a899ac25aadccf315761f3b": "HP30P"
                       },
                       "read": true,
                       "write": true
                     },
                     "native": {},
                     "from": "system.adapter.spotify-premium.0",
                     "ts": 1662358872878,
                     "acl": {
                       "object": 1636,
                       "state": 1636,
                       "owner": "system.user.admin",
                       "ownerGroup": "system.group.administrator"
                     },
                     "user": "system.user.admin"
                    }
                    

                    Sobald ein Gerät ausgewählt ist (z.B. über ein Popup?), sollte die Musik direkt über diesen Lautsprecher ausgegeben werden.
                    Meine Javascript Skills sind leider sehr begrenzt weshalb bei mir an der Umsetzung scheitert.

                    ArmilarA 1 Reply Last reply
                    0
                    • N niiccooo1

                      @armilar

                      Danke für deinen ausführlichen Kommentar.
                      Mein Ziel wäre wie folgt:

                      Über die MediaCard können, wie du bereits beschrieben hast, über 'speaker-sel' die Alexa Lautsprecher ausgewählt werden. (Ich denke sobald ein anderer Speaker über die Pfeiltaste ausgewählt wird, springt die Musik auf das Gerät über).

                      Aktuell habe ich im Alias Media nicht den Alexa Player implementiert, sondern den Spotify Player.
                      Das scheint soweit auch zu funktionieren (theoretisch könnte ich den Player auch über Alexa laufen lassen).

                      Jetzt würde ich das gerne so realisieren, dass über speaker-sel nicht die Alexa-Geräte aufgelistet werden sondern die Geräte die im spotifyadapter über "spotify-premium.0.devices.deviceList" aufgelistet werden.

                      {
                       "_id": "spotify-premium.0.devices.deviceList",
                       "type": "state",
                       "common": {
                         "name": "All devices saved in common part. Change this value to a device id to start playing on this.",
                         "type": "string",
                         "role": "value",
                         "states": {
                           "c0d4dfea666270411a233ed452adb01a47efc381": "TV Wohnzimmer",
                           "d09e64cd-7ba6-4410-a7e2-78d5f7b7d1e4_amzn_1": "Echo Dot 4 weiß",
                           "033ab8c7abb61a952a899ac25aadccf315761f3b": "HP30P"
                         },
                         "read": true,
                         "write": true
                       },
                       "native": {},
                       "from": "system.adapter.spotify-premium.0",
                       "ts": 1662358872878,
                       "acl": {
                         "object": 1636,
                         "state": 1636,
                         "owner": "system.user.admin",
                         "ownerGroup": "system.group.administrator"
                       },
                       "user": "system.user.admin"
                      }
                      

                      Sobald ein Gerät ausgewählt ist (z.B. über ein Popup?), sollte die Musik direkt über diesen Lautsprecher ausgegeben werden.
                      Meine Javascript Skills sind leider sehr begrenzt weshalb bei mir an der Umsetzung scheitert.

                      ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      wrote on last edited by Armilar
                      #1276

                      @niiccooo1 sagte in Sonoff NSPanel:

                      @armilar

                      Danke für deinen ausführlichen Kommentar.
                      Mein Ziel wäre wie folgt:

                      Über die MediaCard können, wie du bereits beschrieben hast, über 'speaker-sel' die Alexa Lautsprecher ausgewählt werden. (Ich denke sobald ein anderer Speaker über die Pfeiltaste ausgewählt wird, springt die Musik auf das Gerät über).

                      Aktuell habe ich im Alias Media nicht den Alexa Player implementiert, sondern den Spotify Player.
                      Das scheint soweit auch zu funktionieren (theoretisch könnte ich den Player auch über Alexa laufen lassen).

                      Jetzt würde ich das gerne so realisieren, dass über speaker-sel nicht die Alexa-Geräte aufgelistet werden sondern die Geräte die im spotifyadapter über "spotify-premium.0.devices.deviceList" aufgelistet werden.

                      {
                       "_id": "spotify-premium.0.devices.deviceList",
                       "type": "state",
                       "common": {
                         "name": "All devices saved in common part. Change this value to a device id to start playing on this.",
                         "type": "string",
                         "role": "value",
                         "states": {
                           "c0d4dfea666270411a233ed452adb01a47efc381": "TV Wohnzimmer",
                           "d09e64cd-7ba6-4410-a7e2-78d5f7b7d1e4_amzn_1": "Echo Dot 4 weiß",
                           "033ab8c7abb61a952a899ac25aadccf315761f3b": "HP30P"
                         },
                         "read": true,
                         "write": true
                       },
                       "native": {},
                       "from": "system.adapter.spotify-premium.0",
                       "ts": 1662358872878,
                       "acl": {
                         "object": 1636,
                         "state": 1636,
                         "owner": "system.user.admin",
                         "ownerGroup": "system.group.administrator"
                       },
                       "user": "system.user.admin"
                      }
                      

                      Sobald ein Gerät ausgewählt ist (z.B. über ein Popup?), sollte die Musik direkt über diesen Lautsprecher ausgegeben werden.
                      Meine Javascript Skills sind leider sehr begrenzt weshalb bei mir an der Umsetzung scheitert.

                      Genau diesen Datenpunkt würde ich nicht nehmen - wenn der Spotify-Adapter eine Zeit lang nichts mehr zu tun hatte ist der nämlich leer.

                      Aber mit den nachfolgenden beiden dürfte es funktionieren:
                      97206cd5-e89b-4abb-975a-aab20a5ed33b-image.png

                      beide in Arrays (DeviceString und DeviceID) einlesen, d.h. beide mit split (;) trennen

                      Dann mit dem vom Panel übergebenen Device mit DeviceString.indexof() suchen und die zugehörige ID ermitteln.

                      Danach Unter Devices die ermittelte ID auf useForPlayback = true setzen

                      Klingt eigentlich simpel 😉

                      Ich sehe mir das mal bei Zeiten genauer an

                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      N 1 Reply Last reply
                      1
                      • K Offline
                        K Offline
                        Kuckuckmann
                        wrote on last edited by Kuckuckmann
                        #1277

                        temp thread

                        NSPanel Dokumentation im GitHub Wiki:

                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                        1 Reply Last reply
                        0
                        • ArmilarA Armilar

                          @niiccooo1 sagte in Sonoff NSPanel:

                          @armilar

                          Danke für deinen ausführlichen Kommentar.
                          Mein Ziel wäre wie folgt:

                          Über die MediaCard können, wie du bereits beschrieben hast, über 'speaker-sel' die Alexa Lautsprecher ausgewählt werden. (Ich denke sobald ein anderer Speaker über die Pfeiltaste ausgewählt wird, springt die Musik auf das Gerät über).

                          Aktuell habe ich im Alias Media nicht den Alexa Player implementiert, sondern den Spotify Player.
                          Das scheint soweit auch zu funktionieren (theoretisch könnte ich den Player auch über Alexa laufen lassen).

                          Jetzt würde ich das gerne so realisieren, dass über speaker-sel nicht die Alexa-Geräte aufgelistet werden sondern die Geräte die im spotifyadapter über "spotify-premium.0.devices.deviceList" aufgelistet werden.

                          {
                           "_id": "spotify-premium.0.devices.deviceList",
                           "type": "state",
                           "common": {
                             "name": "All devices saved in common part. Change this value to a device id to start playing on this.",
                             "type": "string",
                             "role": "value",
                             "states": {
                               "c0d4dfea666270411a233ed452adb01a47efc381": "TV Wohnzimmer",
                               "d09e64cd-7ba6-4410-a7e2-78d5f7b7d1e4_amzn_1": "Echo Dot 4 weiß",
                               "033ab8c7abb61a952a899ac25aadccf315761f3b": "HP30P"
                             },
                             "read": true,
                             "write": true
                           },
                           "native": {},
                           "from": "system.adapter.spotify-premium.0",
                           "ts": 1662358872878,
                           "acl": {
                             "object": 1636,
                             "state": 1636,
                             "owner": "system.user.admin",
                             "ownerGroup": "system.group.administrator"
                           },
                           "user": "system.user.admin"
                          }
                          

                          Sobald ein Gerät ausgewählt ist (z.B. über ein Popup?), sollte die Musik direkt über diesen Lautsprecher ausgegeben werden.
                          Meine Javascript Skills sind leider sehr begrenzt weshalb bei mir an der Umsetzung scheitert.

                          Genau diesen Datenpunkt würde ich nicht nehmen - wenn der Spotify-Adapter eine Zeit lang nichts mehr zu tun hatte ist der nämlich leer.

                          Aber mit den nachfolgenden beiden dürfte es funktionieren:
                          97206cd5-e89b-4abb-975a-aab20a5ed33b-image.png

                          beide in Arrays (DeviceString und DeviceID) einlesen, d.h. beide mit split (;) trennen

                          Dann mit dem vom Panel übergebenen Device mit DeviceString.indexof() suchen und die zugehörige ID ermitteln.

                          Danach Unter Devices die ermittelte ID auf useForPlayback = true setzen

                          Klingt eigentlich simpel 😉

                          Ich sehe mir das mal bei Zeiten genauer an

                          N Offline
                          N Offline
                          niiccooo1
                          wrote on last edited by
                          #1278

                          @armilar Verstehe zwar nur Bahnhof, aber ich habe da vollstes Vertrauen in dich 😄

                          ArmilarA 1 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            gritrasq
                            wrote on last edited by
                            #1279

                            Hallo Zusammen,
                            ich bitte um Nachsicht, das ist mein erster Post, bisher hat mitlesen immer geholfen. In diesem Sinne auch gleich mal einen Dank an alle. Wenn es hier nicht passt bitte verschieben oder löschen.

                            Installation:
                            Für das NSPanel verwende ich das Script NsPanelTs.ts vom 4.9.22
                            Für das global Icon Mapping das Script icon_mapping.ts von vor 5 Monaten.
                            Iobroker ist auf einem RPI installiert. Alle Adapter aktuell.

                            Ich habe das Panel gestern neu installiert und soweit läuft es erst einmal (Uhrzeit geht eine Stunde nach, aber egal)
                            Screensaver wird angezeigt.
                            Die Beispielseiten auch soweit das eben geht.

                            Ich habe nun zwei Probleme.

                            Problem 1:
                            Ich habe den Screensaver modifiziert und zeige die Daten meiner PV Anlage an. Das geht super, aber ich bekomme den Forecast nicht ausgeschaltet. Lt. Anleitung von haus-automatisierung.com müsste dies via:
                            const weatherForecast = false gehe. diesen Eintrag finde ich nicht und wenn ich ihn erstelle bewirkt er nichts.

                            Wenn ich es in 0_userdata.0.NSPanel.1.ScreensaverInfo.weatherForecast auf false setze geht es immer wieder auf True.

                            Problem 2.
                            Ich wollte gerne weitere Daten aus meiner PV Anlage auf einer Page anzeigen. Hierzu habe ich einen Info "Gerät" angelegt, welches dann aber im Geräte Adapter nicht mehr erscheint.
                            GerätPV.png
                            Aber im Alias existiert
                            ecb2bf20-7cc1-4654-8623-dac0c2a83558-image.png
                            im Script habe ich folgendes eingetragen:

                             <PageItem>{ id: "alias.0.Außenbereich.PV-Anlage.Leistung_Panel.ACTUAL", icon: "solar-panel-large", name: "PV-Leistung"},
                            

                            Mir wird auf dem Panel das Icon angezeigt und der Name beim Wert steht aber eine "0"
                            Role ist Info, also dachte ich es müsste gehen.
                            Wenn ich es richtig verstanden haben reagiert das Panel ja auf die Role, und die Werte SET und ACTUAL im Alias.

                            Vielen Dank im Voraus

                            G K 2 Replies Last reply
                            0
                            • G gritrasq

                              Hallo Zusammen,
                              ich bitte um Nachsicht, das ist mein erster Post, bisher hat mitlesen immer geholfen. In diesem Sinne auch gleich mal einen Dank an alle. Wenn es hier nicht passt bitte verschieben oder löschen.

                              Installation:
                              Für das NSPanel verwende ich das Script NsPanelTs.ts vom 4.9.22
                              Für das global Icon Mapping das Script icon_mapping.ts von vor 5 Monaten.
                              Iobroker ist auf einem RPI installiert. Alle Adapter aktuell.

                              Ich habe das Panel gestern neu installiert und soweit läuft es erst einmal (Uhrzeit geht eine Stunde nach, aber egal)
                              Screensaver wird angezeigt.
                              Die Beispielseiten auch soweit das eben geht.

                              Ich habe nun zwei Probleme.

                              Problem 1:
                              Ich habe den Screensaver modifiziert und zeige die Daten meiner PV Anlage an. Das geht super, aber ich bekomme den Forecast nicht ausgeschaltet. Lt. Anleitung von haus-automatisierung.com müsste dies via:
                              const weatherForecast = false gehe. diesen Eintrag finde ich nicht und wenn ich ihn erstelle bewirkt er nichts.

                              Wenn ich es in 0_userdata.0.NSPanel.1.ScreensaverInfo.weatherForecast auf false setze geht es immer wieder auf True.

                              Problem 2.
                              Ich wollte gerne weitere Daten aus meiner PV Anlage auf einer Page anzeigen. Hierzu habe ich einen Info "Gerät" angelegt, welches dann aber im Geräte Adapter nicht mehr erscheint.
                              GerätPV.png
                              Aber im Alias existiert
                              ecb2bf20-7cc1-4654-8623-dac0c2a83558-image.png
                              im Script habe ich folgendes eingetragen:

                               <PageItem>{ id: "alias.0.Außenbereich.PV-Anlage.Leistung_Panel.ACTUAL", icon: "solar-panel-large", name: "PV-Leistung"},
                              

                              Mir wird auf dem Panel das Icon angezeigt und der Name beim Wert steht aber eine "0"
                              Role ist Info, also dachte ich es müsste gehen.
                              Wenn ich es richtig verstanden haben reagiert das Panel ja auf die Role, und die Werte SET und ACTUAL im Alias.

                              Vielen Dank im Voraus

                              G Offline
                              G Offline
                              gritrasq
                              wrote on last edited by
                              #1280

                              @gritrasq Problem 1 ist gelöst. Das "ACTUAL" darf nicht mit dran und wenn man den Punkt beim Löschen ünersieht, dann geht das auch nicht. Sorry.

                              ArmilarA 1 Reply Last reply
                              0
                              • G gritrasq

                                @gritrasq Problem 1 ist gelöst. Das "ACTUAL" darf nicht mit dran und wenn man den Punkt beim Löschen ünersieht, dann geht das auch nicht. Sorry.

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                wrote on last edited by Armilar
                                #1281

                                @gritrasq sagte in Sonoff NSPanel:

                                @gritrasq Problem 1 ist gelöst. Das "ACTUAL" darf nicht mit dran und wenn man den Punkt beim Löschen ünersieht, dann geht das auch nicht. Sorry.

                                Zunächst einmal "herzlich Willkommen". Für genau das ist der Thread ja gedacht.

                                Es gab seit dem Video eine kleine Änderung. Der icons im Screensaver werden jetzt über die Datenpunkte gesteuert.

                                unter 0_usderdata.0.NSPanelX.ScreensaverInfo...
                                49313e80-ba16-42c0-8b29-0bedc9dea97e-image.png

                                über den weatherForecastTimer wird festgelegt, ob es einen minütlichen Wechsel des weatherForecast geben soll. Wenn also weatherForecastTimer = true ist, dann wechselt weatherForecast jede Minute von true nach false.

                                Lösung: weatherForecastTimer = false

                                Ich denke der Alias Punkt ist erledigt und das war noch offen, oder gibt es nach wie vor noch ein Problem?

                                Und echt kein Problem - das Skript ist mega-komplex. Man müsste mittlerweile ein Buch schreiben um alles beschreiben zu können

                                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                N 1 Reply Last reply
                                0
                                • N niiccooo1

                                  @armilar Verstehe zwar nur Bahnhof, aber ich habe da vollstes Vertrauen in dich 😄

                                  ArmilarA Offline
                                  ArmilarA Offline
                                  Armilar
                                  Most Active Forum Testing
                                  wrote on last edited by Armilar
                                  #1282

                                  @niiccooo1 sagte in Sonoff NSPanel:

                                  @armilar Verstehe zwar nur Bahnhof, aber ich habe da vollstes Vertrauen in dich 😄

                                  Nun mal etwas zu Bahnhof:

                                  Das ist dein neuer case 'speaker-sel':

                                          case 'speaker-sel':
                                  
                                              var strDeviceID = spotifyGetDeviceID(words[4]);
                                              setState("spotify-premium.0.devices." + strDeviceID + ".useForPlayback", true);
                                  /*
                                              let i_list = Array.prototype.slice.apply($('[state.id="' + alexaInstanz + '.Echo-Devices.*.Info.name"]'));
                                              for (let i_index in i_list) {
                                                  let i = i_list[i_index];
                                                  if ((getState(i).val) === words[4]) {
                                                      let deviceId = i;
                                                      deviceId = deviceId.split('.');
                                                      setIfExists(alexaInstanz + '.Echo-Devices.' + alexaDevice + '.Commands.textCommand', 'Schiebe meine Musik auf ' + words[4]);
                                                      alexaDevice = deviceId[3];
                                                  }
                                              }
                                  */
                                              break;
                                  

                                  und das ist eine Funktion die du irgendwo in den Code kopieren musst:

                                  function spotifyGetDeviceID(vDeviceString) {
                                      const availableDeviceIDs = getState("spotify-premium.0.devices.availableDeviceListIds").val;
                                      const availableDeviceNames = getState("spotify-premium.0.devices.availableDeviceListString").val;
                                      var arrayDeviceListIds = availableDeviceIDs.split(";");
                                      var arrayDeviceListSting = availableDeviceNames.split(";");
                                      var indexPos = arrayDeviceListSting.indexOf(vDeviceString);
                                      var strDevID = arrayDeviceListIds[indexPos];
                                      return strDevID;
                                  }
                                  

                                  Ich habe die jetzt fast am Ende unter der function rgb_to_cie(red, green, blue) platziert.

                                  Teste mal, ob das für dich funktioniert. Falls ja, kann ich da noch ein paar Parameter in den pageItem setzten (wahlweise Alexa oder Spotify oder dynamisch über was ist da und wird abgespielt oder wer weiß auch immer was... 😉 )

                                  Zumindest könnte man dem Panel die Entscheidung über Spotify und/oder Alexa überlassen

                                  Ach ja: Für den Test sollte in dem TS-Array etwas drinstehen

                                  // Wenn alexaSpeakerList definiert, dann werden Einträge verwendet, sonst alle relevanten Devices aus Alexa-Instanz
                                  // Speakerwechsel funktioniert nicht bei Radio/TuneIn sondern bei Playlists
                                  const alexaSpeakerList = [
                                      'TV Wohnzimmer',
                                      'Echo Dot 4 weiß',
                                      'HP30P'
                                  ];
                                  

                                  Und abschließend:
                                  Nicht die Pfeiltaste löst die Aktion aus. Die sorgt nur dafür, das du die Speaker wechseln kannst. Zur Auswahl (Also für die Wechselaktion) musst du dann auf den ausgewählten "Speaker-Namen" klicken!

                                  Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  N 1 Reply Last reply
                                  0
                                  • ArmilarA Armilar

                                    @niiccooo1 sagte in Sonoff NSPanel:

                                    @armilar Verstehe zwar nur Bahnhof, aber ich habe da vollstes Vertrauen in dich 😄

                                    Nun mal etwas zu Bahnhof:

                                    Das ist dein neuer case 'speaker-sel':

                                            case 'speaker-sel':
                                    
                                                var strDeviceID = spotifyGetDeviceID(words[4]);
                                                setState("spotify-premium.0.devices." + strDeviceID + ".useForPlayback", true);
                                    /*
                                                let i_list = Array.prototype.slice.apply($('[state.id="' + alexaInstanz + '.Echo-Devices.*.Info.name"]'));
                                                for (let i_index in i_list) {
                                                    let i = i_list[i_index];
                                                    if ((getState(i).val) === words[4]) {
                                                        let deviceId = i;
                                                        deviceId = deviceId.split('.');
                                                        setIfExists(alexaInstanz + '.Echo-Devices.' + alexaDevice + '.Commands.textCommand', 'Schiebe meine Musik auf ' + words[4]);
                                                        alexaDevice = deviceId[3];
                                                    }
                                                }
                                    */
                                                break;
                                    

                                    und das ist eine Funktion die du irgendwo in den Code kopieren musst:

                                    function spotifyGetDeviceID(vDeviceString) {
                                        const availableDeviceIDs = getState("spotify-premium.0.devices.availableDeviceListIds").val;
                                        const availableDeviceNames = getState("spotify-premium.0.devices.availableDeviceListString").val;
                                        var arrayDeviceListIds = availableDeviceIDs.split(";");
                                        var arrayDeviceListSting = availableDeviceNames.split(";");
                                        var indexPos = arrayDeviceListSting.indexOf(vDeviceString);
                                        var strDevID = arrayDeviceListIds[indexPos];
                                        return strDevID;
                                    }
                                    

                                    Ich habe die jetzt fast am Ende unter der function rgb_to_cie(red, green, blue) platziert.

                                    Teste mal, ob das für dich funktioniert. Falls ja, kann ich da noch ein paar Parameter in den pageItem setzten (wahlweise Alexa oder Spotify oder dynamisch über was ist da und wird abgespielt oder wer weiß auch immer was... 😉 )

                                    Zumindest könnte man dem Panel die Entscheidung über Spotify und/oder Alexa überlassen

                                    Ach ja: Für den Test sollte in dem TS-Array etwas drinstehen

                                    // Wenn alexaSpeakerList definiert, dann werden Einträge verwendet, sonst alle relevanten Devices aus Alexa-Instanz
                                    // Speakerwechsel funktioniert nicht bei Radio/TuneIn sondern bei Playlists
                                    const alexaSpeakerList = [
                                        'TV Wohnzimmer',
                                        'Echo Dot 4 weiß',
                                        'HP30P'
                                    ];
                                    

                                    Und abschließend:
                                    Nicht die Pfeiltaste löst die Aktion aus. Die sorgt nur dafür, das du die Speaker wechseln kannst. Zur Auswahl (Also für die Wechselaktion) musst du dann auf den ausgewählten "Speaker-Namen" klicken!

                                    N Offline
                                    N Offline
                                    niiccooo1
                                    wrote on last edited by niiccooo1
                                    #1283

                                    @armilar
                                    Ich bin begeistert 😄

                                    Die Auswahl und das Abspielen auf den einzelnen Geräten funktioniert tadellos.

                                    Mir fällt nur auf, dass wenn ich einen Lied weiter gehe, der Titel , Artist usw. erst aktualisiert wird, wenn ich die Anzeige wechsle oder das Panel aus dem Standby wecke.

                                    Auch steht beim aktuellen Gerät "null" blau hinterlegt d.h. ich sehe wenn das Panel aus dem Standby geweckt nicht auf welchen Speaker er gerade streamt.
                                    EDIT:
                                    Habe noch folgende Passage unter in die GenerateMediaPage diesen Part

                                     let currentSpeaker = getState(([alexaInstanz, '.Echo-Devices.', alexaDevice, '.Info.name'].join(''))).val;
                                    

                                    gegen

                                    let currentSpeaker = getState(([spotifyInstanz, '.player.device.name'].join(''))).val; 
                                    

                                    ausgetauscht

                                    Die Idee mit dem Wechsel zwischen Alexa und Spotify finde ich gut.
                                    Viele werden sicherlich auch Sonossysteme oder ähnliches im Haus haben. Da weiß ich nicht ob diese über den Alexa Adapter gesteuert werden können.

                                    ArmilarA K 2 Replies Last reply
                                    0
                                    • ArmilarA Armilar

                                      @gritrasq sagte in Sonoff NSPanel:

                                      @gritrasq Problem 1 ist gelöst. Das "ACTUAL" darf nicht mit dran und wenn man den Punkt beim Löschen ünersieht, dann geht das auch nicht. Sorry.

                                      Zunächst einmal "herzlich Willkommen". Für genau das ist der Thread ja gedacht.

                                      Es gab seit dem Video eine kleine Änderung. Der icons im Screensaver werden jetzt über die Datenpunkte gesteuert.

                                      unter 0_usderdata.0.NSPanelX.ScreensaverInfo...
                                      49313e80-ba16-42c0-8b29-0bedc9dea97e-image.png

                                      über den weatherForecastTimer wird festgelegt, ob es einen minütlichen Wechsel des weatherForecast geben soll. Wenn also weatherForecastTimer = true ist, dann wechselt weatherForecast jede Minute von true nach false.

                                      Lösung: weatherForecastTimer = false

                                      Ich denke der Alias Punkt ist erledigt und das war noch offen, oder gibt es nach wie vor noch ein Problem?

                                      Und echt kein Problem - das Skript ist mega-komplex. Man müsste mittlerweile ein Buch schreiben um alles beschreiben zu können

                                      N Offline
                                      N Offline
                                      niiccooo1
                                      wrote on last edited by niiccooo1
                                      #1284

                                      @armilar
                                      Da würde ich auch mal gerne meinen Senf dazu geben.

                                      Ich habe den "0_userdata.0.NSPanel.1.ScreensaverInfo.weatherForecastTimer" ebenfalls auf false stehen.
                                      Stelle ich den Datenpunkt "0_userdata.0.NSPanel.1.ScreensaverInfo.weatherForecast" auf false, springt dieser pünktlich zur halben Minute auf true und kehrt nicht wieder zurück.

                                      Woran kann das liegen?

                                      Vielen Dank schonmal.

                                      EDIT:

                                      async function InitWeatherForecast() {
                                          //----Möglichkeit, im Screensaver zwischen Accu-Weather Forecast oder selbstdefinierten Werten zu wählen---------------------------------
                                          if (existsState(NSPanel_Path + "ScreensaverInfo.weatherForecast") == false || existsState(NSPanel_Path + "ScreensaverInfo.weatherForecastTimer") == false) {
                                              await createStateAsync(NSPanel_Path + "ScreensaverInfo.weatherForecast", true, { type: 'boolean' });
                                              await createStateAsync(NSPanel_Path + "ScreensaverInfo.weatherForecastTimer", true, { type: 'boolean' });
                                          };
                                      
                                      ArmilarA 1 Reply Last reply
                                      1
                                      • M Offline
                                        M Offline
                                        monarc
                                        wrote on last edited by
                                        #1285

                                        Hallo zusammen, klasse Arbeit von @Armilar und der Community hier im Thread. Danke schon mal an dieser Stelle.

                                        Hätte jemand Zeit und Lust das einrichten der Media Card im Detail zu beschreiben? gerne für Alexa und auch Radio. Hab absolut keine Idee was im Alias Manager zu tun und einzustellen ist.

                                        Sollte es eine solche Anleitung hier im Thread übersehen haben tut es mir leid und ich würde mich über einen Hinweis freuen.

                                        Vielen Dank im Voraus und einen schönen Abend noch....

                                        VG
                                        Marc

                                        ArmilarA 1 Reply Last reply
                                        0
                                        • ArmilarA Armilar

                                          Hardware-Buttons im Multipress-Mode

                                          Für alle die es noch nicht wussten:

                                          Man kann die physische Hardware-Buttons auch im

                                          SetOption73 1
                                          

                                          (Multi-Press Functions) betreiben. (Rule2 dabei ausschalten)

                                          a1e5208a-bd46-403c-a7a5-7133b9003d23-image.png

                                          Jeder Button sendet per /stat/RESULT "SINGLE", "DOUBLE", "TRIPLE", "QUAD" oder "PENTA". Somit hat man 5 mögliche Schaltzustände pro Button.

                                          Da ein sechster Klick das WifiConfig 2 ausführt, sollte dabei ebenfalls

                                          SetOption1 1
                                          

                                          ausgeführt werden, um zu verhindern, dass der Wifi Manager ausgeführt wird.

                                          Falls du diese Funktion nutzen möchtest, kannst du das nachfolgende Blockly (siehe Spoiler) gerne verwenden:
                                          71878124-cf78-4254-bf64-62c7a0d20310-image.png

                                          Blockly import

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                            <variables>
                                              <variable id="$%h)IyP*A]i!w|o;@^u~">PanelResult</variable>
                                              <variable id="iG,DhTT3ntIL)6jkdBSx">Action</variable>
                                            </variables>
                                            <block type="on_ext" id="Z*WW:Hq=V/0/+D.7sBGj" x="88" y="63">
                                              <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="s?5LPlVoKvrW,Gf/,d6(">
                                                  <field name="oid">default</field>
                                                </shadow>
                                                <block type="field_oid" id=";VZs-nq`+#GL`5jVspo^">
                                                  <field name="oid">mqtt.0.SmartHome.NSPanel_1.stat.RESULT</field>
                                                </block>
                                              </value>
                                              <statement name="STATEMENT">
                                                <block type="variables_set" id="W*-eYA4LLj$WMX1vlx9+">
                                                  <field name="VAR" id="$%h)IyP*A]i!w|o;@^u~">PanelResult</field>
                                                  <value name="VALUE">
                                                    <block type="convert_json2object" id="H}rYz*|_N_r:7lN6kRq)">
                                                      <value name="VALUE">
                                                        <block type="on_source" id="ks};I#sE9{y$Os12X3%`">
                                                          <field name="ATTR">state.val</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="controls_if" id="|e+,CBW1}SywJvnEFroP">
                                                      <mutation elseif="1"></mutation>
                                                      <value name="IF0">
                                                        <block type="logic_compare" id="tkA^fRI!3FU^2Tiqlahc">
                                                          <field name="OP">EQ</field>
                                                          <value name="A">
                                                            <block type="text_getSubstring" id="k}-`K]@kua~8fg*?I[t#">
                                                              <mutation at1="true" at2="true"></mutation>
                                                              <field name="WHERE1">FROM_START</field>
                                                              <field name="WHERE2">FROM_START</field>
                                                              <value name="STRING">
                                                                <block type="on_source" id="qCOa@52xDIv4(R#:]Yzp">
                                                                  <field name="ATTR">state.val</field>
                                                                </block>
                                                              </value>
                                                              <value name="AT1">
                                                                <block type="math_number" id="Ncm@lgRgVYVBF~^yWKRE">
                                                                  <field name="NUM">3</field>
                                                                </block>
                                                              </value>
                                                              <value name="AT2">
                                                                <block type="math_number" id="Gov$3|Qrd91N~RUzWea=">
                                                                  <field name="NUM">9</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="text" id="2~EGhvBs4KIPXXMcNVkx">
                                                              <field name="TEXT">Button1</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <statement name="DO0">
                                                        <block type="variables_set" id="G!Z=C5KTj-Nl+XFa0RU_">
                                                          <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                          <value name="VALUE">
                                                            <block type="get_attr" id="Ed}{-}B{X+obkb^Mmk8O">
                                                              <value name="PATH">
                                                                <shadow type="text">
                                                                  <field name="TEXT">Button2.Action</field>
                                                                </shadow>
                                                                <block type="text" id="-XSmbNSLD2q^JU.3)[(^">
                                                                  <field name="TEXT">Button1.Action</field>
                                                                </block>
                                                              </value>
                                                              <value name="OBJECT">
                                                                <block type="variables_get" id="-%8e}:rqW1kj_iUDQyyf">
                                                                  <field name="VAR" id="$%h)IyP*A]i!w|o;@^u~">PanelResult</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="controls_if" id="729?J2a__sAP*2PmMN2%">
                                                              <mutation elseif="4"></mutation>
                                                              <value name="IF0">
                                                                <block type="logic_compare" id="u9lV/l]c1,yVRl3(21(L">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="kG0ARQ1j%HKz(I=l}`:P">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="v?m}nM1~E8zR0,Ja+if+">
                                                                      <field name="TEXT">SINGLE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO0">
                                                                <block type="comment" id="iqFwhe!^P0z9-W9D[tyh">
                                                                  <field name="COMMENT">Schalte etwas: Button1 1x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="F22M/f@lJ_xQ$t2#QW[#">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="?r3.Wy5c@$3DxmvbIGr}">
                                                                          <field name="TEXT">Button1 SINGLE wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF1">
                                                                <block type="logic_compare" id="[Vpq7B,RWb4k)Bhwq{nh">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="|Whz!$I5#Iym52Pg8N?p">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="~f_cI8hrs;I)wJ-S.G3r">
                                                                      <field name="TEXT">DOUBLE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO1">
                                                                <block type="comment" id="D;PPB54t87N)%F{.hQAx">
                                                                  <field name="COMMENT">Schalte etwas: Button1 2x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="xoG/r3;33`8/j$QeZHW5">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="9PgW|#6f8``brbWQM9q7">
                                                                          <field name="TEXT">Button1 DOUBLE wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF2">
                                                                <block type="logic_compare" id="t)8drGw=u/q0Pl+ul^43">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="-lf~?Q^H8o}J:cf@I5aN">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="Z!={5~.hF?V-NFw73|BL">
                                                                      <field name="TEXT">TRIPLE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO2">
                                                                <block type="comment" id="xjdh~X8eM8ab/a/JuIM/">
                                                                  <field name="COMMENT">Schalte etwas: Button1 3x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="n$kU%^k3$wHN/L**K=jA">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="SA^R/OJX#a7JDhE7LwL[">
                                                                          <field name="TEXT">Button1 TRIPLE wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF3">
                                                                <block type="logic_compare" id="ZCUeBK[Sc08KKQVMF)tC">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id=":Jlhv9(rM!D5H*eM|Gw-">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="6NH!g[HN7f=7_q%U10M!">
                                                                      <field name="TEXT">QUAD</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO3">
                                                                <block type="comment" id="77*X9-*|mO]|P0$Jw=K`">
                                                                  <field name="COMMENT">Schalte etwas: Button1 4x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="qE@`G.#9s!UAtrlMJ/yi">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="G:19{lKn)m`B!x(NUx5S">
                                                                          <field name="TEXT">Button1 QUAD wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF4">
                                                                <block type="logic_compare" id="fz#2[~sK=iF%wd=4`hB,">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="ROFyrrPZn5KJg7?Hs),Z">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="a]-o=$vOr9JDr(T!#SmL">
                                                                      <field name="TEXT">PENTA</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO4">
                                                                <block type="comment" id="fxPE82.Ci3L`ME=X3nl|">
                                                                  <field name="COMMENT">Schalte etwas: Button1 5x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="7GbZ650het?k*+CCO:nr">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="*[}-a1hl?2pc^*@4E*hI">
                                                                          <field name="TEXT">Button1 PENTA wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </statement>
                                                      <value name="IF1">
                                                        <block type="logic_compare" id="8Ev:iPPfN3B?L^Q]oOIc">
                                                          <field name="OP">EQ</field>
                                                          <value name="A">
                                                            <block type="text_getSubstring" id="xx:q0nC7,q8A8~v?PC#s">
                                                              <mutation at1="true" at2="true"></mutation>
                                                              <field name="WHERE1">FROM_START</field>
                                                              <field name="WHERE2">FROM_START</field>
                                                              <value name="STRING">
                                                                <block type="on_source" id="JWC4m9/7dS^!]+xQ-I0Y">
                                                                  <field name="ATTR">state.val</field>
                                                                </block>
                                                              </value>
                                                              <value name="AT1">
                                                                <block type="math_number" id="k7=j)18I6TmB%)upvAVJ">
                                                                  <field name="NUM">3</field>
                                                                </block>
                                                              </value>
                                                              <value name="AT2">
                                                                <block type="math_number" id=",EKn%h/uX3}ZjCvmW1KE">
                                                                  <field name="NUM">9</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="text" id="Uuj{UrX@-3nNjw{n!H/@">
                                                              <field name="TEXT">Button2</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <statement name="DO1">
                                                        <block type="variables_set" id="U~1k_f;62_-QkRvGZz=)">
                                                          <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                          <value name="VALUE">
                                                            <block type="get_attr" id="izCz6K1Y;L.7M7MlHA$c">
                                                              <value name="PATH">
                                                                <shadow type="text">
                                                                  <field name="TEXT">Button2.Action</field>
                                                                </shadow>
                                                                <block type="text" id="y1)^1#)QjYVVA7)mWdvM">
                                                                  <field name="TEXT">Button2.Action</field>
                                                                </block>
                                                              </value>
                                                              <value name="OBJECT">
                                                                <block type="variables_get" id="TIg$Lr%^Fuk`fxDLC:,^">
                                                                  <field name="VAR" id="$%h)IyP*A]i!w|o;@^u~">PanelResult</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="controls_if" id="tC_APU:6jW5063/l=sR1">
                                                              <mutation elseif="4"></mutation>
                                                              <value name="IF0">
                                                                <block type="logic_compare" id="P9XXNXzc+3H{*^w1P_@q">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="sua/L8[qi8e:U#m}d^pi">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="E^e9/nh{n@)S6e:4q3_h">
                                                                      <field name="TEXT">SINGLE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO0">
                                                                <block type="comment" id="qoOw*}O|E06w[5[cXWLo">
                                                                  <field name="COMMENT">Schalte etwas: Button2 1x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id=",tE:-UWz(0Zqlc8KBLqO">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text" id="!waPZV$J9fR+dq462%h+">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="{3#KVO|*86E:3pR/!%WP">
                                                                          <field name="TEXT">Button2 SINGLE wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF1">
                                                                <block type="logic_compare" id="_Z+eBL!Zj.|LQL+_s|Ld">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="15Tx7/a!(wJ;FO+x!4JW">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="}l%?@L+:Ma!=:d2Ky/%*">
                                                                      <field name="TEXT">DOUBLE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO1">
                                                                <block type="comment" id="~72fN$sZV!.O{%*0+awy">
                                                                  <field name="COMMENT">Schalte etwas: Button2 2x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="-T4*$n8-_X_{@6!Ga5FQ">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="LFX2j}Pr:o,{$YxQVcp2">
                                                                          <field name="TEXT">Button2 DOUBLE wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF2">
                                                                <block type="logic_compare" id="6-2Eew1,aoyC]Th*AaJ5">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="4Nl6[tYm2pL@rL7v8vLI">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="zthA#*kib2r|xv+,A{Sh">
                                                                      <field name="TEXT">TRIPLE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO2">
                                                                <block type="comment" id="?OI)q#8XL#1)x.E=*m~~">
                                                                  <field name="COMMENT">Schalte etwas: Button2 3x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="%6ZLfC`!6?Z%jXlF:mFa">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="eh|tY,l}uz:WTx}4_G_E">
                                                                          <field name="TEXT">Button2 TRIPLE wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF3">
                                                                <block type="logic_compare" id="*~f.cy|6d8U0s?|^%:8R">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="tiZ6%x5iuvhh:Yi*9qB9">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="I|K0m__6/:.kuBtYQE5l">
                                                                      <field name="TEXT">QUAD</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO3">
                                                                <block type="comment" id="ToQ_dt~n$Ef|8-fb|__O">
                                                                  <field name="COMMENT">Schalte etwas: Button2 4x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="qyb7DL~:^6|r@9~KOb+A">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="tb4wo7_n@J)Q9$FLf|rV">
                                                                          <field name="TEXT">Button2 QUAD wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF4">
                                                                <block type="logic_compare" id="M:x`b;I}a8;jJU=g}u)[">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="Yh,)fk$+WmVXS=iwbzK{">
                                                                      <field name="VAR" id="iG,DhTT3ntIL)6jkdBSx">Action</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="1FMk3I`mfaAfEhMd$D#e">
                                                                      <field name="TEXT">PENTA</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO4">
                                                                <block type="comment" id="5+tVGCf{MdkG(OBDmuy|">
                                                                  <field name="COMMENT">Schalte etwas: Button2 5x gedrückt</field>
                                                                  <next>
                                                                    <block type="debug" id="}{-PVi#AL#[EGD,eb?M#">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">Button</field>
                                                                        </shadow>
                                                                        <block type="text" id="HuBkD3zi|o@.S3w.Qh7n">
                                                                          <field name="TEXT">Button2 PENTA wurde gedrückt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </statement>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </xml>
                                          

                                          In der ersten Zeile musst du lediglich deine stat/RESULT anpassen und an den entsprechenden Kommentaren deine Aktoren einbauen.

                                          Da das Hardware-Buttons sind werden die extern verarbeitet (nicht über das TS-Skript)

                                          Viel Spaß dabei

                                          Jens WoznyJ Offline
                                          Jens WoznyJ Offline
                                          Jens Wozny
                                          wrote on last edited by
                                          #1286

                                          @armilar Danke für den Tipp! Genau nach sowas hatte ich gesucht und ja, ich gebe es zu, ich habe das Script auch auf meine Sonoff Touch angewendet 😉 .
                                          Ich habe mir zum Script noch den Hold Befehl dazu gepackt, um bei 1x Licht an und bei Hold Licht aus, sowie bei der Rollo Steuerung dann 1x Ab und 2x Auf sowie Hold für Stop zu realisieren. Für die anderen fällt mir bestimmt auch was ein, aber es muss ja alles Kollegenfreundlich sein und von der Frau abgesegnet werden ✌ .
                                          Was mich wundert, bei einem ist der Hold Befehl bei 1 Sekunde halten, was ja auch perfekt ist, die anderen haben alle gefühlt 5 Sekunden Haltezeit.
                                          Da gibt es bestimmt noch eine Stellschraube zum Justieren nehme ich an, die ich aber in der Anleitung von Tasmota irgendwo nicht finde.

                                          Gruß Jens

                                          ArmilarA 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          151

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe