Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script Logik Optimierung für Licht Steuerung

    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

    Script Logik Optimierung für Licht Steuerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TDCroPower @Adnim last edited by

      @Adnim ...

      zu 1:

      "... Warum setzt du den State 2 mal auf Wahr? einmal direkt und einmal nach 5min?..."
      der Osram/Ledvance reagiert manchmal nicht und so fange ich die Kommunikationsprobleme ab, wenn ich einfach nach 5 Minuten erneut versuche ihn auszuschalten.

      "... kannst du nicht nach 23:30 bei Heimkommen einfach zeit gesteuert 30min einschalten?..."
      Ich will eigentlich nicht das sich das Licht nach 23:30 Uhr einschaltet.

      zu 2:

      "... hast du nen State wo du siehst das manuell eingeschaltet wurde?..."
      Soweit ich das sehe gibt dies nicht in den Objekten...
      Bildschirmfoto 2020-06-19 um 13.49.28.png

      "... Wenn nicht musst du prüfen ob die Lampe via Skript oder via Taster eingeschaltet wurde und dann unterschiedliche aktionen lostreten!?..."
      Genau das ist meine Frage, wie und wo ich das am besten steuere!?
      Theoretisch beim einschalten per Script könnte ich einen Datenpunkt setzen, der beim ausschalten abgefragt wird?

      A paul53 2 Replies Last reply Reply Quote 0
      • A
        Adnim @TDCroPower last edited by Adnim

        @TDCroPower sagte in Script Logik Optimierung für Licht Steuerung:

        "... kannst du nicht nach 23:30 bei Heimkommen einfach zeit gesteuert 30min einschalten?..."
        Ich will eigentlich nicht das sich das Licht nach 23:30 Uhr einschaltet.

        ich meine damit das du prüfst ob es nach 23:30 ist und dann das Licht eine weile bei Heimkommen einschaltest.
        Also Licht an + Licht aus zeit verzögert 30min gleichzeitig nach 23:30 dann setzen?oder halt prüfen ob nach 23:30 und dann kein Licht mehr einschalten. oder ich verstehe deine Aufgabenstellung falsch...

        zu 2:
        "... hast du nen State wo du siehst das manuell eingeschaltet wurde?..."
        Soweit ich das sehe gibt dies nicht in den Objekten...
        "... Wenn nicht musst du prüfen ob die Lampe via Skript oder via Taster eingeschaltet wurde und dann unterschiedliche aktionen lostreten!?..."
        Genau das ist meine Frage, wie und wo ich das am besten steuere!?
        Theoretisch beim einschalten per Script könnte ich einen Datenpunkt setzen, der beim ausschalten abgefragt wird?

        ja genau und wenn die Lampe an ist ohne das dein Skript eingeschaltet hat dann ist manuell an, das kannste ja via blocky prüfen.

        1 Reply Last reply Reply Quote 1
        • paul53
          paul53 @TDCroPower last edited by paul53

          @TDCroPower sagte:

          Ich will eigentlich nicht das sich das Licht nach 23:30 Uhr einschaltet.

          Blockly_temp.JPG

          @TDCroPower sagte in Script Logik Optimierung für Licht Steuerung:

          zur Dauerbeleuchtung nutzen, falls man das Licht manuell steuern will.

          Blockly_temp.JPG

          T 1 Reply Last reply Reply Quote 1
          • T
            TDCroPower @paul53 last edited by

            @paul53 danke das sieht gut aus.

            zu 1:
            ist eingebaut, ich nutze im Astrocheck die "Golden Hour", da mir der Zeitpunkt besser gefällt...
            Bildschirmfoto 2020-06-19 um 14.33.47.png

            zu 2:
            ich komm da gerade nicht ganze dahinter wie ich das in meinem Beispiel einbauen kann.
            Wird das zum einschalt oder ausschalt Moment hinzugefügt?

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

              @TDCroPower sagte:

              Wird das zum einschalt oder ausschalt Moment hinzugefügt?

              Als falls-Klammer um alles:
              falls nicht manuell

              T 1 Reply Last reply Reply Quote 1
              • paul53
                paul53 @TDCroPower last edited by

                @TDCroPower sagte:

                ich nutze im Astrocheck die "Golden Hour", da mir der Zeitpunkt besser gefällt...

                Muss dann der Datenpunkt "Nachtcheck" noch zusätzlich ausgewertet werden ?

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

                  @paul53 ...
                  "Als falls-Klammer um alles:
                  falls nicht manuell"

                  • hat noch nicht so recht Klick gemacht, auf was trigger ich denn deine falls Bedingung und welcher "Wert" und "Ursprung" werden dort gesetzt?
                  • das "setze manuell" finde ich komischerweise in der Objektliste bei Blockly nicht, wo hast du das her?

                  "Muss dann der Datenpunkt "Nachtcheck" noch zusätzlich ausgewertet werden ?"

                  • hast Recht, macht dort keinen Sinn mehr und ist entfernt, somit habe ich nur ein UND Operator anstatt die doppel UND Verschachtelung.
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @TDCroPower last edited by paul53

                    @TDCroPower sagte:

                    "Wert" und "Ursprung"

                    Wert und Ursprung sind Eigenschaften des Trigger-Datenpunktes. Man findet sie unter "Trigger"

                    @TDCroPower sagte in Script Logik Optimierung für Licht Steuerung:

                    das "setze manuell" finde ich komischerweise in der Objektliste bei Blockly nicht

                    manuell ist eine selbst erstellte Variable

                    <xml xmlns="https://developers.google.com/blockly/xml">
                      <variables>
                        <variable id="RaKJ([P?@SjE_,fgC*ln">manuell</variable>
                      </variables>
                      <block type="comment" id="c7yyXLmxz7|=z/`=rokJ" x="137" y="37">
                        <field name="COMMENT">Yeelight</field>
                        <next>
                          <block type="on_ext" id="`6l9crvz3C3cmmYX[HWb">
                            <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="}(%qYwJdXJ8l}dGSWlmE">
                                <field name="oid">default</field>
                              </shadow>
                            </value>
                            <statement name="STATEMENT">
                              <block type="variables_set" id="sildTX1OG~9ks0OI7W4z">
                                <field name="VAR" id="RaKJ([P?@SjE_,fgC*ln">manuell</field>
                                <value name="VALUE">
                                  <block type="logic_operation" id="hg1?}4;+pul#a[6VWj1e" inline="false">
                                    <field name="OP">AND</field>
                                    <value name="A">
                                      <block type="on_source" id="/uA]`zP3uiF[==!$bK,s">
                                        <field name="ATTR">state.val</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_compare" id="Aw8sFj*$|v[b$)q_fI|3">
                                        <field name="OP">NEQ</field>
                                        <value name="A">
                                          <block type="on_source" id="+DWHUEw0E=W|8wnlDu`_">
                                            <field name="ATTR">state.from</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="iw?GmVwAx-ME{Fg7W*NI">
                                            <field name="TEXT">system.adapter.javascript.0</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </xml>
                    

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

                      @paul53 sorry falls ich mich falsch ausgedrückt habe, die Trigger Werte finde ich und nutze ich schon in einigen Scripten.
                      Suche aber dein "setze "manuell" auf...", das finde ich nirgendwo und erst recht nicht in der Triggerfarbe.

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

                        @TDCroPower sagte:

                        das finde ich nirgendwo und erst recht nicht in der Triggerfarbe.

                        Es ist kein Trigger, sondern eine Variable, die leider die gleiche Farbe hat. Man muss erst oben klicken, um eine Variable zu erstellen, bevor man sie verwenden kann.

                        Blockly_temp.JPG

                        T 1 Reply Last reply Reply Quote 1
                        • T
                          TDCroPower @paul53 last edited by

                          @paul53 danke für den Hinweis, ja die Farbwahl ist wirklich unvorteilhaft um es gut nach vollziehen zu können.

                          Bleibt nur noch die Frage wie ich das in mein Beispiel implementiere.
                          Ich habe die Logik leider nicht verstanden, wie ich das gegen meinen Bewegungssensor halten kann.

                          Kannst du mir vielleicht einen weiteren Tipp geben um es besser zu verstehen?

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

                            @TDCroPower sagte:

                            nicht verstanden, wie ich das gegen meinen Bewegungssensor halten kann.

                            Die Variable manuell wird true, wenn das Licht einschaltet (Wert = true) wird, die Quelle für die Wertänderung aber nicht die Javascript-Instanz ist. Mit der Auswertung der Variablen manuell muss das Schalten durch den BWM verhindert werden.

                            Blockly_temp.JPG

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

                              @paul53 ich glaube ich habe es jetzt umsetzen können.
                              Siehst du da vielleicht noch einen Fehler?

                              Zunächst habe ich einen Datenpunkt mit default "false" erstellt...
                              Bildschirmfoto 2020-06-24 um 12.53.29.png

                              Und dann deine Trigger Logik vor der BWM Abfrage gesetzt und im Ausschaltzustand die Abfrage auf die "manuell" Funktion hinzugefügt...
                              Bildschirmfoto 2020-06-24 um 12.53.47.png

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

                                @TDCroPower sagte:

                                Siehst du da vielleicht noch einen Fehler?

                                Ja, der Datenpunkt "Kueche_manuell" ist zu viel. Der Vergleichswert für Ursprung muss der String "system.adapter.javascript.0" sein.

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

                                  @paul53 ah ok, dachte das wäre lediglich ein Platzhalter mit dem Textfeld.
                                  Was macht denn das Textfeld in diesem Moment?

                                  Hier noch die aktuelle Version...
                                  Bildschirmfoto 2020-06-24 um 13.02.38.png

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

                                    @TDCroPower sagte:

                                    Was macht denn das Textfeld in diesem Moment?

                                    Das ist der Vergleichswert, der nicht erfüllt sein darf (ungleich). Bau einen Debug-Block mit Ausgabe von Ursprung ein, dann siehst Du es.

                                    T 1 Reply Last reply Reply Quote 1
                                    • T
                                      TDCroPower @paul53 last edited by

                                      @paul53 aha, der hat im Ursprung wer ihn gesteuert hat...

                                      Bildschirmfoto 2020-06-24 um 13.12.48.png

                                      Hier habe ich die yeelight 1x über die Objektliste und 1x per Taster geschaltet...
                                      Bildschirmfoto 2020-06-24 um 13.14.55.png

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

                                        @TDCroPower
                                        So kannst Du es vollständig verfolgen:

                                        Blockly_temp.JPG

                                        T 1 Reply Last reply Reply Quote 1
                                        • T
                                          TDCroPower @paul53 last edited by

                                          @paul53 ich glaube jetzt habe ich. Ich musste auch beim einschalten auf die Funktion prüfen, da ich verschiedene Helligkeitsstufen für Taster und Bewegungserkennung habe.
                                          Im Debug Output sieht es soweit gut aus und das Licht schaltet genauso wie ich es mir gewünscht habe.

                                          Lediglich die if Bedingung vom einschalten ist jetzt ziemlich gewachsen mit 2x UND und 1x ODER oder 😁

                                          Bildschirmfoto 2020-06-24 um 13.36.00.png
                                          Bildschirmfoto 2020-06-24 um 13.36.09.png

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

                                            @TDCroPower sagte:

                                            die if Bedingung vom einschalten ist jetzt ziemlich gewachsen mit 2x UND und 1x ODER oder

                                            Hättest Du eine große Klammer "falls nicht manuell" darum gemacht, wäre es einfacher gewesen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            988
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            24
                                            2830
                                            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