NEWS
[gelöst]Telegrammeldung von Trashschedule optimieren.
-
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>
Gruß
Patrick -
@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.
-
@marsmännchen So sieht das bei mir aus, gleiche Logik wie von @Chrunchy erwähnt:
Ich habe Telegram, Pushover und Alexa Meldungen intergriert. Welche davon genutzt werden (egal in welchem Script), steuere ich über drei Datenpunkte.
-
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 -
@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.
-
@ahnungsbefreit
Was aber bewirkt folgendes:
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 -
@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.
-
@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.