Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. "Badfenster offen" funktioniert nur teilweise

    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

    "Badfenster offen" funktioniert nur teilweise

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

      @paul53
      Ich wäre nie darauf gekommen, dass durch das öffnen des zweiten Fensters das Programm nochmal gestartet wird und sich nicht mehr stoppen lässt....
      Aus diesem Grund habe ich eigentlich "sonst falls" -> "Fensterkontakte auf TRUE" damit, wenn die Fenster zu sind, das ganze gestoppt wird.
      Ist aber wohl ein Denkfehler.

      @Thomas4170
      Zu deiner Frage "sonst falls" siehe oben. Ich übergebe - aus Spass - die Außentemperatur, daher nur ein Wert.
      Du benutzt bei Dir "TIMEOUT" ich bzw. @paul53 hat "Intervall". Komme ich mit beiden ans Ziel?

      Und Danke für die schnelle Hilfe! Ich habe es jetzt aktuell so...

      Bildschirmfoto 2021-11-06 um 20.42.06.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="interval" id="Intervall">Intervall</variable>
        </variables>
        <block type="on_ext" id="|dH|olOMYVn~H%Jn|nyS" x="-487" y="-87">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="Nk5ABz@dhUhd8bYqb7IE">
              <field name="oid">zigbee.0.00158d0006d416f7.opened</field>
            </shadow>
          </value>
          <value name="OID1">
            <shadow type="field_oid" id="bR^W?^XUx~f2ep-bReP.">
              <field name="oid">zigbee.0.00158d0006d6892c.opened</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="]6NmY5Arm*oC(/C4C9fx">
              <mutation else="1"></mutation>
              <value name="IF0">
                <block type="logic_operation" id="?9`npQFK0yr$J{g7m,qy" inline="false">
                  <field name="OP">OR</field>
                  <value name="A">
                    <block type="logic_compare" id="ir8%O$UIa_2vun^eR:gs">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="-#)apV4ko?9bjc34q,cp">
                          <field name="ATTR">val</field>
                          <field name="OID">zigbee.0.00158d0006d416f7.opened</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="E_QD2`tR^rij]xRveiSk">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_compare" id="fIzAp1iVwg3QXon;T]eV">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="K;LAH/JOXy:Pz2gWPtw8">
                          <field name="ATTR">val</field>
                          <field name="OID">zigbee.0.00158d0006d6892c.opened</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="f,3g-P=S_+71(~v9@)Q9">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="controls_if" id="WdB*x=Yb1s5`s%1;8sb8">
                  <value name="IF0">
                    <block type="logic_operation" id="=!,%0^7{Nr,#RGpgyjbO" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="oAm7uGv*1hz~!d7h.+7|">
                          <field name="OP">LT</field>
                          <value name="A">
                            <block type="get_value" id="4Q+ym)29|XcJ)|[}nB^e">
                              <field name="ATTR">val</field>
                              <field name="OID">weatherunderground.0.forecast.current.temp</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="=DyNr]:#+Kvba%|LYfs%">
                              <field name="NUM">15</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_negate" id="#rF.Zz_,)nYa)iDBk9y+">
                          <value name="BOOL">
                            <block type="variables_get" id="-NmcPMz/A)TI;vo+w:KC">
                              <field name="VAR" id="Intervall" variabletype="interval">Intervall</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="timeouts_setinterval" id="7%/Ll?G,CpruwYL_;RTc">
                      <field name="NAME">Intervall</field>
                      <field name="INTERVAL">15</field>
                      <field name="UNIT">min</field>
                      <statement name="STATEMENT">
                        <block type="control" id="l/2nAsk,Yq0HEsysAzGu">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">alexa2.0.Echo-Devices.G090U50990850U2X.Commands.speak-volume</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="math_number" id="Pi-hhOCBN(6E`C7=3fS1">
                              <field name="NUM">20</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="j*|p}Jx{9cW6+-.IqSSx">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">alexa2.0.Echo-Devices.G090U50990850U2X.Commands.speak</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">1000</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="text_join" id="!xmEaZVK3x;(p,#-.3~y" inline="false">
                                  <mutation items="3"></mutation>
                                  <value name="ADD0">
                                    <block type="text" id="c:zqL~*PW9u]u6e8a$*1">
                                      <field name="TEXT">Achtung, im Bad ist seit 15 Minuten ein Fenster offen und die Außentemperatur beträgt </field>
                                    </block>
                                  </value>
                                  <value name="ADD1">
                                    <block type="get_value" id="Fv;Xty[=-uMXc3v@U?%)">
                                      <field name="ATTR">val</field>
                                      <field name="OID">weatherunderground.0.forecast.current.temp</field>
                                    </block>
                                  </value>
                                  <value name="ADD2">
                                    <block type="text" id="MUm7dd#|B~9ZAMH}qLZM">
                                      <field name="TEXT"> Grad.</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <next>
                                <block type="whatsapp-cmb" id=".IiKmKd(09qzP}**y#S|">
                                  <field name="INSTANCE"></field>
                                  <field name="LOG"></field>
                                  <value name="MESSAGE">
                                    <shadow type="text" id="GXbO@][G8;9C9qXL#jMx">
                                      <field name="TEXT">Badfenster offen!</field>
                                    </shadow>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </statement>
                </block>
              </statement>
              <statement name="ELSE">
                <block type="timeouts_clearinterval" id="g!d_u2QD0J@cFB#%4,@-">
                  <field name="NAME">Intervall</field>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      
      1 Reply Last reply Reply Quote 0
      • Thomas4170
        Thomas4170 last edited by

        Ich habe timeout nur hastig genommen. Timeout wäre eine Verzögerung für das Senden.

        H 1 Reply Last reply Reply Quote 0
        • H
          hertob81 @Thomas4170 last edited by

          @thomas4170 sagte in Hinweis "Badfenster offen" funktioniert nur teilweise:

          @hertob81
          Moin, so wie ich das sehe übergibst Du ja auch nur einen Wert in der Benachrichtigung.
          Warum brauchst Du "sonst falls" ?

          09aaea05-e65f-4c4e-a588-fb854102fe3c-grafik.png

          Für mich erscheint das logischer

          Verständnissfrage:
          Warum packst Du das "STOP" oben rein, und nicht ganz unten?

          paul53 1 Reply Last reply Reply Quote 0
          • H
            hertob81 @Thomas4170 last edited by

            @thomas4170 sagte in Hinweis "Badfenster offen" funktioniert nur teilweise:

            Ich habe timeout nur hastig genommen. Timeout wäre eine Verzögerung für das Senden.

            Ah okay, dann ist Intervall okay?

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

              @hertob81 sagte: Warum packst Du das "STOP" oben rein

              Damit wird bei jeder Änderung eines Fensters gestoppt und bei Öffnen eines Fensters das Intervall neu gestartet. Unterschied: In meinem Vorschlag läuft das bereits gestartete Intervall weiter.

              H 1 Reply Last reply Reply Quote 0
              • Thomas4170
                Thomas4170 last edited by Thomas4170

                Ich habe auch ein Blockly mit "Fenster länger als 20 min. auf dann Heizung auf 18 °C" Den Stop hatte ich auch am Ende und mal das Skipt und mal nicht. Irgendwo habe ich mal gesehen das es besser ist. Seitdem läuft es auch ohne Probleme. Ich bin allerdings auch nicht so fit mit Blockly und noch fleißig am dazulernen. Paul ist sicherlich professioneller.

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

                  @thomas4170 sagte in Hinweis "Badfenster offen" funktioniert nur teilweise:

                  Irgendwo habe ich mal gesehen das es besser ist

                  weil sonst bei gleichem Trigger der Timeot ein zweites mal gestartet wird, was dazu führt, dass er nicht mehr gestoppt werden kann.
                  Deswegen muss der laufende Timeout vor einem erneuten Start erst gestoppt werden.

                  Thomas4170 1 Reply Last reply Reply Quote 1
                  • Thomas4170
                    Thomas4170 @Homoran last edited by

                    @homoran

                    Cool danke, jetzt kenne ich den Grund 👍

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

                      @paul53 sagte in Hinweis "Badfenster offen" funktioniert nur teilweise:

                      @hertob81 sagte: Warum packst Du das "STOP" oben rein

                      Damit wird bei jeder Änderung eines Fensters gestoppt und bei Öffnen eines Fensters das Intervall neu gestartet. Unterschied: In meinem Vorschlag läuft das bereits gestartete Intervall weiter.

                      Danke für die Info, habe es ein paar Mal lesen müssen bevor ich es verstanden habe.

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        hertob81 @hertob81 last edited by

                        @paul53 oder @Homoran

                        Könntet Ihr bitte kurz da drauf schauen, ich verstehe nicht, warum ich keine Meldung erhalte. Ich habe das Skript oben kopiert aber so modifiziert, dass im Kinderzimmer die Innentemperatur mit abgefragt werden soll:
                        Wenn das Fenster offen ist UND die Innentemperatur unter 21 °C fällt soll die Meldung abgesetzt werden, jedoch nur zwischen 7.00 Uhr und 19.00 Uhr.
                        Wie gesagt, es passiert nix:

                        Bildschirmfoto 2021-11-21 um 10.13.20.png

                        Danke euch!

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

                          @hertob81 sagte in "Badfenster offen" funktioniert nur teilweise [GELÖST]:

                          Wie gesagt, es passiert nix:

                          dann setz mal debug Bausteine an die kritischen Stellen um zu sehen wo es hängt

                          1 Reply Last reply Reply Quote 0
                          • J
                            JoergH @hertob81 last edited by

                            @hertob81

                            Wie oft sendet denn der Thermostat die Temperatur? Wenn der nur alle 10 Minuten oder so sendet, dann kann das natürlich ewig dauern bis alle Bedingungen erfüllt sind...

                            H 1 Reply Last reply Reply Quote -1
                            • H
                              hertob81 @JoergH last edited by

                              @joergh und @Homoran

                              Ich habe den Fehler entdeckt, siehe screenshot:

                              Bildschirmfoto 2021-11-21 um 10.37.26.png

                              Jetzt kommt die Meldung, allerdings auch noch, wenn ich das Fenster geschlossen habe.
                              Ich vermute, das Skript wird noch über die Raumtemperatur getriggert.

                              Für mein Verständnis benötige ich noch eine Bedingung, dass das Skript nicht mehr getriggert wird, sobald das Fenster zu ist, auch wenn die Temperatur im Ruam immernoch unter dem Schwellwert liegt, richtig?

                              @JoergH: Es ist ein Xiaomi Aquara Sensor, der meldet sich sobald sich die Temperatur ändert.

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

                                @hertob81 sagte in "Badfenster offen" funktioniert nur teilweise [GELÖST]:

                                Für mein Verständnis benötige ich noch eine Bedingung, dass das Skript nicht mehr getriggert wird, sobald das Fenster zu ist, auch wenn die Temperatur im Ruam immernoch unter dem Schwellwert liegt, richtig?

                                richtig. Dein sonst bezieht sich nur auf die Uhrzeit

                                1 Reply Last reply Reply Quote 0
                                • J
                                  JoergH @hertob81 last edited by

                                  @hertob81 Ja, stimmt. Logisch. Er hat ja nur das Skript beim Öffnen ausgeführt und nicht wenn sich danach die Temperatur ändert...🤦‍♂️

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    hertob81 @JoergH last edited by hertob81

                                    @Homoran

                                    Sollte das schon die Lösung sein?

                                    Bildschirmfoto 2021-11-21 um 11.36.45.png

                                    Für den Trigger "Zeit" benötige ich kein weiteres "sonst", oder?

                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      hertob81 @hertob81 last edited by hertob81

                                      @Homoran @paul53 @JoergH

                                      Mittlerweile habe ich einen weiteren Türsensor an das zweite Fenster angebracht.
                                      Durch den Debug Output erkenne ich, dass das Programm bzw. der Intervall beendet wird, wenn ich das zweite Fenster öffne.
                                      Im Klartext: EIN Fenster auf-> Meldung kommt ordnungsgemäß
                                      BEIDE Fenster auf -> keine Meldung

                                      Ich verstehe es nicht...

                                      Bildschirmfoto 2021-11-27 um 13.06.46.png

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

                                        @hertob81 sagte: Intervall beendet wird, wenn ich das zweite Fenster öffne.

                                        Dann stimmt etwas in der Datenpunkt-Zuordnung der ODER-Verknüpfung nicht. Verwende eindeutige Namen, dann passiert so etwas nicht!

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

                                          @paul53
                                          Okay, ich schau mir das später an wenn ich daheim bin, aber ich kann fast nicht glauben, dass mir der Fehler zweimal (in beiden Kinderzimmer) passiert ist.
                                          Ich habe auch noch nicht verstanden wie ich die Punkte umbenennen kann. Also dass das nicht nur "isopen" steht sondern z.b "ManuelTuerIsOpen" oder so ähnlich.

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

                                            @paul53

                                            Ich bin jetzt etwas schlauer, habe aber noch keinen Lösungsansatz.
                                            Es sind auf jeden Fall die richtigen Datenpunkte verwendet.
                                            Wenn ich ein Fenster öffne, wird dies erkannt, die Uhrzeit geprüft, dann die Temperatur geprüft (Wert kleiner 21) -> Meldung erfolgt.
                                            Wenn ich jetzt das zweiter Fenster öffne, wird auch dies erkannt, die Uhrzeit geprüft, ABER DANN springt das Programm direkt zu "Intervall Ende". Er prüft also bei zweiten öffnen des Fensters die Raumtemperatur nicht mehr.

                                            Ideen?

                                            javascript.0	2021-11-27 17:09:17.855	info	(21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Manuel Intervall Ende
                                            javascript.0	2021-11-27 17:09:17.855	info	(21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Zeit zwischen 7 und 19
                                            javascript.0	2021-11-27 17:09:17.854	info	(21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Objekt erkannt
                                            javascript.0	2021-11-27 17:09:13.346	info	(21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Manuel Fenster auf und Temp. kleiner 21
                                            javascript.0	2021-11-27 17:09:13.345	info	(21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Zeit zwischen 7 und 19
                                            javascript.0	2021-11-27 17:09:13.345	info	(21220) script.js.common.Sicherheit.Manuel_Fenster_Offen: Objekt erkannt
                                            

                                            Bildschirmfoto 2021-11-27 um 17.11.25.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            822
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            29
                                            1584
                                            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