Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Shelly RGB2 mit LED-Strip blicken wenn true

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Shelly RGB2 mit LED-Strip blicken wenn true

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

      Hallo

      ich habe einen Shelly RGB2 im Iobroker, der mit einem LED-Strip verbunden ist.
      Jetzt möchte ich, der leuchtet sonst weiß, wenn ein DP true ist, das er für diesen Zeit von, sagen wir 2-3 Minuten Rot blickt.

      Wie setzt man das am besten um?

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

        @longbow Nun - wenn Du weißt, wie Du den Shelly ansteuerst, dann musst das halt mit Deiner Logikmaschine (Blockly, JS oder NodeRed) realisieren.

        Ich gehe mal davon aus, dass es dieses Gerät und somit ein Gerät der Gen. 1 ist.
        https://shelly-api-docs.shelly.cloud/gen1/#shelly-rgbw2-color-mqtt

        Also hast Du mit Flash auch ein Effekt zum Blinken und musst das nicht selbst setzen.
        e8279051-6a17-48ef-8c76-1cc0973cde03-image.png
        https://shelly-api-docs.shelly.cloud/gen1/#shelly-rgbw2-color-mqtt

        Ich denke der Shelly Adapter kann das sicher. Sonst musst halt mit http oder mqtt arbeiten.

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

          @mickym ok, jetzt habe ich Bahnhof im Kopf. WIe würdest du es lösen?

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

            @longbow Na wenn Du den Shelly Adapter nutzt, dann kannst Du doch schon mal ausprobieren, in dem Du weißt mit welchem Datenpunkt du die Farbe und den Effekt einstellst.
            Ich arbeite mit NodeRed als Logikmaschine, aber ansonsten würde ich es im Prinzip so machen:

            1. Triggern tut der Datenpunkt, den Du überwachen möchtest.
            2. Dann setzt Du einen Timer, der 3 Minuten läuft. Innerhalb des Timer setzt Du Deinen Shelly auf Rot und Blinkend. (hast Du ja wie oben beschrieben beim Shelly Adapter ausprobiert). Ich nutze den Adapter nicht, sondern arbeite mit mqtt deswegen kann ich Dir da nicht helfen.
            3. Nach Ablauf des Timers setzt Du den Shelly wieder auf weiß.
            Longbow 2 Replies Last reply Reply Quote 0
            • Longbow
              Longbow @mickym last edited by

              @mickym Danke, das hilft schon mal. Ich muss noch den richtige Switch für On/off finden, danke aber das ich das hin bekomme.

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

                @mickym

                so habe es mal probiert, aber keine Ahnung.
                Zu eine der Shelly wird nicht in den Zustand versetzt, in der war. Warum nicht?

                Dann setzt der es nicht immer alles um an befehlen. Was mache ich falsch?

                Dann soll er bei closing und opening reagieren, er reagiert aber nur bei opening.

                Bin für jeden Tip oder hilfe danke

                const triggerDP = '0_userdata.0.Systemdaten.Test.Test-DP';
                
                // Shelly-Datenpunkte
                const shelly = {
                    switch: 'shelly.0.SHRGBW2#EC64C9D3311F#1.lights.Switch',
                    effect: 'shelly.0.SHRGBW2#EC64C9D3311F#1.lights.effect',
                    gain: 'shelly.0.SHRGBW2#EC64C9D3311F#1.lights.gain',
                    hue: 'shelly.0.SHRGBW2#EC64C9D3311F#1.lights.hue'
                };
                
                
                // Interner Speicher der Ursprungswerte
                let originalState = {};
                
                on({id: triggerDP, change: 'ne'}, async function (obj) {
                    const val = obj.state.val;
                
                    if (val === 'opening' || val === 'closing') {
                        log(`Tor ist in Bewegung (${val}) → Shelly Licht auf ROT setzen`);
                
                        // Ursprungszustand speichern
                        originalState = {
                            switch: getState(shelly.switch).val,
                            effect: getState(shelly.effect).val,
                            gain: getState(shelly.gain).val,
                            rgbw: getState(shelly.hue).val
                        };
                
                        // Alarmzustand aktivieren
                        setState(shelly.switch, true);
                        setState(shelly.effect, 3);
                        setState(shelly.gain, 100);
                        setState(shelly.hue, 360);
                
                        // Nach 2 Minuten alles zurücksetzen
                        setTimeout(() => {
                            log('2 Minuten vorbei → Shelly Ursprungszustand wiederherstellen');
                
                            setState(shelly.switch, originalState.switch);
                            setState(shelly.effect, originalState.effect);
                            setState(shelly.gain, originalState.gain);
                            setState(shelly.hue, originalState.rgbw);
                        }, 0.5 * 60 * 1000); // 2 Minuten
                    }
                });
                
                

                das ist das Protokoll

                avascript.0	18:17:20.792	info	
                Tor ist in Bewegung (closing) → Shelly Licht auf ROT setzen
                javascript.0	18:17:20.792	info	
                getState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.Switch, timerId=undefined) => {"val":false,"ack":true,"ts":1751127414504,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1751127351824}
                javascript.0	18:17:20.792	info	
                getState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.effect, timerId=undefined) => {"val":0,"ack":true,"ts":1751127414508,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1751127151959}
                javascript.0	18:17:20.792	info	
                getState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.gain, timerId=undefined) => {"val":100,"ack":true,"ts":1751127414508,"q":0,"from":"system.adapter.shelly.0","user":"system.user.admin","lc":1751115330398}
                javascript.0	18:17:20.792	info	
                getState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.hue, timerId=undefined) => {"val":360,"ack":false,"ts":1751127198143,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1751127198143}
                javascript.0	18:17:20.792	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.Switch, state={"val":true,"ack":false,"ts":1751127440792,"q":0,"from":"system.adapter.javascript.0","lc":1751127440791,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:20.792	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.effect, state={"val":3,"ack":false,"ts":1751127440792,"q":0,"from":"system.adapter.javascript.0","lc":1751127440791,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:20.792	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.gain, state={"val":100,"ack":false,"ts":1751127440792,"q":0,"from":"system.adapter.javascript.0","lc":1751115330398,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:20.792	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.hue, state={"val":360,"ack":false,"ts":1751127440792,"q":0,"from":"system.adapter.javascript.0","lc":1751127198143,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:20.792	info	
                setTimeout(ms=30000)
                javascript.0	18:17:50.792	info	
                2 Minuten vorbei → Shelly Ursprungszustand wiederherstellen
                javascript.0	18:17:50.792	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.Switch, state={"val":false,"ack":false,"ts":1751127470792,"q":0,"from":"system.adapter.javascript.0","lc":1751127470792,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.effect, state={"val":0,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751127470793,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.gain, state={"val":100,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751115330398,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.hue, state={"val":360,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751127198143,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                2 Minuten vorbei → Shelly Ursprungszustand wiederherstellen
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.Switch, state={"val":true,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751127470793,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.effect, state={"val":3,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751127470793,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.gain, state={"val":100,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751115330398,"c":"script.js.common.Test.Skript_5"})
                javascript.0	18:17:50.793	info	
                setForeignState(id=shelly.0.SHRGBW2#EC64C9D3311F#1.lights.hue, state={"val":360,"ack":false,"ts":1751127470793,"q":0,"from":"system.adapter.javascript.0","lc":1751127198143,"c":"script.js.common.Test.Skript_5"})
                
                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active last edited by mickym

                  Ich programmiere in der Regel nicht mit Javascript und benutze auch keinen Shelly-Adapter. Aber wenn Du ein Kommando absetzen willst, dann musst Du den Datenpunkt unbestätigt, als ack=false beschreiben. Wobei das ggf- voreingestellt ist, aber wie gesagt ich programmiere so gut wie gar nicht mehr mit JS.
                  Aber @paul53 kann Dir sicher helfen.

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

                    @mickym Danke....

                    @paul53 kannst du mir das mit dem Tipp erklären, sagen wie und wo im Script es hin muss und in welcher form? Danke schon mal

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Longbow last edited by

                      @longbow Bitte wo soll dieser Thread hin?
                      Ein Visualisierungadapter ist ja wohl nicht beteiligt.
                      statt dessen shelly und Skripte

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

                        @homoran Verschieb ihn halt zu den Javascript

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        855
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

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