Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Mal wieder Rolladenschalter

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Moehn @Asgothian last edited by

      @Asgothian

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
          <variable type="undefined" id="timeout2">timeout2</variable>
        </variables>
        <block type="astro" id="u!cY7yVAZrr76s8zhV`a" x="137" y="-262">
          <field name="TYPE">sunrise</field>
          <field name="OFFSET">0</field>
          <statement name="STATEMENT">
            <block type="debug" id="eRz].h-8!lEoF6n~p0S:">
              <field name="Severity">log</field>
              <value name="TEXT">
                <shadow type="text" id="_?ET9UdjTOqrp9vh:=J8">
                  <field name="TEXT">Rollo hoch</field>
                </shadow>
              </value>
              <next>
                <block type="toggle" id="4,So[=u1/x2b8/eR37nH">
                  <mutation delay_input="false"></mutation>
                  <field name="OID">i2c.0.0x21.A0</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <next>
                    <block type="timeouts_settimeout" id="Kz]$~,z6eZiPTIe%G?QR">
                      <field name="NAME">timeout2</field>
                      <field name="DELAY">15</field>
                      <field name="UNIT">sec</field>
                      <statement name="STATEMENT">
                        <block type="on" id="ws*K^%]MHh5~+t*MyFlM">
                          <field name="OID">i2c.0.0x22.B0</field>
                          <field name="CONDITION">ne</field>
                          <field name="ACK_CONDITION"></field>
                          <statement name="STATEMENT">
                            <block type="debug" id="y4[oNc)GE[*9#Pg=:sFc">
                              <field name="Severity">log</field>
                              <value name="TEXT">
                                <shadow type="text" id="a7w}H@pa[xXdx}ND7V#C">
                                  <field name="TEXT">taster gedrückt bei Rollo aktiv</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="controls_if" id="S!k]Ga%l644oFv9qM8_/">
                                  <value name="IF0">
                                    <block type="get_value" id="1w=UDwj4=`;+:Nn;gGFQ">
                                      <field name="ATTR">val</field>
                                      <field name="OID">i2c.0.0x22.B0</field>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="toggle" id="-,RwV6v{o`ICT.,bYa5]">
                                      <mutation delay_input="false"></mutation>
                                      <field name="OID">i2c.0.0x21.A1</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <next>
                                        <block type="timeouts_cleartimeout" id="zvz;2^To:*jMm0[D]s1k">
                                          <field name="NAME">timeout2</field>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </statement>
                          <next>
                            <block type="toggle" id="+i%;=n$c`4#?zqg+uV3*">
                              <mutation delay_input="false"></mutation>
                              <field name="OID">i2c.0.0x21.A0</field>
                              <field name="WITH_DELAY">FALSE</field>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>[s=]
       
      [/s]
      `
      
      
      ![02ccd940-c413-4db6-8d8b-6942f8270d62-grafik.png](/assets/uploads/files/1581454200843-02ccd940-c413-4db6-8d8b-6942f8270d62-grafik.png) ``Bildschirmfoto 2020-02-11 um 21.49.26.png
      M 1 Reply Last reply Reply Quote 0
      • M
        Moehn @Moehn last edited by

        @Moehn 33bc4bc4-e0fc-4dbe-9c88-630e90337cce-grafik.png Bildschirmfoto 2020-02-11 um 21.49.26.png

        Und hier noch der Screenshot

        Asgothian 1 Reply Last reply Reply Quote 0
        • Asgothian
          Asgothian Developer @Moehn last edited by Asgothian

          @Moehn
          Nein, das geht so nicht:

          • Trigger im Timeout im Astro macht keinen Sinn.
          • Ich denke es ist immer zulässig das Rollo durch einen Druck auf den Knopf anzuhalten ? Wenn ja, dann einfach den trigger block komplett vor den astro setzen.
          • der Stop Timeout 2 ist unnötig, denn wenn der teil des Skriptes läuft ist der timeout schon abgelaufen.
          1 Reply Last reply Reply Quote 0
          • M
            Moehn last edited by

            Hallo

            Du meinst so:

            63aed689-1aea-4820-9beb-cde3ae64ae4f-grafik.png Bildschirmfoto 2020-02-11 um 21.57.08.png

            Wird denn der Taster B0 auch in den 15 Sekunden wo der Ausgang A0 auf wahr steht abgefragt wenn der ganze Block vor der Astrofunktion steht?

            Grüße
            Dirk

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @Moehn last edited by

              @Moehn
              Ja, wird er. Der Schalter wird jederzeit auf einen Tastendruck reagieren wenn das so geschrieben ist.

              Wichtig noch: im "falls objekt"... darfst du den Aktor 0x2 Output A1 nicht "umschalten" sondern du musst ihn auf false setzen (false aus dem Logik Block, nicht "false" aus dem text block.

              Ansonsten schaltest du den Rolladen damit ein und aus.

              A.

              1 Reply Last reply Reply Quote 0
              • M
                Moehn last edited by

                Hallo

                Ich habe an meine iobrokerraspy eine Relaiskarte dran die ich über einen MCP23017 schalte.

                Wenn ich nun das script starte zieht das Relais aber sofort an.

                Ich haben das script nach deiner Anleitung umgeschrieben.
                7db2d2dc-77e9-4bae-bbce-db46a6b0b16d-grafik.png Bildschirmfoto 2020-02-11 um 22.26.59.png

                Grüße
                Dirk

                Asgothian 1 Reply Last reply Reply Quote 0
                • Asgothian
                  Asgothian Developer @Moehn last edited by

                  @Moehn
                  Der Block "umschalten ..." zwischen dem trigger und dem Astro Block muss weg. Der ist dafür verantwortlich, und darf da nicht sein.

                  A.
                  p.s. ich hatte auch nichts davon geschrieben den einzubauen 🙂

                  1 Reply Last reply Reply Quote 0
                  • M
                    Moehn last edited by

                    Hallo

                    Der Block war bei der Umstellung da irgendwie hängengeblieben. Richtig, der macht da keinen SInn.

                    Dann werde ich das morgen früh mal ausprobieren - ich berichte dann.

                    Danke erstmal und gute NAcht.

                    Grüße
                    Dirk

                    1 Reply Last reply Reply Quote 0
                    • M
                      Moehn last edited by

                      Hallo

                      Hallo hier nochmal das aktuelle script.

                      92cfd873-4c14-466c-b1ba-4a688af2393f-grafik.png

                      Es passiert folgendes:
                      Zur eingestellten Astrozeit kommt die Meldung(soll später Rolladen hochfahren): Rollo hoch. Nach ca. 10 Sekunden drücke ich den entsprechenden Taster um den Rollo zu stoppen. Das machte er auch. Aber nach ca. 10 Sekunden zieht das Relais wieder an und bleibt dann dauerhaft an. Wenn ich nun den Taster wieder drücke geht das Relais auch wieder aus.
                      Ich weiß noch von meiner Mikrocontrollerbastelei vor vielen Jahren, das man Taster entprellen muss. Kann es sein, das wie in Zeile 3 und 4 das script damit ein Problem hat und wenn ja wie stelle ich das ab!?

                      09:20:08.743 info javascript.0 (28004) script.js.common.Taster_1: Rollo hoch
                      09:20:08.744 info javascript.0 (28004) script.js.common.Taster_1: Timer läuft
                      09:20:19.517 info javascript.0 (28004) script.js.common.Taster_1: taster gedrückt bei Rollo aktiv
                      09:20:19.722 info javascript.0 (28004) script.js.common.Taster_1: taster gedrückt bei Rollo aktiv
                      09:20:38.746 info javascript.0 (28004) script.js.common.Taster_1: Timer ausBildschirmfoto 2020-02-12 um 09.23.15.png

                      Danke und Grüße
                      Dirk
                      PS: kann erst heute abend weitertesten muss jetzt auch mal Geld verdienen gehen

                      Asgothian 1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @Moehn last edited by Asgothian

                        @Moehn
                        Die Lösung ist einfach und logisch. Wenn der Timeout durchläuft dann schaltest du das Relais um, sprich wenn es an war wird es aus geschaltet, wenn es aus war an.

                        Das ändern in "abschalten" wie auch im Trigger, und alles sollte gut sein.

                        Das gleiche gilt auch für das initial "anschalten" im Astro Zweig. Nicht umschalten, sonder steuern mit "false"

                        Ein Entprell-Problem hast du (glücklicherweise) nicht.

                        Als letztes noch eine Optimierung am Trigger: Wenn du statt "wurde geändert" auf "ist grösser als vorher" reagierst, kannst du das Falls im Trigger löschen, er wird immer nur dann aktiv wenn der Datenpunkt von true auf false wechselt.

                        A.

                        Nachtrag: Ich persönlich mag die "umschalten" Funktion nicht. Es ist immer besser gezielt genau den Wert zu schalten den du erreichen willst, sprich "An" beim anschalten, und "Aus" beim ausschalten. Ansonsten kommt die ganze Logik durch einen von irgendwo her kommenden Wechsel des Ausgangszustandes aus dem Tritt.

                        1 Reply Last reply Reply Quote 0
                        • R
                          R1Snake last edited by

                          Ich empfehle dir Rollershutter als Adapter.

                          Da kannst du Astra und viele andere Einstellungen vornehmen

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

                            @R1Snake sagte in Mal wieder Rolladenschalter:

                            Ich empfehle dir Rollershutter als Adapter.

                            Da kannst du Astra und viele andere Einstellungen vornehmen

                            Meinst du shuttercontrol?

                            1 Reply Last reply Reply Quote 0
                            • R
                              R1Snake last edited by

                              Ah sorry, ja genau den meine ich

                              1 Reply Last reply Reply Quote 0
                              • M
                                Moehn last edited by

                                Hallo

                                Script läuft. Vielen Dank.
                                Jetzt geht es weiter einen normalen Taster zu programmieren.

                                Das Rolladenprogramm hab ich mir eben mal runtergeladen - macht ja eigentlich genau das was ich will. Allerdings muss ich mir dann die Rolladentaster wieder als script schreiben. Aber ich werde mir das mal genauer anschauen.

                                An alle vielen Dank für die Hilfe.

                                Grüße
                                Dirk

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                780
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                4
                                16
                                549
                                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