Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Einfach mal zeigen will….. :-) - Teil 1

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Einfach mal zeigen will….. :-) - Teil 1

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

      Sieht schick aus. Wie hast du das mit der Gruppenbildung von Sonos gemacht?

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by Jey Cee

        Hallo Kirbsi,

        dafür nutze ich ein kleines Skript.

        Basis ist bei mir die Annahme, dass das Wohnzimmer immer mit gruppiert wird. Dies liegt bei mir an der Raumaufteilung, es gibt keine "sinnige" Gruppierung, bei der das Wohnzimmer nicht mit aufgenommen wird.

        Das Skript ist dieses:

        // Bildet Gruppen für Sonos im Vis
        // Führende BOX ist immer "Wohnzimmer"
         // Trigger für Gruppenbildung über 4 Zustände zum Adden der vier Boxen
         createState('Sonos.Gruppen.Esszimmer', false, {
          read: true, 
          write: true, 
          desc: "Trigger Esszimmer", 
          type: "boolean", 
          role: 'state',
        });
        
            createState('Sonos.Gruppen.Kueche', false, {
               name: 'Gruppentrigger',
               dec: 'Kueche zur Gruppe hinzu',
               type: 'boolean',
               role: 'state',
            });
             createState('Sonos.Gruppen.Arbeitszimmer', false, {
               name: 'Gruppentrigger',
               dec: 'Esszimmer zur Gruppe hinzu',
               type: 'boolean',
               role: 'state',
            });
             createState('Sonos.Gruppen.Badezimmer', false, {
               name: 'Gruppentrigger',
               dec: 'Badezimmer zur Gruppe hinzu',
               type: 'boolean',
               role: 'state',
            });
        
            createState('Sonos.Gruppen.String', {
               name: 'String',
               dec: 'Darstellung der gruppeirten Räume',
               type: 'string',
            });
         // IDs festlegen
         var idEssTrigger = "javascript.0.Sonos.Gruppen.Esszimmer"/*Sonos.Gruppen.Esszimmer*/;
        var idKuecheTrigger = "javascript.0.Sonos.Gruppen.Kueche"/*Gruppentrigger*/;
        var idArbeitTrigger = "javascript.0.Sonos.Gruppen.Arbeitszimmer"/*Gruppentrigger*/;
        var idBadTrigger ="javascript.0.Sonos.Gruppen.Badezimmer"/*Gruppentrigger*/;
         // Pfad IDs
         var EssPfad = "sonos.0.root.192_168_2_6.",
            BadPfad = "sonos.0.root.192_168_2_7.",
            WohnPfad = "sonos.0.root.192_168_2_9.",
            ArbeitPfad = "sonos.0.root.192_168_2_8.",
            KuechePfad = "sonos.0.root.192_168_2_10.";
         // Variablen für [vorige] Lautstärke
         var volKuecheOld,
            volBadOld,
            volEssOld,
            volArbeitOld,
            volWohn = getState(WohnPfad+ "volume"/*volume*/).val;               // Variable für Volume Wohnzimmer als Masterlautstärke
          
         // ****************************************************************************
        // GRUPPIERUNGSFUNKTIONEN UND ANGLEICHUNG LAUTSTÄRKE 
        // ****************************************************************************
         // Esszimmer hinzufügen
         on(idEssTrigger, function(obj) {
             volWohn = getState(WohnPfad+ "volume"/*volume*/).val;       // Groupvolume wird vom Wohnzimmer bestimmt, neu einlesen falls zwischenzeitlich geändert
             if (obj.state.val === true) {
                volEssOld = getState(EssPfad +"volume"/*volume*/).val;    // alte Lautstärke speichern
                setState(EssPfad+ "volume", volWohn);                        // Lautstärke an Wohnzimmer anpassen
                setState(WohnPfad+ "add_to_group","192_168_2_6");              // zur Wohnzimmergruppe hinzufügen
            }
                else{   setState(WohnPfad+ "remove_from_group","192_168_2_6");
                        setState(EssPfad+ "volume", volEssOld);           // bei Auflösung alte Lautstärke wieder herstellen
            }
        });
         // Kueche hinzufügen
         on(idKuecheTrigger, function(obj) {
             volWohn = getState(WohnPfad+ "volume"/*volume*/).val;       // Groupvolume wird vom Wohnzimmer bestimmt, neu einlesen falls zwischenzeitlich geändert
             if (obj.state.val === true) {
                volKuecheOld = getState(KuechePfad +"volume"/*volume*/).val;    // alte Lautstärke speichern
                setState(KuechePfad+ "volume", volWohn);                        // Lautstärke an Wohnzimmer anpassen
                setState(WohnPfad+ "add_to_group","192_168_2_10");              // zur Wohnzimmergruppe hinzufügen
            }
                else{   setState(WohnPfad+ "remove_from_group","192_168_2_10");
                        setState(KuechePfad+ "volume", volKuecheOld);           // bei Auflösung alte Lautstärke wieder herstellen
            }
        });
         // Arbeitszimmer hinzufügen
         on(idArbeitTrigger, function(obj) {
             volWohn = getState(WohnPfad+ "volume"/*volume*/).val;       // Groupvolume wird vom Wohnzimmer bestimmt, neu einlesen falls zwischenzeitlich geändert
             if (obj.state.val === true) {
                volArbeitOld = getState(ArbeitPfad +"volume"/*volume*/).val;    // alte Lautstärke speichern
                setState(ArbeitPfad+ "volume", volWohn);                        // Lautstärke an Wohnzimmer anpassen
                setState(WohnPfad+ "add_to_group","192_168_2_8");              // zur Wohnzimmergruppe hinzufügen
            }
                else{   setState(WohnPfad+ "remove_from_group","192_168_2_8");
                        setState(ArbeitPfad+ "volume", volArbeitOld);           // bei Auflösung alte Lautstärke wieder herstellen
            }
        });
         // Badezimmer hinzufügen
         on(idBadTrigger, function(obj) {
             volWohn = getState(WohnPfad+ "volume"/*volume*/).val;       // Groupvolume wird vom Wohnzimmer bestimmt, neu einlesen falls zwischenzeitlich geändert
             if (obj.state.val === true) {
                volBadOld = getState(BadPfad +"volume"/*volume*/).val;    // alte Lautstärke speichern
                setState(BadPfad+ "volume", volWohn);                        // Lautstärke an Wohnzimmer anpassen
                setState(WohnPfad+ "add_to_group","192_168_2_7");              // zur Wohnzimmergruppe hinzufügen
            }
                else{   setState(WohnPfad+ "remove_from_group","192_168_2_7");
                        setState(BadPfad+ "volume", volBadOld);           // bei Auflösung alte Lautstärke wieder herstellen
            }
        });
         // Funktion zum Anpassen der Lautstärke bei gruppierten Räumen
         var volTrigger = "sonos.0.root.192_168_2_9.volume"/*volume*/;
         on({id: volTrigger, change: 'ne'}, function fGroupVol(){
            volWohn = getState("sonos.0.root.192_168_2_9.volume"/*volume*/).val;
            var triggerKueche = getState(idKuecheTrigger).val;
            if(triggerKueche === true){setState(KuechePfad+ "volume", volWohn); }  
        
            var triggerArbeit = getState(idArbeitTrigger).val;
            if(triggerArbeit === true){setState(ArbeitPfad+ "volume", volWohn); }  
        
            var triggerEss = getState(idEssTrigger).val;
            if(triggerEss === true){setState(EssPfad+ "volume", volWohn); } 
        
            var triggerBad = getState(idBadTrigger).val;
            if(triggerBad === true){setState(BadPfad+ "volume", volWohn); }  
         });
        

        Mit Sonos 1.6 ist auch die Funktion "coordinator" möglich. Mein Skript ist aber vorher geschrieben und da es die alten Datenpunkte noch gibt, bleibt es für mich dabei. Never change a running system.

        Neu ist auch Group_Volume, das es vorher nicht gab und ich künstlich nachbaue im Skript.

        1 Reply Last reply Reply Quote 0
        • K
          kirbsi last edited by

          Danke für die schnelle Antwort. Muss ich zu Hause Mal probieren.[SMILING FACE WITH SMILING EYES]

          1 Reply Last reply Reply Quote 0
          • D
            dna909 last edited by

            Moin,

            so. Nach komplettem Redesign, siehts auf meinem Handy nun so aus:

            2269_screenshot_20170802-120958.png 2269_screenshot_20170802-120928.png 2269_screenshot_20170802-120913.png 2269_screenshot_20170802-120831.png 2269_screenshot_20170802-120816.png 2269_screenshot_20170802-120810.png 2269_screenshot_20170802-120747.png 2269_screenshot_20170802-120735.png 2269_screenshot_20170802-120721.png 2269_screenshot_20170802-120658.png 2269_screenshot_20170802-120630.png 2269_screenshot_20170802-120620.png 2269_screenshot_20170802-120610.png 2269_screenshot_20170802-120537.png 2269_screenshot_20170802-120526.png 2269_screenshot_20170802-120450.png

            MfG

            dna909

            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              Hallo,

              sehr schöne Ansichten fürs Smartphone.

              Eine Frage zur Navigation: Ich sehe links und rechts Pfeiltasten. Scrollst du damit durch die Navigationsleiste oder bewirken die Pfeile gleich einen Seitenwechsel?

              Gruß

              Pix

              1 Reply Last reply Reply Quote 0
              • D
                dna909 last edited by

                @pix:

                Hallo,

                sehr schöne Ansichten fürs Smartphone.

                Eine Frage zur Navigation: Ich sehe links und rechts Pfeiltasten. Scrollst du damit durch die Navigationsleiste oder bewirken die Pfeile gleich einen Seitenwechsel?

                Gruß

                Pix ` Hallo Pix,

                Die Pfeile zählen einfach eine Variable hoch und runter. Und die Icons sind dann über den entsprechenden Zustand sichtbar/unsichtbar.

                Hoffe das ist einigermassen verständlich [emoji4]

                Gruß

                dna909

                1 Reply Last reply Reply Quote 0
                • P
                  pix last edited by

                  :idea: Interessante Lösung!

                  1 Reply Last reply Reply Quote 0
                  • A
                    ACE76 last edited by

                    Hallo,

                    nach längerem frickeln und dank der großartigen Community hier (DANKE!) bin ich nun mit Version 1 meiner persönlichen Views fertig und möchte diese hier auch bereitstellen. Als Inspiration und Basis hat mir eHome von Bluefox gedient. Dafür auch vielen Dank an dieser Stelle! 🙂

                    Die Views laufen bei mir auf einem Galaxy Tab A 10.1 (2016) welches voraussichtlich im September einen Wandeinbau spendiert bekommt. Für V2 habe ich bereits einige Ideen im Kopf, die ich zusätzlich bzw als Erweiterung der vorhandenen Views einbinden möchte.

                    Ich hoffe damit auch etwas an die Community zurückgeben zu können und vielleicht andere dabei zu unterstützen ihre eigenen Views zu verwirklichen. Für Fragen und Feedback/Anregungen stehe ich gerne zur Verfügung.

                    2436_1_home_s.jpg
                    2436_2_eg_s.jpg
                    2436_3_wetter_s.jpg
                    2436_4_tanken_s.jpg
                    2436_5_health_s.jpg

                    Viele Grüße

                    Boris

                    1 Reply Last reply Reply Quote 0
                    • A
                      andyb last edited by

                      Schick. Wie hast du denn die schöne Wettervorhersage realisiert? Würdest da mal einen Export liefern?

                      1 Reply Last reply Reply Quote 0
                      • A
                        ACE76 last edited by Jey Cee

                        @andyb:

                        Schick. Wie hast du denn die schöne Wettervorhersage realisiert? Würdest da mal einen Export liefern?

                        Danke und gerne… Ich verwende den "DasWetter" Adapter für die Anzeige des Tages, des Icons, Temperatur und Vorhersagetext. Die Regenwahrscheinlichkeit kommt vom "Weather Underground" Adapter.

                        Über ein Javascript generiere ich eine URL für die Wetter-Icons, die bei mir lokal abgelegt sind. Bei Interesse kann ich dir die Icons und das Script gerne zukommen lassen.

                        Hier der Export des Views:

                        view_wetter.txt

                        1 Reply Last reply Reply Quote 0
                        • A
                          andyb last edited by

                          Danke. Icons und Skript gerne auch….

                          1 Reply Last reply Reply Quote 0
                          • A
                            ACE76 last edited by Jey Cee

                            @andyb:

                            Danke. Icons und Skript gerne auch….

                            Hier das Script…

                             createState('daswetter.WeatherNow', '');
                             createState('daswetter.WeatherSymbol0', '');
                             createState('daswetter.WeatherSymbol1', '');
                             createState('daswetter.WeatherSymbol2', '');
                             createState('daswetter.WeatherSymbol3', '');
                             createState('daswetter.WeatherSymbol4', '');
                             on("daswetter.0.hourly.0d.0h.SymbolID", function(obj) {
                             var symbol = parseInt(obj.newState.val, 10);
                             var temp = '[http://192.168.XXX.XX:8082/vis.0/bluefo … daswetter/](http://192.168.XXX.XX:8082/vis.0/bluefox_ehome/wetter/daswetter/)' + symbol + '.svg';
                             log (temp);
                             setState('daswetter.WeatherNow', temp );
                             });
                             on("daswetter.0.NextDaysDetailed.0d.SymbolID", function(obj) {
                             var symbol = parseInt(obj.newState.val, 10);
                             var temp = '[http://192.168.XXX.XX:8082/vis.0/bluefo ... daswetter/](http://192.168.XXX.XX:8082/vis.0/bluefox_ehome/wetter/daswetter/)' + symbol + '.svg';
                             log (temp);
                             setState('daswetter.WeatherSymbol0', temp );
                             });
                             on("daswetter.0.NextDaysDetailed.1d.SymbolID", function(obj) {
                             var symbol = parseInt(obj.newState.val, 10);
                             var temp = '[http://192.168.XXX.XX:8082/vis.0/bluefo ... daswetter/](http://192.168.XXX.XX:8082/vis.0/bluefox_ehome/wetter/daswetter/)' + symbol + '.svg';
                             log (temp);
                             setState('daswetter.WeatherSymbol1', temp );
                             });
                             on("daswetter.0.NextDaysDetailed.2d.SymbolID", function(obj) {
                             var symbol = parseInt(obj.newState.val, 10);
                             var temp = '[http://192.168.XXX.XX:8082/vis.0/bluefo ... daswetter/](http://192.168.XXX.XX:8082/vis.0/bluefox_ehome/wetter/daswetter/)' + symbol + '.svg';
                             log (temp);
                             setState('daswetter.WeatherSymbol2', temp );
                             });
                             on("daswetter.0.NextDaysDetailed.3d.SymbolID", function(obj) {
                             var symbol = parseInt(obj.newState.val, 10);
                             var temp = '[http://192.168.XXX.XX:8082/vis.0/bluefo ... daswetter/](http://192.168.XXX.XX:8082/vis.0/bluefox_ehome/wetter/daswetter/)' + symbol + '.svg';
                             log (temp);
                             setState('daswetter.WeatherSymbol3', temp );
                             });
                             on("daswetter.0.NextDaysDetailed.4d.SymbolID", function(obj) {
                             var symbol = parseInt(obj.newState.val, 10);
                             var temp = '[http://192.168.XXX.XX:8082/vis.0/bluefo ... daswetter/](http://192.168.XXX.XX:8082/vis.0/bluefox_ehome/wetter/daswetter/)' + symbol + '.svg';
                             log (temp);
                             setState('daswetter.WeatherSymbol4', temp );
                             });
                            

                            Und hier noch die Icons…
                            2436_daswetter.zip

                            1 Reply Last reply Reply Quote 0
                            • 0
                              0018 last edited by

                              Hi ACE76,

                              vielen Dank für deine Views.

                              Wie prüfst du den Online Status deiner Geräte wie zb Fritzbox oder NAS?

                              Mfg

                              1 Reply Last reply Reply Quote 0
                              • arteck
                                arteck Developer Most Active last edited by

                                @0018:

                                Hi ACE76,

                                vielen Dank für deine Views.

                                Wie prüfst du den Online Status deiner Geräte wie zb Fritzbox oder NAS?

                                Mfg `

                                ich schätze wie ich durch Ping

                                1 Reply Last reply Reply Quote 0
                                • Meistertr
                                  Meistertr Developer last edited by

                                  @arteck:

                                  @0018:

                                  Hi ACE76,

                                  vielen Dank für deine Views.

                                  Wie prüfst du den Online Status deiner Geräte wie zb Fritzbox oder NAS?

                                  Mfg `

                                  ich schätze wie ich durch Ping ` Ich mach es durch den tr64 Adapter, den habe ich eh installiert

                                  Gesendet von meinem Handy

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    Ingo last edited by Jey Cee

                                    Hallo zusammen,

                                    ich benutze den Ping-Adapter.

                                    Grüße Ingo
                                    1519_2017-08-21__1_.png

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      ACE76 last edited by

                                      @0018:

                                      Hi ACE76,

                                      vielen Dank für deine Views.

                                      Wie prüfst du den Online Status deiner Geräte wie zb Fritzbox oder NAS?

                                      Mfg `

                                      Ich habe das wie bereits hier vermutet über den PING Adapter gelöst. Sehr einfach zu implementieren. 🙂

                                      Allerdings werfen meine Echo Dots z.B. keinen korrekten Status zurück. Sie werden permanent als offline angezeigt. Hängt vielleicht damit zusammen, dass sie sich nur bei "Alexa" aktivieren?! Weiß jemand dazu vielleicht mehr?

                                      1 Reply Last reply Reply Quote 0
                                      • Meistertr
                                        Meistertr Developer last edited by

                                        so langsam werde ich mit meiner visu auch fertig, jedoch immer kurz vorm ende wird das konzept erneut überarbeitet…

                                        https://youtu.be/YKiX0_cRaQE

                                        1 Reply Last reply Reply Quote 0
                                        • 0
                                          0018 last edited by

                                          @Meistertr:

                                          so langsam werde ich mit meiner visu auch fertig, jedoch immer kurz vorm ende wird das konzept erneut überarbeitet…

                                          https://youtu.be/YKiX0_cRaQE `

                                          Hi,

                                          kannst du mir sagen was das für ein Log ist bei dir in der Übersicht und wo dieser her kommt?

                                          Mfg

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            pix last edited by

                                            @Meistertr:

                                            so langsam werde ich mit meiner visu auch fertig, jedoch immer kurz vorm ende wird das konzept erneut überarbeitet…

                                            https://youtu.be/YKiX0_cRaQE `
                                            Danke fürs Zeigen und für das Video. Das ist nochmal viel einleuchtender.

                                            Pix

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            787
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            133
                                            649
                                            297657
                                            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