Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst]Telegrammeldung von Trashschedule optimieren.

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst]Telegrammeldung von Trashschedule optimieren.

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

      Hallo zusammen, könnte mir bitte jemand helfen die Telegrammeldung für Trashschedule zu optimieren?
      Ich habe schon diverse Ansätze versucht, aber wirklich optimal läuft es nicht.
      Ich hätte eigentlich vor das ich immer um die selbe Zeit, einen Tag vor der Abholung des Mülls eine Meldung bekomme.
      Mit meinem jetzigen Blockly kommen die Meldungen manchmal Tage vorher.
      Hier mein derzeitiger Versuch:

      <block xmlns="https://developers.google.com/blockly/xml" type="on" id="t8XcQD=K=;EfgO^e!1SL" x="-887" y="-787">
        <field name="OID">trashschedule.0.next.daysLeft</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="controls_if" id="Lz;jQDzue4}XxtytDlem">
            <mutation else="1"></mutation>
            <value name="IF0">
              <block type="logic_compare" id="|hw%-tICS=ims$*XU!L5">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="woP:-I}BUE@fW+ywquwz">
                    <field name="ATTR">val</field>
                    <field name="OID">trashschedule.0.next.daysLeft</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_number" id="%8SI|_q0A45LzcW%t^m_">
                    <field name="NUM">1</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="variables_set" id="p1a:Uv{R,sA8S@ZDAg}r">
                <field name="VAR" id="SZ@d*V6/{UJ=e_2/$VLV">trashcount1</field>
                <value name="VALUE">
                  <block type="logic_boolean" id=",WR,Tk%L-*sIotfHA![C">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
                <next>
                  <block type="debug" id="0D/?EUVLHzZI{KfN4:Np">
                    <field name="Severity">log</field>
                    <value name="TEXT">
                      <shadow type="text" id="?p}S!E#D(za#}@jAKmbH">
                        <field name="TEXT">Trashcount1 jetzt true</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="G@aI4P3VczBI{Zl$QBu3">
                        <field name="DELAY">1000</field>
                        <field name="UNIT">ms</field>
                        <next>
                          <block type="controls_if" id="m~0),0RvqSO@132OS5-f">
                            <value name="IF0">
                              <block type="logic_compare" id="]Mur=C+IBMv|8]8Z#+XF">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="variables_get" id="-M{RE25nd+_$Ty;#(zn{">
                                    <field name="VAR" id="SZ@d*V6/{UJ=e_2/$VLV">trashcount1</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_boolean" id="a,cRD~kF:)2|jYLLF[6+">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="schedule" id="s!m%%kOoHhF5.}iQv|Z$">
                                <field name="SCHEDULE">0 13 * * *</field>
                                <statement name="STATEMENT">
                                  <block type="telegram" id="EaRI$:HAH]Pt3SV=V`Uu">
                                    <field name="INSTANCE"></field>
                                    <field name="LOG"></field>
                                    <field name="SILENT">FALSE</field>
                                    <field name="PARSEMODE">default</field>
                                    <value name="MESSAGE">
                                      <shadow type="text">
                                        <field name="TEXT">text</field>
                                      </shadow>
                                      <block type="text_join" id="j8V[;nSW41UYoXMuSHm6">
                                        <mutation items="2"></mutation>
                                        <value name="ADD0">
                                          <block type="text" id="x7z[2@Vbcjl7O6hUqkhI">
                                            <field name="TEXT">Abholung von</field>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="get_value" id="6!0kMwM+36X5-O:K@HGU">
                                            <field name="ATTR">val</field>
                                            <field name="OID">trashschedule.0.next.typesText</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="USERNAME">
                                      <block type="text" id="CVyrGKS|1jNiCUE;u(Gl">
                                        <field name="TEXT">Patrick</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
            <statement name="ELSE">
              <block type="variables_set" id="0p]L[d0uuNkIyM|Zf@$C">
                <field name="VAR" id="SZ@d*V6/{UJ=e_2/$VLV">trashcount1</field>
                <value name="VALUE">
                  <block type="logic_boolean" id="ZI1y5B-I}H:OTadgfoB%">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
                <next>
                  <block type="debug" id="LcRtR=|5=[BpNDz4@Bne">
                    <field name="Severity">log</field>
                    <value name="TEXT">
                      <shadow type="text" id="/qh*2QTKEn)YH)3970dU">
                        <field name="TEXT">Trashmeldung_1 jetzt false</field>
                      </shadow>
                    </value>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
      

      Blockly1.PNG

      Gruß
      Patrick

      C 1 Reply Last reply Reply Quote 0
      • C
        Chrunchy @marsmännchen last edited by

        @marsmännchen Trigger in Trigger ist keine gute Idee.
        Warum so kompliziert?

        Jeden Tag um 13 Uhr ausführen, wenn Next Days left = 1, dann Nachricht.

        A 1 Reply Last reply Reply Quote 0
        • A
          Ahnungsbefreit @Chrunchy last edited by

          @marsmännchen So sieht das bei mir aus, gleiche Logik wie von @Chrunchy erwähnt:
          e5a22fa4-e84d-4396-9883-54d09f20cb33-image.png

          Ich habe Telegram, Pushover und Alexa Meldungen intergriert. Welche davon genutzt werden (egal in welchem Script), steuere ich über drei Datenpunkte.

          1 Reply Last reply Reply Quote 0
          • M
            marsmännchen last edited by

            Vielen Dank, ich werde das so versuchen.
            Warum so kompliziert? Puh, fragt mich nicht, ich weiß es nicht mehr. Das war eine Variante von vielen welche nie richtig funktionierte. Aber Trigger in Trigger vermeiden ist schon mal eine gute Erinnerung.
            Gruß
            Patrick

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @marsmännchen last edited by Asgothian

              @marsmännchen sagte in Telegrammeldung von Trashschedule optimieren.:

              Aber Trigger in Trigger vermeiden ist schon mal eine gute Erinnerung.
              Gruß

              Ich kann nur jedem Empfehlen sich für die "Trigger" und "Zeitplan" Bausteine das folgende Modell zu merken:

              • Das System hält eine Liste von Bedingungen die automatisch überwacht werden. Sobald eine der Bedingungen zutrifft werden die an diese Bedingung geknüpften Bausteine ausgeführt.
              • Der Trigger (und Zeitplan) Baustein trägt eine Bedingung in diese Liste ein und gibt dieser Bedingung die umschlossenen Bausteine mit.
              • Wenn ein Skript angehalten wird (und nur dann) werden alle von diesem Skript in die Liste eingetragenen Bedingungen entfernt.

              Daraus ergibt sich direkt warum "Trigger im Trigger" mist sind.

              Code-technisch sind die Trigger viel effizienter abgebildet als das in diesem Modell der Fall ist. Aber als Analogie zum Verständnis funktioniert diese Ansicht durchaus.

              A.

              1 Reply Last reply Reply Quote 1
              • M
                marsmännchen last edited by

                @ahnungsbefreit
                Was aber bewirkt folgendes:
                blockly2.PNG

                Falls Wert von Objekt ID "Telegram"

                Was ist die Objekt ID Telegram? Woher hast du die? Habe zwar Telegram Adapter aber nur einen Ordner "Telegram"
                MfG
                Patrick

                A 1 Reply Last reply Reply Quote 0
                • A
                  Ahnungsbefreit @marsmännchen last edited by

                  @marsmännchen das meinte ich mit der Aussage oben

                  Welche davon genutzt werden (egal in welchem Script), steuere ich über drei Datenpunkte.

                  Du kannst also den "Falls Wert vom Objekt ID Telegram" Teil einfach weglassen und direkt die Ausgabe auf telegram machen.

                  M 1 Reply Last reply Reply Quote 1
                  • M
                    marsmännchen @Ahnungsbefreit last edited by

                    @ahnungsbefreit
                    Das sag ich aber mal herzlichen Dank an euch!
                    Funktioniert diesmal wie es soll. Die Logik von dem Blockly ist mir manchmal echt ein Rätsel.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    861
                    Online

                    32.0k
                    Users

                    80.5k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    335
                    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