NEWS
[gelöst] Script Überwachung Temperatur und Meldung an Telegram
-
Cool
Dann probiere ich die Temperatur morgen Mal auf unter 18 Grad zu bekommen (Lüften) und schreibe hier dann nochmal das Ergebnis - inkl ggf gelöst in der Überschrift
Vielen Dank Dutch
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Cool
Dann probiere ich die Temperatur morgen Mal auf unter 18 Grad zu bekommen (Lüften) und schreibe hier dann nochmal das Ergebnis - inkl ggf gelöst in der Überschrift
Vielen Dank Dutch
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `
Oder due aenderst mal die temperatur in deinem script von 18 auf 20 oder so
Da kan man auch noch mehr machen, z.b. den wert 18 per vis einstelbar machen fuer deine nachrichten usw aber die basis steht erstmal !
-
Hi Dutch,
hat leider nicht funktioniert. Denke es lag an der Variablen die nicht befüllt war…
habe es jetzt so gemacht, dass ich eine neue Variable angelegt habe wie folgt:
mein Blockly habe ich wie folg angepasst:
führt nun zu folgendem Fehler im Log
Ich denke, das Anlegen von so einer Variablen ist nicht so easy wie ich dachte ^^
-
Unter javascript.0.scriptEnabled sollen keine Objekte angelegt werden.
javascript.0 ist schon richtig danach solltest du dir über eine klare Struktur Gedanken machen, damit das noch übersichtlich bleibt!
Was soll denn diese Variable bewirken?
Edit: Hast du denn bei dem oberen Versuch noch die Abfrage auf "Wert von" Variable geändert? Das hat da noch gefehlt, vielleicht war das der Grund für das Nichtfunktionieren!
Enrico
-
Ach das gibt es doch nicht…hab es jetzt wieder zurück gebaut und die Variable unter javascript wieder gelöscht.
Sieht jetzt wieder wie folgt aus:
Ich kann bei meiner Variablen "KinderzimmerTEMP_var" nicht "Wert vom Objekt ID" benutzen. Ich nutze diese Variable ja nur ausschließlich hier im blockly. Unter Objekte ist die Variable ja nicht zu finden…
PS: Ich glaube ich mache lieber erst morgen weiter ^^
-
Alles richtig soweit, nur bei beiden und-Blöcken muss bei der Variablen noch der Block "Wert von" dazu! In diesen Block kommt dann die Variable!
Es muss dann heißen "Wert von Variable…" ist gleich Wahr/Unwahr!
Enrico
Edit: Hab gerade nochmal probiert, jetzt weiß ich erstmal, was du meinst! :?
-
Vielleicht musst du der Variablen über dem Trigger noch einen Zustand mitgeben, also über dem Trigger "setze Variable auf…", dann bekommt die Variable einen Zustand beim Scriptstart!
Enrico
-
Die Variable ist NULL daher der Fehler, einfach die Variable mit unwahr füllen bei Script start (also außerhalb deines Trigger Block) dann sollte es gut sein
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Die Variable ist NULL daher der Fehler, einfach die Variable mit unwahr füllen bei Script start (also außerhalb deines Trigger Block) dann sollte es gut sein
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community `
So, ich habe das Blockly um das Setzen der Variable ergänzt - und Debug-Blöcke versucht einzubauen (bringen keinen Mehrwert so wie ich sie verwende :?: da nirgends mehr steht als vorher. Hab ich vermutlich falsch benutzt).
Wenn ich das Script nun stoppe und neu starte - erhalte ich trotzdem keine Meldung via Telegramm
An Telegramm sollte es nicht liegen - hat ja vorher mal funktioniert. Langsam fange ich an, etwas an mir zu zweifeln. Das sieht doch alles ganz logisch aus?!
Kann ich mit diesen Debug-Blöcken es erreichen, dass ich detailliert mitbekomme, was passiert wenn ich das Skript neu starte?
Temperatur im Kinderzimmer aktuell: 18,8 Grad
Danke euch und Grüße, Thorsten
-
Dein Script wird nur eine Meldung generieren wenn sich die Temperatur ändert nicht bei Script start!
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Dein Script wird nur eine Meldung generieren wenn sich die Temperatur ändert nicht bei Script start!
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community `
HAHAHAAAAAAAAA,
du hast Recht. Habe gerade eine Meldung via Telegram erhalten. Juhuuuuuuuu :mrgreen: :mrgreen: :mrgreen:
Danke euch für die Hilfe - und besonders Dutch für deine Geduld. Dann setze ich dieses Thema mal auf "gelöst" und bastel fleissig weiter.
Danke danke und viele Grüße, Thorsten
-
sehr schön und viel Spaß damit
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Hallo Kueppert
Alles was sich INNERHALB eines Triggers befindet, wird ausgeführt wenn der getriggerte Wert sich ändert.
Alles was sich AUSSERHALB eines Triggers befindet, wird EINMALIG ausgeführt wenn das Script gestartet wird.
Dein Trigger reagiert wenn sich der Wert von "Temperatur" ändert.
Danach wird "KinderzimmerTEMP_var" IMMER SOFORT auf "unwahr" gesetzt.
Deine "sonst falls" Bedingung wird also NIE erfüllt.
Der Block "setze KinderzimmerTEMP_var auf unwahr" gehört also AUSSERHALB des Triggers.
Dein "Debug output Ende Trigger" müsste "Debug output Start Script" lauten.
Ein Trigger wird NIE beendet! Außer man stoppt das Script.
Grüße
-
Hallo Kueppert
Alles was sich INNERHALB eines Triggers befindet, wird ausgeführt wenn der getriggerte Wert sich ändert.
Alles was sich AUSSERHALB eines Triggers befindet, wird EINMALIG ausgeführt wenn das Script gestartet wird.
Dein Trigger reagiert wenn sich der Wert von "Temperatur" ändert.
Danach wird "KinderzimmerTEMP_var" IMMER SOFORT auf "unwahr" gesetzt.
Deine "sonst falls" Bedingung wird also NIE erfüllt.
Der Block "setze KinderzimmerTEMP_var auf unwahr" gehört also AUSSERHALB des Triggers.
Dein "Debug output Ende Trigger" müsste "Debug output Start Script" lauten.
Ein Trigger wird NIE beendet! Außer man stoppt das Script.
Grüße ` Hi rantanplan,
soll ich den Block dann einfach frei schwebend über meinen Trigger Block setzen??? Dann wird die Variable nur beim erstmaligen Start auf unwahr gesetzt, korrekt?
Deine Argumente klingen für mich nach mehrmaligen überlegen (muss das mit dem Trigger erst Mal verinnerlichen) sehr logisch…
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
soll ich den Block dann einfach frei schwebend über meinen Trigger Block setzen??? Dann wird die Variable nur beim erstmaligen Start auf unwahr gesetzt, korrekt? `
korrekt, wie ich auch hier geschrieben habe
Die Variable ist NULL daher der Fehler, einfach die Variable mit unwahr füllen bei Script start (also außerhalb deines Trigger Block) dann sollte es gut sein `
-
soll ich den Block dann einfach frei schwebend über meinen Trigger Block setzen??? Dann wird die Variable nur beim erstmaligen Start auf unwahr gesetzt, korrekt? `
korrekt, wie ich auch hier geschrieben habe
Die Variable ist NULL daher der Fehler, einfach die Variable mit unwahr füllen bei Script start (also außerhalb deines Trigger Block) dann sollte es gut sein
wer lesen kann… :-S
Erledigt und nochmal vielen Dank an euch
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Zeigstdu uns noch das fertige Script? [emoji6]
-
Klaaa
Den Code als "Code" kann ich leider nicht einfügen. Lässt das Forum nicht zu. 3mal versucht…
Aber vielleicht kann einer der Kenner mir sagen, was die letzte Zeile mit dem Code-Wirrwar bedeutet??? Diese Zeile ist ewig lang…
VG Thorsten
-
Den Code als "Code" kann ich leider nicht einfügen. Lässt das Forum nicht zu. 3mal versucht… `
Nicht den Code.
Wenn, dann einen Export.
Und diesen dann IMMER zwischen "spoiler" und "code" Tags kopieren.
Grüße
-
Und wieder was gelernt. Danke Rantan
Und hier der Blockly-Export als Code:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id=")Jk19jT?sl0`uk0VePrf" x="-487" y="-162"><field name="COMMENT">Verhindern von gleichen Mitteilungen</field> <next><block type="variables_set" id="nt=7%,[rFtAb@?U)B]Dh"><field name="VAR">KinderzimmerTEMP_var</field> <value name="VALUE"><block type="logic_boolean" id="~,g3#GXM0L0nDIvLDPkl"><field name="BOOL">FALSE</field></block></value></block></next></block> <block type="on_ext" id="{yVknQbfa981*7rKA-1x" x="-487" y="-63"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="4/Gaf8fh.J~Jr`J^h(UD"><field name="oid">zwave.0.NODE11.SENSOR_MULTILEVEL.Temperature_1</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="s=Yq8}In[=RcBN]GQ@[g"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_operation" id="CW.s=bLQ8Ws?:kTit9`|"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="Y!8B`p3`:Pa]62NSMuLR"><field name="OP">LT</field> <value name="A"><block type="get_value" id="Qp!!R_}4FNalU6ailjJg"><field name="ATTR">val</field> <field name="OID">zwave.0.NODE11.SENSOR_MULTILEVEL.Temperature_1</field></block></value> <value name="B"><block type="math_number" id="8e5UboxC3NpEQluqi!ol"><field name="NUM">18</field></block></value></block></value> <value name="B"><block type="logic_compare" id="2AC/y)3.:G_]~%SY04|l"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id=",hsTq_|i+zHrpSYaR9d@"><field name="VAR">KinderzimmerTEMP_var</field></block></value> <value name="B"><block type="logic_boolean" id="Hjpi6]H1(3h.hUFgn9ff"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO0"><block type="telegram" id="BC=wgE~t_prHN:`bR@}="><field name="INSTANCE">.0</field> <field name="LOG">debug</field> <value name="MESSAGE"><shadow type="text" id="~6|Uv6cnLV*UbeTPN1]8"><field name="TEXT">Achtung: Kinderzimmertemperatur unter 18 Grad</field></shadow></value> <value name="USERNAME"><block type="text" id="gLB?f7)q0D~L5|D|_4II"><field name="TEXT">Thorsten</field></block></value> <next><block type="variables_set" id="_8YD+n(0cdD6daU-lLqQ"><field name="VAR">KinderzimmerTEMP_var</field> <value name="VALUE"><block type="logic_boolean" id="%rA^{O=xM1!65+.Y4GLf"><field name="BOOL">TRUE</field></block></value></block></next></block></statement> <value name="IF1"><block type="logic_operation" id="Z%@Pq^vFj62n:G^WaD21"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="(.kq5W?87-y{D:oVx=hN"><field name="OP">GT</field> <value name="A"><block type="get_value" id="4Auf2]_r7aRIAi5=,q(M"><field name="ATTR">val</field> <field name="OID">zwave.0.NODE11.SENSOR_MULTILEVEL.Temperature_1</field></block></value> <value name="B"><block type="math_number" id="ib:)Ud4Dd~{g!`#6z9`3"><field name="NUM">18</field></block></value></block></value> <value name="B"><block type="logic_compare" id="HiV,VDZleaiVr_;~%(.B"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="5,.H][LVhL1L:F%vowcM"><field name="VAR">KinderzimmerTEMP_var</field></block></value> <value name="B"><block type="logic_boolean" id="O7SwwPXXP`fsgfjFZIk2"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO1"><block type="telegram" id="Vd?K?;x9D#lWOI)FawD8"><field name="INSTANCE">.0</field> <field name="LOG">debug</field> <value name="MESSAGE"><shadow type="text" id="7qj`Qz3C4Hhcf)`D5yLO"><field name="TEXT">Entwarnung: Kinderzimmertemperatur über 18 Grad</field></shadow></value> <value name="USERNAME"><block type="text" id="RSAoMGcut?T`Un2[)v!,"><field name="TEXT">Thorsten</field></block></value> <next><block type="variables_set" id="Z5[gDd+O~C|N9#ai%K(h"><field name="VAR">KinderzimmerTEMP_var</field> <value name="VALUE"><block type="logic_boolean" id="=}4Q!+vHFhJc99F)btr#"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></xml>
VG Thorsten