Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Blockly schießt den iobroker ab

    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

    [gelöst] Blockly schießt den iobroker ab

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

      Ah, ok. Danke für eure Erklärungen.

      Aber wie kann ich denn ein blinkendes Licht am Xiaomi nun in blockly realisieren?

      Irgendwie bin ich zu…einfach gestrickt um das hinzubekommen 😞

      Edit: Was ich mich noch frage: Warum gibt es dann überhaupt die Schleifen in blockly, wenn sie nicht (wie Nichtprogrammierer denken) funktionieren?

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

        @berndroid:

        Irgendwie bin ich zu…einfach gestrickt um das hinzubekommen 😞 `
        Eben nicht… Du hast zu kompliziert gedacht 😉

        @berndroid:

        Edit: Was ich mich noch frage: Warum gibt es dann überhaupt die Schleifen in blockly, wenn sie nicht (wie Nichtprogrammierer denken) funktionieren? `
        Es gibt ja nicht nur "Nichtprogrammierer". Vielleicht gehörst Du ja auch bald zu den "Programmierern". Übung macht den "Programmierer" 😉

        @berndroid:

        Aber wie kann ich denn ein blinkendes Licht am Xiaomi nun in blockly realisieren? `

        Eventuell so. (nicht getestet, sollte aber klappen)
        147_beispiel.png

        Export:

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="?zeKM?+`NO|SyPD9vCyq" x="63" y="-37"><field name="COMMENT">Deckenlicht POWER triggern</field>
        <next><block type="on_ext" id="xOtL7XU~}*{{IcuwY2M#"><mutation items="1"></mutation>
        <field name="CONDITION">ne</field>

            <value name="OID0"><shadow type="field_oid" id="9];iX:KnN?h!}{fJYNM@"><field name="oid">default</field></shadow></value> 
            <statement name="STATEMENT"><block type="comment" id="gHtB5hP@,3ogP+=5q6hQ"><field name="COMMENT">Abfrage Deckenlicht POWER = wahr</field>
                <next><block type="controls_if" id="2H%p_fwGD~eG]VZ=Rd=S"><mutation else="1"></mutation>
                    <value name="IF0"><block type="logic_compare" id="h`7QYwZ2.q)Ef9OGmFD^"><field name="OP">EQ</field>
                        <value name="A"><block type="get_value" id="{.HaueD%r-@B6oyXM[##"><field name="ATTR">val</field>
                            <field name="OID">ID auswählen</field></block></value> 
                        <value name="B"><block type="logic_boolean" id="(~:@eUP(`hrF.p8zGi*z"><field name="BOOL">TRUE</field></block></value></block></value> 
                    <statement name="DO0"><block type="timeouts_settimeout" id="|8fU{%K_V!6QWL_mk4v;"><field name="NAME">timeout</field>
                        <field name="DELAY">1</field>
                        <field name="UNIT">sec</field>
                        <statement name="STATEMENT"><block type="comment" id="mbrAIdBS]~^d86lw88W0"><field name="COMMENT">Flurlicht an/aus</field>
                            <next><block type="toggle" id="(_UwC+XTStO3:/1%!:tI"><mutation delay_input="false"></mutation>
                                <field name="OID">Object ID</field>
                                <field name="WITH_DELAY">FALSE</field></block></next></block></statement></block></statement> 
                    <statement name="ELSE"><block type="comment" id="FoKYUP+x+mJ-0p-bJ;TH"><field name="COMMENT">GANZ WICHTIG!!!</field>
                        <next><block type="comment" id="]r}}Rkp{1z,2cVUFGU%n"><field name="COMMENT">Timer STOPPEN !!!!</field>
                            <next><block type="timeouts_cleartimeout" id="3V*3%vD}R2mDt}=%[Yoz"><field name="NAME">timeout</field>
                                <next><block type="comment" id="^#:^N_G!#2A(BmTgcI0j"><field name="COMMENT">Man sollte nur schalten wenn es</field>
                                    <next><block type="comment" id="@K~QgPvF_Z#_iM}Dw]%;"><field name="COMMENT">etwas zu schalten gibt.</field>
                                        <next><block type="comment" id="]rLoSh?H/W(q}`%1LBY8"><field name="COMMENT">Also Status Flurlicht abfragen</field>
                                            <next><block type="controls_if" id="T=zJr3u9;iL;eEUdCp0^"><value name="IF0"><block type="logic_compare" id="]Qrf:Bi@dU]|E73q3Lj:"><field name="OP">EQ</field>
                                                    <value name="A"><block type="get_value" id="Qt(KubhnWN,D%?([1zY/"><field name="ATTR">val</field>
                                                        <field name="OID">ID auswählen</field></block></value> 
                                                    <value name="B"><block type="logic_boolean" id="0.jd{sIC|}}]r1R_UjSH"><field name="BOOL">TRUE</field></block></value></block></value> 
                                                <statement name="DO0"><block type="comment" id="cxm4U#rL~~XucP_t+-_L"><field name="COMMENT">Flurlicht aus</field>
                                                    <next><block type="control" id="k7Mysg_PQ^Py{3YC=g/!"><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="!;0hl|nV2hC0Yo}}]czJ"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></xml> 
        

        ! ````

        Grüße

        1 Reply Last reply Reply Quote 0
        • B
          berndroid last edited by

          Sehr schön, Vielen Dank! Ich werde das testen und berichten. Allerdings habe ich ein Verständnisproblem. Wenn jetzt nur einmal der Trigger kommt, wird die "Schleife" nur einmal durchlaufen, oder?

          Dann müsste ich nämlich mal überlegen, wie ich mein konkretes Problem gelöst bekomme.

          Ich beschreibe es mal kurz:

          In letzter Zeit habe ich das Problem, dass mein Netz von der Telekom gestört ist. Ich (also eher meine Frau) hätte gerne eine optische Meldung, wenn das Netz weg ist. Da ich keine Fritzbox, sondern Zeug von Ubiquiti nutze, frage ich den UniFi-Adapter ab, ob sich die IP geändert hat (mein Trigger).

          Wenn WAN-IP = 0.0.0.0 = Kein Netz, Gateway soll blinken.

          Wenn WAN-IP =! 0.0.0.0 = Alles in Ordnung

          Mit deiner Vorlage versuche ich es mal weiter. Man wird ja nicht dümmer dabei 😉

          Ich werde berichten.

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

            Für Blinklicht ist der Timeout-Baustein "Ausführen Intervall" am Besten geeignet: Starten innerhalb des Triggers, wenn IP = 0.0.0.0 und stoppen, wenn nicht.

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

              @paul53:

              Für Blinklicht ist der Timeout-Baustein "Ausführen Intervall" am Besten geeignet: `
              Jepp, habe falschen Baustein genommen :roll:

              @paul53:

              Starten innerhalb des Triggers, wenn IP = 0.0.0.0 und stoppen, wenn nicht. `
              Oder den Ping Adapter nehmen.

              Grüße

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

                Vielleicht so
                493_blockly_blink_ohneip.jpg

                1 Reply Last reply Reply Quote 1
                • B
                  berndroid last edited by

                  Ich kann mich nicht genug bei euch bedanken. Aber irgendwie ist blockly unlogisch.

                  Verstärker ist wahr. Ich triggere Deckenlicht. Licht blinkt. Allerdings sehr unregelmäßig. Mal im Sekundentakt, dann bleibt es mal 10 Sekunden an um dann fünf Sekunden aus zu bleiben usw.

                  Schalte ich Verstärker auf unwahr, blinkt das Licht dennoch unregelmäßig weiter. Auch wenn ich jetzt Deckenlicht triggere, blinkt das Licht noch weiter. Ich kanns mir nicht erklären 😞
                  6488_screenshot_2018-03-18_20.02.28.png
                  6488_screenshot_2018-03-18_19.59.43.png

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

                    Welchen Sinn soll das ergeben: Triggern auf "Deckenlicht POWER", aber Entscheidungswert "Verstärker POWER" ?

                    Es muss der Intervall-Timer gestoppt werden, der vorher aktiviert wurde ! Also nicht Intervall2 stoppen, sondern Intervall.

                    1 Reply Last reply Reply Quote 0
                    • R
                      RappiRN Most Active last edited by

                      An Blockly wird es wohl nicht liegen, die Befehle werden bestimmt alle gesendet, das könntest du prüfen, indem du noch debug-Blöcke da einfügst, wo du schaltest.

                      Es wird eher an der Abarbeitung der Blink-Befehle im Gateway liegen, das ist ja für sowas nicht gedacht und wird sich an den Befehlen im Sekundentakt verschlucken, aber eben noch alle abarbeiten, obwohl der Scripttrigger schon längst wieder aus ist. (Edit: dafür hat paul ja die Erklärung geliefert!)

                      Ich weiß jetzt nicht, wieviel Befehle das Gateway verkraftet, aber du kannst ja mal versuchen, die Blinkfrequenz zu verringern, alle 5 oder gar 10 sek. Ob es dann noch die optische Wirkung hat, die du haben möchtest, ist dabei ne andere Frage. 🙂

                      Enrico

                      1 Reply Last reply Reply Quote 0
                      • B
                        berndroid last edited by

                        Oh, das mit Intervall2 ist mir entgangen 😕

                        Das triggern ist eigentlich nur zum testen. Ist es nicht egal, welchen Wert ich abfrage wenn getriggert wird?

                        Modemkabel jedes mal rausziehen zum testen zieht hier immer so viel Geschrei nach sich 😉

                        Aber mal ernsthaft gefragt: Muss ich den Wert den ich abfragen möchte auch als Trigger nutzen?

                        1 Reply Last reply Reply Quote 0
                        • B
                          berndroid last edited by

                          @RappiRN:

                          Ich weiß jetzt nicht, wieviel Befehle das Gateway verkraftet, aber du kannst ja mal versuchen, die Blinkfrequenz zu verringern, alle 5 oder gar 10 sek. Ob es dann noch die optische Wirkung hat, die du haben möchtest, ist dabei ne andere Frage. 🙂

                          Enrico `

                          :lol: Die hat es dann nicht. Aber auch das werde ich mal testen.

                          1 Reply Last reply Reply Quote 0
                          • B
                            berndroid last edited by

                            Nochmal ne doofe Frage: Der im Bild markierte "Wert" der im Trigger-Menü zu finden ist, welchen Wert nimmt der denn an, bzw voher kommt der Wert? Sehe ich das richtig, das das hier im Beispiel die IP-Adresse wäre, weil die Object ID im Falls Objekt abgefragt wird?

                            Edit: Hat evtl jemand einen Link zu ner Doku zu blockly?
                            6488_screenshot_2018-03-18_20.48.55.png

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

                              @berndroid:

                              Muss ich den Wert den ich abfragen möchte auch als Trigger nutzen? `
                              Nicht unbedingt, aber es fördert das Verständnis für die endgültige Funktion des Scripts.
                              @berndroid:

                              Der im Bild markierte "Wert" der im Trigger-Menü zu finden ist, welchen Wert nimmt der denn an, bzw voher kommt der Wert? `
                              Das ist der Wert des auslösenden Datenpunktes: Wert = value = obj.state.val

                              Zum Testen mit dem Deckenlicht genügt die Abfrage: falls Wert (oder: falls Wert = wahr)

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

                                @berndroid:

                                Nochmal ne doofe Frage: Der im Bild markierte "Wert" der im Trigger-Menü zu finden ist, welchen Wert nimmt der denn an, bzw voher kommt der Wert?

                                Edit: Hat evtl jemand einen Link zu ner Doku zu blockly? `
                                Einmal hier http://www.iobroker.net/docu/?page_id=5319&lang=de

                                und hier https://github.com/ioBroker/ioBroker.ja … blockly.md

                                Paul53 greift gern in die Vollen, dies ist für einen Anfänger manchmal schwer zu verstehen 😉

                                Nimm erstmal die "normalen" Bausteine. Wenn Du sicherer bist und das Grundprinzip verstanden hast, kannst Du ans optimieren gehen.

                                Hier nochmal mein geändertes Blockly.

                                Der "umschalten" Baustein toggelt immer zwischen wahr und unwahr hin und her.

                                Da muss man den Zustand nicht vorher in einer Variablen umschalten.
                                147_beispiel.png

                                Deine WAN Abfrage kannst Du genauso aufbauen.

                                Wie schon gesagt schau Dir mal den "Ping" Adapter an.

                                Damit kannst Du interne und externe IP-Adressen überwachen.

                                Der Adapter legt pro überwachte Adresse einen Datenpunkt an, den Du in Blockly triggern kannst und/oder in VIS darstellen.

                                Grüße

                                1 Reply Last reply Reply Quote 0
                                • B
                                  berndroid last edited by

                                  @paul53:

                                  @berndroid:

                                  Der im Bild markierte "Wert" der im Trigger-Menü zu finden ist, welchen Wert nimmt der denn an, bzw voher kommt der Wert? `
                                  Das ist der Wert des auslösenden Datenpunktes: Wert = value = obj.state.val

                                  Hab ich ehrlich gesagt nicht wirklich verstanden, aber dank der Doku von ^ da oben weiß ich jetzt bescheid 😉

                                  @rantanplan:

                                  Paul53 greift gern in die Vollen, dies ist für einen Anfänger manchmal schwer zu verstehen 😉

                                  Nimm erstmal die "normalen" Bausteine. `

                                  Oooch, das macht nix. So ist man gezwungen sich weiter zu informieren 😉

                                  Ich bin ja dankbar, dass meine Fragen hier beantwortet werden!

                                  @rantanplan:

                                  Deine WAN Abfrage kannst Du genauso aufbauen.

                                  Wie schon gesagt schau Dir mal den "Ping" Adapter an.

                                  Damit kannst Du interne und externe IP-Adressen überwachen.

                                  Den "Ping" brauche ich wirklich nicht bemühen. Im "Unifi" bekomme ich alle Infos die ich brauche und noch viel mehr 🙂

                                  Ihr habt mir schonmal viel weiter geholfen, danke!
                                  6488_screenshot_2018-03-18_22.44.50.png

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

                                    Wenn alles funktioniert, setze bitte ein [gelöst] in den Betreff Deines ersten Beitrags.

                                    Danke.

                                    Grüße

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    830
                                    Online

                                    31.7k
                                    Users

                                    79.8k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    19
                                    1618
                                    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