Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. (gelöst) Erster Versuch in Blockly

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    (gelöst) Erster Versuch in Blockly

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

      Hallo, ich versuche gerade die Blocky Programmierung zu verstehen. Mein erster Script funktioniert nach vielem Probieren immer noch nicht. Das Licht soll eingeschaltet werden innerhalb einer bestimmten Uhrzeit und wenn der Dämmerungssensor einen gewissen Lichtwert erreicht sowie der Bewegungssensor (beim Betreten des Raumes) anspricht. Es handelt sich also um drei Bedingungen, die erfüllt sein müssen. Aber das mag Blockly wohl nicht?

      1882_blockly_bewegung.jpg

      Ev. kann mir jemand helfen?

      1 Reply Last reply Reply Quote 0
      • rantanplan
        rantanplan last edited by

        @Matten:

        Es handelt sich also um drei Bedingungen, die erfüllt sein müssen. Aber das mag Blockly wohl nicht?

        Ev. kann mir jemand helfen? `

        Hallo Matten

        Blockly mag noch nicht genug, aber schon eine ganze Menge. 😉

        Damit ein Blockly/Script startet, braucht es ein Ereignis (Änderung eines Datenpunktes oder Zeitpunkt usw.)

        Das nennt man "triggern".

        Ein Trigger ist also immer der äußere Rahmen.

        Wenn die Bedingung eines Triggers erfüllt wird, wird alles innerhalb des Triggers, einmalig, ausgeführt.

        Falls der Screenshot Dein ganzes Blockly darstellt, passiert da folgendes.

        Du startest das Script.

        Das überprüft den Zeitraum und die Helligkeit und macht…..gar nichts.

        Aber Du hast auch zwei Trigger in der "Falls-Abfrage".

        Die sind, solange das Script läuft, aktiv!

        Also JEDESMAL wenn "Sensor" wahr ist geht das Licht an und bei unwahr wieder aus.

        Der Zeitraum und die Helligkeit ist für das Blockly völlig egal. Das wurde ja schon abgeabeitet und interessiert nicht mehr.

        Du must also umgekehrt arbeiten.
        147_beispiel_matten.png

        Hier der Export:

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="K!sci*{NQzk@Bz^;F[UO" x="-537" y="-287"><field name="COMMENT">Hier Sensor Motion triggern</field>
        <next><block type="on" id="XUrWd}9#^Va1(0a#ZNN1"><field name="OID">Object ID</field>
        <field name="CONDITION">ne</field>

            <statement name="STATEMENT"><block type="comment" id="r~^E^c-Cou6;r?;KUd`b"><field name="COMMENT">Wenn Bewegung erkannt</field>
                <next><block type="controls_if" id="STFO[,VcpV]lY*?C%Rn?"><mutation else="1"></mutation>
                    <value name="IF0"><block type="logic_compare" id="Fywuti(s[Z!#R9,JpF-Z"><field name="OP">EQ</field>
                        <value name="A"><block type="get_value" id="{QJ]r@C1eq!Z*%}7UC0I"><field name="ATTR">val</field>
                            <field name="OID">ID auswählen</field></block></value> 
                        <value name="B"><block type="logic_boolean" id="l?}J6KrWD8?|20h{??_b"><field name="BOOL">TRUE</field></block></value></block></value> 
                    <statement name="DO0"><block type="comment" id="Q;iev{6ZcQiGi[D]@*xz"><field name="COMMENT">Bedingungen abfragen</field>
                        <next><block type="controls_if" id="XP/m7.U8*tU)U``^D[5*"><value name="IF0"><block type="logic_operation" id="X!xHu--ZLypAk@I5v7]@"><field name="OP">AND</field>
                                <value name="A"><block type="time_compare_ex" id="j0bV]uZg5PS)MoURAJPV"><mutation end_time="true" actual_time="true"></mutation>
                                    <field name="USE_ACTUAL_TIME">TRUE</field>
                                    <field name="OPTION">not between</field>
                                    <value name="START_TIME"><shadow type="text" id="5lANYeXWEBh8duHHj)/H"><field name="TEXT">00:1</field></shadow></value> 
                                    <value name="END_TIME"><shadow type="text" id="J)uReokm)aS^v6eKgx+K"><field name="TEXT">09:00</field></shadow></value></block></value> 
                                <value name="B"><block type="logic_compare" id="Bd;2)7nDxQo30m0^z[Px"><field name="OP">LTE</field>
                                    <value name="A"><block type="get_value" id="^:XiP[fNCt9COd1:i6rT"><field name="ATTR">val</field>
                                        <field name="OID">ID auswählen</field></block></value> 
                                    <value name="B"><block type="math_number" id="@{?0rlk4knIjlfkytZ3X"><field name="NUM">30</field></block></value></block></value></block></value> 
                            <statement name="DO0"><block type="comment" id="CUQSg/Al0an.g3lMs~Yx"><field name="COMMENT">Nur einschalten wenn Lampe aus</field>
                                <next><block type="controls_if" id="s5~HbfA%`-UGwhfu@bc0"><value name="IF0"><block type="logic_compare" id="/gkAJF:6p4d;@jnxq6n^"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="@HaT]Xwo`d2wW~}F}d%v"><field name="ATTR">val</field>
                                            <field name="OID">ID auswählen</field></block></value> 
                                        <value name="B"><block type="logic_boolean" id="mDcv[?ohY![*LzyZ(xjZ"><field name="BOOL">FALSE</field></block></value></block></value> 
                                    <statement name="DO0"><block type="control" id="US*SsJs_c-+O0O_/6L=E"><mutation delay_input="false"></mutation>
                                        <field name="OID">Object ID</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="logic_boolean" id="t#rI/n)mauclLezD^mSZ"><field name="BOOL">TRUE</field></block></value></block></statement></block></next></block></statement></block></next></block></statement> 
                    <statement name="ELSE"><block type="comment" id="4=HJoMi5Z38uLs?:S3gS"><field name="COMMENT">Hier kommt der Teil wenn keine Bewegung</field>
                        <next><block type="comment" id="U`HeF|/lW2UR3g#K~d~A"><field name="COMMENT">Und naturlich nur schalten wenn nötig :)</field>
                            <next><block type="controls_if" id="aDp(b?m(xLk(jDhL7qnu"><value name="IF0"><block type="logic_compare" id="D-|]s03CA}~Jz_9bPxyc"><field name="OP">EQ</field>
                                    <value name="A"><block type="get_value" id="}s97;!snvm!?9zWckE91"><field name="ATTR">val</field>
                                        <field name="OID">ID auswählen</field></block></value> 
                                    <value name="B"><block type="logic_boolean" id="rbM~}+H[tJhZAAUDlvh)"><field name="BOOL">TRUE</field></block></value></block></value> 
                                <statement name="DO0"><block type="control" id="%{X0K-ZO~GZOYRVm04}|"><mutation delay_input="false"></mutation>
                                    <field name="OID">Object ID</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE"><block type="logic_boolean" id="Y1+7G0e^=]k_G[qEXQy}"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></statement></block></next></block></statement></block></next></block></xml> 
        

        ! ````

        Bei Fragen fragen 😉

        Aber suche hier im Forum auch mal nach "Blockly" da gibt es schon reichlich Beispiele und Erklärungen.

        Grüße

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

          Hallo Rantanplan,

          danke für die wirklich schnelle Auskunft. Genau das, was du beschrieben hast fehlte mir, ich hatte einen völligen Denkfehler in der Herangehensweise. Ich werde es ausprobieren.

          Du hast mir sehr geholfen!

          1 Reply Last reply Reply Quote 0
          • rantanplan
            rantanplan last edited by

            Prima!

            Wenn Du weitergekommen bist, setzte bitte ein [Gelöst] in den Betreff Deines ersten Eintrags.

            Weitere Infos hier http://forum.iobroker.net/viewtopic.php?f=8&t=2451

            Grüße

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

            Support us

            ioBroker
            Community Adapters
            Donate

            321
            Online

            31.6k
            Users

            79.5k
            Topics

            1.3m
            Posts

            2
            4
            1398
            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