Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly Script soll nur tatsächlich geschaltete Geräte per Telegram senden

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    720

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Blockly Script soll nur tatsächlich geschaltete Geräte per Telegram senden

Scheduled Pinned Locked Moved Skripten / Logik
16 Posts 4 Posters 3.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Sven2013
    wrote on last edited by
    #6

    Hallo

    Schon mal vielen Dank für deine Antwort. Das mit den variablen war mir bisher so gar nicht bewusst schaue ich mir aber gerne nachher mal an um daraus zu lernen.

    In meinem eigentlichen Problem ging es um etwas anderes.

    Ich versuche es noch mal an einem Beispiel zu verdeutlichen. Ich drücke die Taste alle Rollläden runter fahren in meinem VIS view.

    Nun möchte ich per Telegramm oder alternativ per Say it die Rückmeldung bekommen Wohnzimmer Rollladen Esszimmer Rollladen Kinderzimmer Rollladen runter gefahren.

    War zum Zeitpunkt des drücken der Kinderzimmer Rollladen allerdings schon unten soll die Ausgabe nur noch Wohnzimmer und Esszimmer Rollladen runter lauten.

    Hast du eine Idee wie ich das hinbekomme?

    Gruß Sven

    Gesendet von iPhone mit Tapatalk

    1 Reply Last reply
    0
    • rantanplanR Offline
      rantanplanR Offline
      rantanplan
      wrote on last edited by
      #7

      @Sven2013:

      Nun möchte ich per Telegramm oder alternativ per Say it die Rückmeldung bekommen Wohnzimmer Rollladen Esszimmer Rollladen Kinderzimmer Rollladen runter gefahren.

      War zum Zeitpunkt des drücken der Kinderzimmer Rollladen allerdings schon unten soll die Ausgabe nur noch Wohnzimmer und Esszimmer Rollladen runter lauten.

      Hast du eine Idee wie ich das hinbekomme? `
      Mehrere :)

      Aber schaue Dir mal das Blockly an.

      So wie ich Dich einschätze, wirst Du dann auch ein paar Ideen bekommen.

      Grüße

      Rantanplan

      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

      1 Reply Last reply
      0
      • rantanplanR Offline
        rantanplanR Offline
        rantanplan
        wrote on last edited by
        #8

        @Sven2013 - Und? Bist Du weitergekommen?

        Grüße

        Rantanplan

        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

        1 Reply Last reply
        0
        • S Offline
          S Offline
          Sven2013
          wrote on last edited by
          #9

          Hallo,

          @rantanplan

          Sorry ich habe mich eine Weile nicht gemeldet da ich mich leider durch meine Arbeit verhindert war.

          Nun bin ich aber wie der dabei und habe mich mit deiner Blocklyanpassung beschäftigt.

          Ich habe mich zunächst mal darum gekümmert, ob mir tatsächlich eine Variable genügt. Hier bin ich leider noch nicht 100% sicher, aber ich glaube nicht.

          Ich nutze zur Steuerung meiner Rollos mehrere Taster und Programme. So gibt es also leider nicht nur den Stand komplett auf oder komplett zu.
          576_programme.png

          wenn ich nun dein Blockly nutze funtioniert dieses leider nicht immer. Beispiel: Ich habe (mit der Programmtaste) die Variable "Rollladen komplett zu" auf true gesetzt, dann fahren alle Rollläden zu. Perfekt!

          Wenn ich nun einige Rollläden per Hand ein Stück auffahre, bleibt die Variable auf "true" stehen.

          Nun möchte ich abends gerne wieder mit der Programmtaste "Rollladen komplett zu" alle Rollläden schließen. Dieses funktioniert aber nicht, da sich die Variable nicht ändert, sondern von true au true stehen bleibt. Somit löst das Blockly script leider nicht aus.

          Aus diesem Grund hatte ich die 2 Variablen.

          Der 2 Teil deines Blocklys mit dem Ansagetext ist der Einstieg für meinen ursprünglichen Wunsch.

          576_blockly_2.png

          Ich möchte das ich in dem Ansagetext nun "Sammel" welche Rolläden also tätsächlich ihren Stand durch die Programmauslösung verändert haben.

          Beispiel:

          Rollladen 1 - war auf 70%

          Rollladen 2 - war auf 90%

          Rollladen 3 - war auf 100%

          Rollladen 4 - war auf 10%

          Nun löse ich das Programm aus danach ist der Stand für alle 4 Rollladen 100%.

          Meine Benachrichtigung soll dann lauten:

          Rollladen 1, Rollladen 2, und Rolladen 4 sind nun geschlossen worden. Oprional vielleicht noch Rolladen 3 war bereits geschlossen.

          Hast du dazu vielleicht noch einen weiteren Tipp?

          Gruß Sven

          1 Reply Last reply
          0
          • lobomauL Offline
            lobomauL Offline
            lobomau
            wrote on last edited by
            #10

            Mein Script kannst du sicher für deine Gegebenheiten anpassen.

            Bei mir ist meine Abwesenheit der Trigger.

            Dann werden alle Fenster gecheckt auf deren Zustand. Wenn ein Fenster nicht geschlossen ist, bekomme ich ein Telegram mit der Angabe welche Tür/Fenster offen ist.

            Bei den AUF - ZU Sensoren ist dann wahr und falsch, bei den Kipphebel Sensoren gibt es 0 (ZU), 1 (gekippt) und 2 (offen).
            1146_unbenannt.jpg

            Host: NUC8i3 mit Proxmox:

            • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
            • Slave: Pi4
            1 Reply Last reply
            0
            • rantanplanR Offline
              rantanplanR Offline
              rantanplan
              wrote on last edited by
              #11

              @Sven2013:

              Wenn ich nun einige Rollläden per Hand ein Stück auffahre, bleibt die Variable auf "true" stehen.

              Nun möchte ich abends gerne wieder mit der Programmtaste "Rollladen komplett zu" alle Rollläden schließen. Dieses funktioniert aber nicht, da sich die Variable nicht ändert, sondern von true au true stehen bleibt. Somit löst das Blockly script leider nicht aus.

              Aus diesem Grund hatte ich die 2 Variablen. `
              Ja, wenn man da manuell Zustände ändert ist das natürlich schlecht.

              Ich würde sagen zweite Variable und zweites Script (Blockly).

              Meine Räume steuere ich alle separat.

              Jeder Raum hat Blocklys für Rolladen, Heizung usw.

              Da kann ich besser auf Situationen eingehen. Ist Besuch da, ist das Gästezimmer belegt, ist eine der Türen zur Terasse geöffnet usw…

              Du brauchst also eine zweite Variable. Ich würde die aber allgemeiner benennen, damit man die auch für andere Dinge verwenden kann.

              z.B. "Schlafmodus".

              Wenn die auf "wahr" gesetzt wird, kannst Du mehrere Aktionen (Blocklys) starten. Rolladen und Fenster prüfen, Heizung usw.

              @Sven2013:

              Ich möchte das ich in dem Ansagetext nun "Sammel" welche Rolläden also tätsächlich ihren Stand durch die Programmauslösung verändert haben.

              Beispiel:

              Rollladen 1 - war auf 70%

              Rollladen 2 - war auf 90%

              Rollladen 3 - war auf 100%

              Rollladen 4 - war auf 10%

              Nun löse ich das Programm aus danach ist der Stand für alle 4 Rollladen 100%.

              Meine Benachrichtigung soll dann lauten:

              Rollladen 1, Rollladen 2, und Rolladen 4 sind nun geschlossen worden. Oprional vielleicht noch Rolladen 3 war bereits geschlossen.

              Hast du dazu vielleicht noch einen weiteren Tipp? `
              s.o.

              Fang mal mit einen zweiten Blockly an.

              Wenn Du nicht weiterkommst melde Dich.

              Grüße

              Rantanplan

              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

              1 Reply Last reply
              0
              • S Offline
                S Offline
                Sven2013
                wrote on last edited by
                #12

                Hallo Männer,

                ich habe nun eine Kombination aus euren Blocklys genommen und bin meinem Ziel ganz nah.

                Hier zunächst mal mein Code:

                ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
                ! <block type="comment" id="AV(xik??:G5_MN[tiv" x="-437" y="-337"><field name="COMMENT">Manuelle Auslösung alle Rollos runter</field> ! <next><block type="on" id="{EKZRiaeJJ2dXbV|QC19"><field name="OID">javascript.0.Rollladen_komplett_zu</field> ! <field name="CONDITION">true</field> ! <statement name="STATEMENT"><block type="comment" id="[/co?!2njn#ajRV21u[J"><field name="COMMENT">Rollladen</field> ! <next><block type="control" id="x@;nm3.{*e=]?-jkcl^A"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">1000</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="/-e3X=8?(9gowyOP?3O,"><field name="NUM">0</field></block></value> ! <next><block type="controls_if" id="zio`+wA?ZIz)WB!yGf/q"><value name="IF0"><block type="logic_compare" id="~d=m?pWWu@Bi;3I~Uro4"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="uf0Y}Nd]e8D4S.[kOnrs"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field></block></value> ! <value name="B"><block type="math_number" id="^M5]?PuzoOBwjaX:OThu"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="text_append" id="?zW]vO^ZP?sjZdX@bBwc"><field name="VAR">Textteil</field> ! <value name="TEXT"><shadow type="text" id="Q(zPEJ}KDgoJWWrNelb6"><field name="TEXT">im Esszimmer,</field></shadow></value></block></statement> ! <next><block type="control" id="C@R.{!H?rkVxUv84rjN}"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">2000</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="_2!y1;mo18=TuO0ein!W"><field name="NUM">0</field></block></value> ! <next><block type="controls_if" id="PRkBmftHonqMJyFve`9l"><value name="IF0"><block type="logic_compare" id="oiG5j=E=W:5(jXB8V@XG"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="]F;C9po#{3jOm~v[D|(("><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field></block></value> ! <value name="B"><block type="math_number" id="@O_W#_q*m6mc:AhKaT(+"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="text_append" id="2Bl!^f=%!K4M,tIjH"><field name="VAR">Textteil</field>
                ! <value name="TEXT"><shadow type="text" id="5uPkk=Ch4aV]n1J)b}t-"><field name="TEXT">im Wohnzimmer,</field></shadow></value></block></statement>
                ! <next><block type="control" id=".o^rimHhiwuSqXsYJGSi"><mutation delay_input="true"></mutation>
                ! <field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field>
                ! <field name="WITH_DELAY">TRUE</field>
                ! <field name="DELAY_MS">3000</field>
                ! <field name="CLEAR_RUNNING">FALSE</field>
                ! <value name="VALUE"><block type="math_number" id="%C#3}e6gg,^+5=F~Q:XX"><field name="NUM">0</field></block></value>
                ! <next><block type="controls_if" id="IAkxK4?Vu%A%V%1_r/}_"><value name="IF0"><block type="logic_compare" id="e,]rF)H,3WgCp
                )Y%vy"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="7T~QI,q08DhU~YNt[?1L"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field></block></value> ! <value name="B"><block type="math_number" id="f|9*8!BTc8IF1HUm8a5I"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="text_append" id="hrKH!y1:5Y?9bM!qw2H5"><field name="VAR">Textteil</field> ! <value name="TEXT"><shadow type="text" id="OQL*WpZgBtm.M/KDVV=f"><field name="TEXT">bei Moritz,</field></shadow></value></block></statement> ! <next><block type="control" id="){h{0WDyFJfhy5mR:q(_"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">4000</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="Fz-V~!Px2_i%kAi7Xi-A"><field name="NUM">0</field></block></value> ! <next><block type="controls_if" id="]q.Xb*VQ,S{]|92,*X5%"><value name="IF0"><block type="logic_compare" id="DyNT^Y^pzYqaj?mF,|BX"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="?y6/:qnrKYg=r:7G7~"><field name="ATTR">val</field>
                ! <field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field></block></value>
                ! <value name="B"><block type="math_number" id="aNKC
                ;Ew5P+%dBrC0p|A"><field name="NUM">0</field></block></value></block></value>
                ! <statement name="DO0"><block type="text_append" id="VL.N6QtNonweAv8_|J_p"><field name="VAR">Textteil</field>
                ! <value name="TEXT"><shadow type="text" id="{+K2{mux~R8H6r%]..#"><field name="TEXT">bei Nele</field></shadow></value></block></statement>
                ! <next><block type="procedures_callnoreturn" id="7{S:2wBBy(a)]bewkQ|)"><mutation name="Handy"><arg name="Meldungstext"></arg></mutation>
                ! <value name="ARG0"><block type="text_join" id="3kDQ~MaM:P95K5G@<I><mutation items="3"></mutation>
                ! <value name="ADD0"><block type="text" id="MmA/2//0weSwu@b!8*"><field name="TEXT">Die Beschattung</field></block></value>
                ! <value name="ADD1"><block type="variables_get" id="De:=81lZdn^H6T!CoF4q"><field name="VAR">Textteil</field></block></value>
                ! <value name="ADD2"><block type="text" id="!TSe/
                :EodE5%ujY9L;"><field name="TEXT">ist nun komplett geschlossen!</field></block></value><s><em></s>!"></block></value> ! <next><block type="comment" id="D4WUmbKW,=o~J1b[653i"><field name="COMMENT">setzt Variable zurück</field> ! <next><block type="controls_if" id="G,IPh#w,}Gg}i7OcI~le"><value name="IF0"><block type="logic_compare" id="p3/CH+nV8iN#rX?5{9)o"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="^brTX).6ev7*m(]V7!/Z"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Rollladen_komplett_zu</field></block></value> ! <value name="B"><block type="logic_boolean" id="RAB}{@2W!(w1sP)E:Ok"><field name="BOOL">TRUE</field></block></value></block></value>
                ! <statement name="DO0"><block type="control" id="P3uJ3%/WXZ*||5H%(1"><mutation delay_input="true"></mutation>
                ! <field name="OID">javascript.0.Rollladen_komplett_zu</field>
                ! <field name="WITH_DELAY">TRUE</field>
                ! <field name="DELAY_MS">6000</field>
                ! <field name="CLEAR_RUNNING">FALSE</field>
                ! <value name="VALUE"><block type="logic_boolean" id="0LjH_nKNna(0:;E}rBBJ"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block>
                ! <block type="procedures_defnoreturn" id="FlU1RJhZoo4hjPGWuO" x="488" y="-312"><mutation><arg name="Meldungstext"></arg></mutation>
                ! <field name="NAME">Handy</field>
                ! <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                ! <statement name="STACK"><block type="comment" id="5!f4=oY#]kuo~@.US]Pg"><field name="COMMENT">Handyansage an/Aus</field>
                ! <next><block type="controls_if" id="|Ytea7|KnMvA`v.(X*-{"><value name="IF0"><block type="logic_compare" id="d%l5VrH-6_.}A,L?{hYN"><field name="OP">EQ</field>
                ! <value name="A"><block type="get_value" id="e=+=%vEtpxD.l-+E|@zg"><field name="ATTR">val</field>
                ! <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy</field></block></value>
                ! <value name="B"><block type="logic_boolean" id="A=Z5_G)1TKR=c!^avAz="><field name="BOOL">TRUE</field></block></value></block></value>
                ! <statement name="DO0"><block type="pushover" id="eGw2QegfDQy2X*usYt}0"><field name="INSTANCE">.0</field>
                ! <field name="PRIORITY">0</field>
                ! <value name="MESSAGE"><shadow type="text" id="e[(,ipWtZQ-;{l756%#+"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow>
                ! <block type="variables_get" id="4VVRl:g5-ETh!zQ12TbQ"><field name="VAR">Meldungstext</field></block></value></block></statement></block></next></block></statement></block></xml> _Nun bekomme ich über Pushover meine gewünschte Nachricht. Zu mindest fast. :-)

                Sie lautet: Die Beschattung undefinedim Esszimmer, im Wohnzimmer, bei Nele ist nun komplett geschlossen!

                Aber warum ist das undefined dazwischen? Das bekomme ich einfach nicht weg.

                Ist meine Lösung so praktikabel, oder sollte ich nochmal ein wenig umbauen?

                Denn der Teil mit "die Rollläden X oder Y waren schon geschlossen habe ich ja noch nicht umgestzt.

                Gruß Sven_

                1 Reply Last reply
                0
                • rantanplanR Offline
                  rantanplanR Offline
                  rantanplan
                  wrote on last edited by
                  #13

                  Hi Sven2013

                  Wenn ich Dein Blockly importiere ist alles OK.

                  Einfach mal in ein neues Script importieren.

                  Grüße

                  Rantanplan

                  CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    Sven2013
                    wrote on last edited by
                    #14

                    Also das Script funktioniert auch einwandfrei.

                    Nur bei der Nachricht die ich per Pushover bekomme ist das Wort undifined dazwischen. Woher kommt das?

                    Hier der Text meiner Pushover Nachricht.

                    ioBroker: Die Beschattung undefinedim Esszimmer, im Wohnzimmer, bei Moritz, bei Nele wird nun geschlossen!Die Beschattung war bereits geschlossen

                    Gruß Sven

                    Gesendet von iPhone mit Tapatalk

                    1 Reply Last reply
                    0
                    • rantanplanR Offline
                      rantanplanR Offline
                      rantanplan
                      wrote on last edited by
                      #15

                      @Sven2013:

                      ioBroker: Die Beschattung undefinedim Esszimmer, im Wohnzimmer, bei Moritz, bei Nele wird nun geschlossen!Die Beschattung war bereits geschlossen `
                      Aah, jetzt bin ich auf den richtigen Gleis.

                      Bei Blockly muss man bei neuen, leeren Zeichenketten aufpassen.

                      Die sind nicht leer sondern liefern den Wert "undefine".

                      Man muss man erstmal "nichts" reinschreiben, damit sie leer sind. ;)

                      Fast so wie bei der alten Mengenlehre.

                      "Wenn fünf Leute den Raum verlassen, muss einer wieder rein damit der Raum leer ist"

                      Wenn Du es so machst, funktioniert es.
                      147_bild.png

                      Grüße

                      Rantanplan

                      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Sven2013
                        wrote on last edited by
                        #16

                        Hey rantanplan,

                        vielen Dank an dich. Deine Lösung hat das Ziel gebracht. Wie auch immer du darauf gekommen bist es ist der Hammer.

                        Gruß Sven

                        1 Reply Last reply
                        0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        455

                        Online

                        32.7k

                        Users

                        82.6k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Home
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe