Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Lichtsteuerung in VIS

    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

    Lichtsteuerung in VIS

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

      Hallo zusammen,
      ich habe in unserem Haus annähernd 40 Philips-Hue-Lampen, die ich in VIS steuern möchte. Hier ein Screenshot z.B. vom OG:
      Screenshot 2020-11-06 190728.png
      Man tippt auf der Übersicht auf eine Lampe oder einen Bereich und in der rechten Karte kann man dann die Änderungen vornehmen. Die Werte werden über ein JS-Skript übernommen und auch geändert. Das funktioniert schon einmal gut.

      Aber: wie bekomme ich es hin, dass sich die Werte anpassen, wenn sie von extern geändert werden, z.B. der Hue-App?

      Jeder Slider korrespondiert mit einem manuell angelegten Datenpunkt. Ich müsste wahrscheinlich ein Array, z.B. [hue.Lampe1.on, hue.Lampe2.on,...] und dann auswerten, ob es eine Änderung bei dem DP gibt, dessen Werte in der VIS gerade angezeigt werden. Und hier komme ich nicht weiter.

      Habt Ihr eine Idee?

      Danke schon einmal,
      Timo

      M Karel Puhli A 3 Replies Last reply Reply Quote 0
      • M
        MCU @Spampunk last edited by

        @Spampunk Es gibt doch die hue-Adapter:

        2186a207-020f-4cca-b3f1-9b94d78e9d71-image.png
        Installieren und schon hat man die Werte aus der App!

        S 1 Reply Last reply Reply Quote 1
        • S
          Spampunk @MCU last edited by

          @MCU
          Die Info fehlte wahrscheinlich noch: Den Hue-Adapter habe ich natürlich installiert.

          Aber stell dir vor, du hast 40 Lampen, jeweils mit den Datenpunkten "on", "level", "color", usw. In der VIS wird gerade Lampe 7 angezeigt und du möchtest, dass der Slider-Wert sich parallel ändert, wenn du auf deiner Hue-App die Helligkeit dimmst.

          Du musst also alle "level"-DPs beobachten, aber nur der Wert von der Lampe 7 wird auch in den Datenpunkt übertragen, der mit dem Helligkeits-Slider verknüpft ist.

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @Spampunk last edited by

            @Spampunk Problem noch nicht verstanden. Die Werte von Lampe 7 in der VIS sind doch mit der Hue-Instanz verknüpft oder nicht?

            S 1 Reply Last reply Reply Quote 0
            • Karel Puhli
              Karel Puhli @Spampunk last edited by

              @Spampunk

              Das sollte genau so funktionieren. Was hast du bei Polling in der Adapter Einstellung eingetragen?

              1 Reply Last reply Reply Quote 0
              • S
                Spampunk @MCU last edited by Spampunk

                @MCU
                nein, die Logik der VIS ist mit eigenen Datenpunkten verknüpft.
                Screenshot.png

                Damit brauche ich nur einen View anstatt 40, der Rest soll per JS passieren. Wie gesagt, das Anbinden an die Slider der jeweiligen Lampen habe ich schon. Ich muss jetzt nur noch hinbekommen, dass der View sich auch aktualisiert, wenn das Licht der gerade aktiven Lampe von extern geändert, z.B. gedimmt wird. Dann ändert sich ja der .level-DP der entsprechenden Lampe. Aber wie übertrage ich das auf die Object ID, in diesem Fall 0_userdata.0.EigeneDP.MD-VIS.Navigation.OG_Licht_bri?

                Ich benötige also ein Script, das in diesem Fall alle Hue.level-Datenpunkte überwacht. Und wenn etwas bei der Lampe geändert wird, die gerade in VIS aktiv ist, soll der Wert in den DP 0_userdata.0.EigeneDP.MD-VIS.Navigation.OG_Licht_bri übertragen werden. Genau hier komme ich nicht weiter.

                M 1 Reply Last reply Reply Quote 0
                • M
                  MCU @Spampunk last edited by MCU

                  @Spampunk Schick mal die Liste der eigenen DatenPunkte oder ein Bild von der Struktur und die entsprechenden HUE-DatenPunkte, die darin abgebildet werden oder werden sollen.

                  Beispiel Helligkeit:

                  64877e08-14db-4fcf-a6ec-1f2323b8fee1-image.png

                  Oder Level:

                  34233163-109b-42e2-99ec-29eb86c96eab-image.png

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Spampunk @MCU last edited by

                    @MCU
                    Das ist ein super Tipp gewesen! Mit "IDs vom Selektor..." kann ich ein Array bilden - perfekt!

                    Meinen Code habe ich nun entsprechend angepasst, wohl in JS. Hier für den Helligkeitswert:

                    on({id: Array.prototype.slice.apply($("channel[state.id=hue.0.*.bri]")), change: "ne"}, function (obj) {
                        if ((obj.state ? obj.state.from : "") == 'system.adapter.hue.0') {
                        let dp = obj.id.slice(0, obj.id.length - 4);
                        if (dp == getState("0_userdata.0.EigeneDP.MD-VIS.Navigation.OG_LichtView").val) {
                            setState("0_userdata.0.EigeneDP.MD-VIS.Navigation.OG_Licht_bri", obj.state.val);
                        }
                      }
                    });
                    

                    Also vielen Dank, hiermit komme ich nun wieder weiter.

                    1 Reply Last reply Reply Quote 0
                    • A
                      aueland @Spampunk last edited by

                      Moin @spampunk

                      Das sieht total klasse aus, bin auf der Suiche nach einer ansprechenden Lichtsteuerung und vir allem Darstellung hier gelandet. Würdest du eventuell die VIS-views und JSScripte zur Verfügung stellen?

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Spampunk @aueland last edited by Spampunk

                        Moin @aueland
                        Nachdem ich etliche Probleme mit dem Skript hatte, bin ich letztendlich doch wieder dazu übergegangen, für jede Gruppe, bzw. Lampe eine eigene Karte zu erstellen. Das Skript ist somit passé.

                        Die Vis basiert auf Uhulas MDUI Material Design Vorlage. Auszüge aus meiner View könnte ich dir schicken, aber leider nicht alles, da du mit vielen Bindings eh nichts anfangen könntest. Vielleicht sagst du mal, woran du Interesse hast, aber dann bitte per PN.

                        Grüße,
                        Timo

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        820
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        javascript
                        4
                        10
                        1378
                        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