Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Mehrere States vergleichen

    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

    Mehrere States vergleichen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Hallo zusammen,

      nachdem hier im Forum nach der Ansteuerung des HomematicIP Wandschalters mit LED-Anzeige (HmIP-BSL) gefragt wurde hatte ich endlich meinen erst einmal provisorisch in Betrieb genommen.

      Zusammen mit dem neuen Adapter Trashschedule kam mir die Idee ihn zum anzeigen der nächsten Leerung zu nutzen:
      Müll_Lampe.png

      on({id: new RegExp('Systemvariablen\\.0\\.Muellkalender\\.blaueTonne_aktiv' + "|" + 'Systemvariablen\\.0\\.Muellkalender\\.gelbeTonne_aktiv' + "|" + 'Systemvariablen\\.0\\.Muellkalender\\.graueTonne_aktiv' + "|" + 'Systemvariablen\\.0\\.Muellkalender\\.brauneTonne_aktiv'), change: "ne"}, function (obj) {
         if (getState("Systemvariablen.0.Muellkalender.blaueTonne_aktiv").val == true) {
         setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", 1);
       } else if (getState("Systemvariablen.0.Muellkalender.gelbeTonne_aktiv").val == true) {
         setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", 6);
       } else if (getState("Systemvariablen.0.Muellkalender.graueTonne_aktiv").val == true) {
         setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", 5);
       } else if (getState("Systemvariablen.0.Muellkalender.brauneTonne_aktiv").val == true) {
         setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", 2);
       } else {
         setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", 0);
       }
      });
      

      Das scheint auch im Normalfall soweit zu klappen.

      Jetzt fiel mir ein, dass in besonderen Wochen mit Feiertagen) es vorkommen kann, dass ZWEI Tonnen an einem Tag abgeholt werden.

      Ich habe jetzt keine Lust alle Permutationen bei jedem Falls durchzuspielen.

      Gibt es da eine einfachere Möglichkeit?

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Homoran last edited by

        @Homoran sagte:

        ZWEI Tonnen an einem Tag abgeholt werden

        Sollen dann 2 LEDs leuchten ? Eine LED hat ja nur 7 Farben bei 16 möglichen Zuständen der Mülltonnenabholung.

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

          @paul53 sagte in Mehrere States vergleichen:

          Sollen dann 2 LEDs leuchten ? Eine LED hat ja nur 7 Farben bei 16 möglichen Zuständen der Mülltonnenabholung.

          Ja - so ist es. Ich hatte gehofft, dass man die Mischen kann, aber AND und OR bringen da nicht wirklich was

          Das ist eine Frage zu der ich mich noch nicht entschieden habe. Aber wenn es Sachzwänge gibt 😉

          Der Schalter sollte im Flur für die Beleuchtung des Gäste-WC eingesetzt werden
          Die obere LED sollte eigentlich auf rot gesetzt werden, wenn das Licht angemacht wird.

          Daher dachte ich entweder im unteren Teil eine Farbe, in diesem Fall vielleicht weiß, sozusagen als "undefined" oder in der Luxusvariante ein Farbwechsel (:duckundwech:)

          EDIT:
          LED_Taster.png

          Morgen wird Altpapier abgeholt und ein Gast ist simuliert

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Homoran last edited by

            @Homoran sagte:

            ein Farbwechsel

            Blockly_temp.JPG

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

              @paul53
              Nee, nich?
              ein typischer Paul

              Danke erstmal.
              Nicht dass ich das auf Anhieb verstehe, da lern ich mich mal durch.

              Homoran 1 Reply Last reply Reply Quote 0
              • H
                hukio last edited by

                @Homoran
                Ich hätte einen anderen systematischen Vorschlag. Ordne jeder Tonne eine Primzahl zu: 1, 3, 5, 7 oder Null, wenn die Tonne nicht in Frage kommt. Dann kannst Du der jeweiligen Summe (z.B. 3+5=8 für Tonne 2 und 3) hier 8 eine Farbe oder LED Kombination zuordnen. Dies ist übersichtlich und kann leicht geändert werden.
                Gruß
                HUK

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

                  @Homoran sagte in Mehrere States vergleichen:

                  Nicht dass ich das auf Anhieb verstehe, da lern ich mich mal durch.

                  @paul53
                  Ich glaube ich ahne was da ablaufen soll.

                  Aber es läuft nicht 😞

                  es wechselt nur einmalig.
                  Habe zusätzlicher zur blauen bei allen Tonnen den state mal testweise auf true gesetzt.

                  Habe auch mal mit 2, 5, und 10 Sekunden timeout versucht.

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Homoran last edited by

                    @Homoran sagte:

                    es wechselt nur einmalig.

                    Poste mal den Javascript Code.

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

                      @paul53

                      gerne;

                      var Tonne1, Tonne2, Wechsel, Intervall;
                      
                      
                      on({id: new RegExp('Systemvariablen\\.0\\.Muellkalender\\.blaueTonne_aktiv' + "|" + 'Systemvariablen\\.0\\.Muellkalender\\.gelbeTonne_aktiv' + "|" + 'Systemvariablen\\.0\\.Muellkalender\\.graueTonne_aktiv' + "|" + 'Systemvariablen\\.0\\.Muellkalender\\.brauneTonne_aktiv'), change: "ne"}, function (obj) {
                          Tonne1 = 0;
                        Tonne2 = 0;
                        Wechsel = false;
                        if (getState("Systemvariablen.0.Muellkalender.blaueTonne_aktiv").val == true) {
                          Tonne1 = 1;
                        }
                        if (getState("Systemvariablen.0.Muellkalender.gelbeTonne_aktiv").val == true) {
                          if (Tonne1) {
                            Tonne2 = 6;
                            Tonne1 = 6;
                          }
                        }
                        if (getState("Systemvariablen.0.Muellkalender.graueTonne_aktiv").val == true) {
                          if (Tonne1) {
                            Tonne2 = 5;
                            Tonne1 = 5;
                          }
                        }
                        if (getState("Systemvariablen.0.Muellkalender.brauneTonne_aktiv").val == true) {
                          if (Tonne1) {
                            Tonne2 = 2;
                            Tonne1 = 2;
                          }
                        }
                        if (Tonne2) {
                          Intervall = setInterval(function () {
                            if (Wechsel) {
                              setState("hm-rpc.1.001A58A9A27EC9.12.LEVEL", 100);
                              setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", Tonne2);
                            } else {
                              setState("hm-rpc.1.001A58A9A27EC9.12.LEVEL", 100);
                              setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", Tonne1);
                            }
                            Wechsel = !Wechsel;
                            console.log(Wechsel);
                          }, 30000);
                        } else {
                          (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                          setState("hm-rpc.1.001A58A9A27EC9.12.LEVEL", 100);
                          setState("hm-rpc.1.001A58A9A27EC9.12.COLOR", Tonne1);
                        }
                      });
                      
                      on({id: "hm-rpc.1.001A58A9A27EC9.3.STATE", change: "ne"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        if (getState("hm-rpc.1.001A58A9A27EC9.3.STATE").val == true) {
                          setState("hm-rpc.1.001A58A9A27EC9.8.COLOR", 4);
                          setState("hm-rpc.1.001A58A9A27EC9.8.LEVEL", 100);
                        } else {
                          setState("hm-rpc.1.001A58A9A27EC9.8.COLOR", 0);
                        }
                      });
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Homoran last edited by

                        @Homoran
                        In den Abfragen "falls Tonne1" fehlt das "sonst". Tonne1 erhält so den gleichen Wert wie Tonne2.

                        Homoran 2 Replies Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @paul53 last edited by

                          @paul53
                          Danke, prüfe ich sofort!

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

                            @paul53

                            Das wars - Danke
                            Wegen C&P war es dann ein systematischer Fehler.

                            Was sagst du denn als Hüter des DC dazu?
                            geht das gut?

                            paul53 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @Homoran last edited by

                              @Homoran sagte in Mehrere States vergleichen:

                              DC

                              Mit 30 s Zykluszeit könnte es noch klappen ?

                              Homoran 2 Replies Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @paul53 last edited by

                                @paul53

                                Danke!

                                ich mach mal den Crashtest mit 3 Sekunden und sehe zu wie schnell er volläuft.

                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Homoran last edited by paul53

                                  @Homoran sagte:

                                  DC

                                  Du sendest jedesmal den LEVEL mit. Wird der LEVEL im gleichen Telegramm übertragen wie COLOR ? Wenn nicht, treibt das zusätzliche Senden von LEVEL im Intervall den DC hoch.

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

                                    @paul53

                                    Da liegst du verdammt gut.
                                    ca. 45% in 3 Minuten bei Wechsel alle 3 Sekunden

                                    Werde ich nachher nochmal mit 30 Sekunden machen wenn der DC wieder runter ist.

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Homoran last edited by

                                      @Homoran
                                      Muss man jedesmal zusammen mit COLOR auch den LEVEL mitgeben ? Wenn nicht, dann mache es besser so:

                                      Blockly_temp.JPG

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

                                        @paul53 sagte in Mehrere States vergleichen:

                                        Muss man jedesmal zusammen mit COLOR auch den LEVEL mitgeben ?

                                        Wahrscheinlich nicht.
                                        Aber erst dachte ich mein Programm läuft nicht, bis ich merkte das der Level auf 0 stand.

                                        @paul53 sagte in Mehrere States vergleichen:

                                        Wenn nicht, dann mache es besser so:

                                        Einmalig muss reichen.
                                        Ich werde den Schalter wahrscheinlich sowieso in das Nacht_dimm Programm einbinden und nachts auf x Prozent dimmen. Dann wird es spätestens zu diesen Zeitpunkten einen Level ungleich 0 bekommen

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        774
                                        Online

                                        31.9k
                                        Users

                                        80.3k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        18
                                        518
                                        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