NEWS
[gelöst] Erstes eigenes Blockly Script - funktioniert plötzlich nicht mehr
-
Ziel des Scripts ist das Anschalten der Lampen bei Erreichen von Helligkeit 30 für 2h. Den Rest der Nacht sollen diese ausbleiben. `
Als Beispiel habe ich Dein Blockly mal etwas umgebaut. (nicht getestet)Da ich Deine Datenpunkte nicht habe, musst Du die an zwei Stellen selbst einsetzen.
Hier der Export:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="0pHZ{vcW)lJY`fb6pck" x="37" y="-1113"><field name="COMMENT">BRIGHTNESS triggern</field>
<next><block type="on_ext" id="d;BVWqUDoaqqfnc}A8a"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="wiw3!IYQfI[=?G_KN(-R"><field name="oid">default</field></shadow></value> <statement name="STATEMENT"><block type="comment" id="*)u)s01(+a.^cr=YjEo)"><field name="COMMENT">gewünschte Werte eingrenzen</field> <next><block type="controls_if" id="HqdptKMJmdh*Qg^n-Fl+"><value name="IF0"><block type="logic_operation" id="?XTdy!]m,h@ucSm:WV`0" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="pg^]I{[Ho-W)E8vojt_?"><field name="OP">LTE</field> <value name="A"><block type="get_value" id="^1b23It8Qy^3y%h]Y!T^"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.NEQ0320690.1.BRIGHTNESS</field></block></value> <value name="B"><block type="text" id="k(.Y_+6=0aNO!;?q=Z30"><field name="TEXT">30</field></block></value></block></value> <value name="B"><block type="logic_compare" id="LAdEMDDHWXKMWh:VjwS4"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="Z?j,,misEqa[_VT]7d.T"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.NEQ0320690.1.BRIGHTNESS</field></block></value> <value name="B"><block type="text" id="91yN)@K1c=n`1S?L)qY#"><field name="TEXT">25</field></block></value></block></value></block></value> <statement name="DO0"><block type="comment" id="+S?0|pZATaMz1}CzX^~."><field name="COMMENT">Nur ausführen wenn Lampe aus ist</field> <next><block type="controls_if" id="YJb4cCS+,@jNK9CWFz?z"><value name="IF0"><block type="logic_compare" id=";|)#0MYE[E5#(0=JzXk/"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="u)L61t7Dh0@VPRfs!8EF"><field name="ATTR">val</field> <field name="OID">ID auswählen</field></block></value> <value name="B"><block type="logic_boolean" id="qqvtv]*tRZ7sgB^2V3bE"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO0"><block type="procedures_callnoreturn" id="b}b7X}%mxQ2/i!je]A0%"><mutation name="LampeEin"></mutation> <next><block type="procedures_callnoreturn" id=":~}9e0W4xmofiGxnwW]l"><mutation name="LampeAus"></mutation></block></next></block></statement></block></next></block></statement></block></next></block></statement></block></next></block>
<block type="procedures_defnoreturn" id="8_KqmQLaVS6L(-X%G}i" x="-288" y="-763"><field name="NAME">LampeEin</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK"><block type="control" id="d],9gsKL`X1f:(FjP,5"><mutation delay_input="false"></mutation>
<field name="OID">hm-rpc.0.MEQ1438874.1.STATE</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id=")=Xq?8E}6QPPtq~+D3w!"><field name="BOOL">TRUE</field></block></value>
<next><block type="pushover" id="AY;G(Wxxxxx5.V[{z]{"><field name="INSTANCE">.0</field>
<field name="SOUND">bugle</field>
<field name="PRIORITY">0</field><value name="MESSAGE"><shadow type="text" id="Z{dLen%l-7%egHK={q8Z"><field name="TEXT">Kugellampen bei Dämmerung für 2h an (< 30)</field></shadow></value> <value name="URL"><block type="text" id="CTQcG;Pq4(J-rdW(#(am"><field name="TEXT">http://xxxx:8082/vis/#Tablet_Final</field></block></value></block></next></block></statement></block>
<block type="procedures_defnoreturn" id="|OJe]Y-?I7fd!m[GI
]S" x="312" y="-763"><field name="NAME">LampeAus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="timeouts_settimeout" id="%?YX2J)iGt#;:Hg3@9!("><field name="NAME">timeout</field> <field name="DELAY">7200000</field> <statement name="STATEMENT"><block type="control" id="f/S/Ei|kY^%.82Opu-0m"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.MEQ1438874.1.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Qvkr
(o:od:W?m8=yWTq"><field name="BOOL">FALSE</field></block></value>
<next><block type="email" id="3H9OWJf3/vDSiJwX-.eA"><field name="INSTANCE">.0</field>
<field name="IS_HTML">TRUE</field><value name="TO"><shadow type="text" id="hx,z}JE_`sT0O;UA1E0H"><field name="TEXT">xxxx@gmail.com</field></shadow></value> <value name="TEXT"><shadow type="text" id="(K+=P`xf=Nm!cx,,=lJp"><field name="TEXT">Kugellampen AUS</field></shadow></value> <value name="SUBJECT"><shadow type="text" id="DVkB8}Al:alQL-ewpYQg"><field name="TEXT">http://xxxxx:8082/vis/#Tablet_Final</field></shadow></value></block></next></block></statement></block></statement></block></xml>
! ````
Bei Fragen fragen
Grüße
-
Hab es gerade probiert und hat auf Anhieb funktioniert. Das Script hat mir auch geholfen die Logik dahinter zu verstehen. Vielen Dank für deine Hilfe!
Gruß crepp
-
Danke für die Rückmeldung, gern geschehen.
Würdest Du bitte noch den Betreff in Deinem ersten Beitrag mit [gelöst] ändern.
Weitere Infos findest Du hier. http://forum.iobroker.net/viewtopic.php?f=8&t=2451
Grüße
-
Klar
-
Wie ich jetzt festgestellt habe funktioniert das Script grundsätzlich, allerdings schaltet die Lampe abends mit Einbruch der Dämmerung wie gewollt, am morgen zwischen den eingestellten Triggerwerten jedoch auch. Das ist natürlich so nicht gewollt. Ich habe dann damit experimentiert den Zeitbereich einzugrenzen (zw, 18:00 und 22:00) Dann hat das Script aber nicht mehr funktioniert. Weiss jemand Rat ? Ich möchte die Lampe auch nicht die ganze Nacht leuchten lassen …
MfG
crepp
Im Anhang noch mal die aktuelle Version.
686_unbenannt.png -
Ich habe dann damit experimentiert den Zeitbereich einzugrenzen (zw, 18:00 und 22:00) Dann hat das Script aber nicht mehr funktioniert. Weiss jemand Rat ? Ich möchte die Lampe auch nicht die ganze Nacht leuchten lassen … `
Hallo
Zeige doch mal Deine Versuche.
Grüße
-
Hallo,
Das war die Version die überhaupt nicht funktioniert hat.
Ich habe diese Version aber leider gelöscht, nachdem ich tagelang verschieden Sachen getestet hatte.
Ich hatte hier an der Stelle mit dem Pfeil eine Zeitfunktion nach der Art "und nur zwischen 16.00 und 22:00"
Ich finde aber den entsprechenden Baustein nicht mehr.
Ich dachte mit der Zeitfunktion kann ich die Schaltung beeinflussen …
War das programmlogisch nicht richtig ?
Gruß
crepp
-
Hallo crepp
Der Baustein den Du suchst ist der 2. unter "Datum und Zeit".
Klick mal auf den Pfeil hinter "kleiner als".
Viele Wege führen nach Rom.
Deine Lösung könnte jetzt so aussehen.
Grüße
-
Ah ok, ich hatte den Zeitbaustein unter den Trigger Helligkeit gesetzt, ich probier das jetzt mal so.
Danke für die schnelle Hilfe
crepp
-
Bin gerade auf der Suche wie man "und" und "oder" Bedingungen gruppiert in Blockly und bin dabei auf eueren schönen "und" mit 2 Ausgängen gestoßen. Wenn man den auf "oder" umstellen kann wäre das sicher die Lösung von meinem Problem aber ich finde und kenne nur den einfachen "und/oder" Block mit einem Ein- und Ausgang. Wo ist denn der versteckt?
-
Bin gerade auf der Suche wie man "und" und "oder" Bedingungen gruppiert in Blockly und bin dabei auf eueren schönen "und" mit 2 Ausgängen gestoßen. Wenn man den auf "oder" umstellen kann wäre das sicher die Lösung von meinem Problem aber ich finde und kenne nur den einfachen "und/oder" Block mit einem Ein- und Ausgang. Wo ist denn der versteckt? `
HalloEine Frage stellen, die mit dem Thema dieses Thread nicht zutun hat, der zudem mit [gelöst] gekennzeichnet ist, macht nicht viel Sinn!
Aber sei es drum. Klick doch einfach mal auf das Pfeilchen hinter dem "und"…....
Grüße
-
So offtopic fand ich es gar nicht aber sorry. Ich finde den Block ja erst gar nicht
Den einzigen "und" Block den ich finde ist der in Logik und der schaut ganz anders aus. Soll ich einen neuen Thread aufmachen und hierher verlinken um den "und" Block zu beschreiben den ich suche?
2548_bildschirmfoto_2017-05-21_um_13.18.50.png -
Eine neuen Thread mit "[Frage] Blockly …." wäre gut.
Aber Dein Problem verstehe ich nicht ganz. Die Problemstellung bitte an einem Beispiel.
Grüße
-
Als Antwort auf die Frage mit dem UND
wenn du denn UND Baustein mit der rechten Maustaste anklickst, kannst du externe Eingänge auswählen.
Dann sieht er so aus wie auf dem Bild
habs selber gerade erst heraus gefunden
-
Hallo,
muss hier nochmal einhaken, da ich den Thread gestartet habe. Hatte ursprünglich gedacht das selber hinzubekommen, dem ist allerdings nicht so.
Aktuell läuft das Script zu richtigen Zeit an (Dämmerung definiert über Brightness) Obwohl ich einen timeaut von 4h definiert habe läuft es nur 12min stoppt um dann nach weiteren 10min wieder für 12min die Lampe einzuschalten ?!
Ich habe einen kleiner als-Wert für Brightness definiert, deswegen bin ich wegen der Unterbrechung doch etwas verunsichert.
crepp
Im Diagramm sieht man die Unterbrechung… -
Hallo crepp
Schau Dir Dein Beispiel noch mal an.
Du triggers auf Änderung der Helligkeit.
Das geht den GANZEN Tag rauf und runter.
Und JEDESMAL wird "LampeAus" aufgerufen und ein Timer von x Stunden gestartet.
Gestarte Timer bleiben aktiv!!!!!
Sagen wir mal Dein BM meldet alle 10 Minuten eine Helligkeitsänderung.
Ahnst Du schon etwas?
Im Laufe eines Tages laufen dann bei Dir ca. 144 Timer, die alle x Stunden das Liicht ausschallten.
Und das machen die dann auch.
Alle x Stunden + 10 Minuten geht das Licht aus!
Da wo ich das "LampeAus" hingesetzt hatte, macht es schon Sinn.
Grüße
-
Ja jetzt fällt es mir wie Schuppen …
Du hast natürlich recht aber ich hatte das nicht bedacht. Ich habe das ("Lampe aus" vor die Zeitabgrenzung) vor einigen Tagen gemacht, Da die Lampe zwar an aber nicht mehr ausging...
Jetzt verstehe ich auch warum ich immer noch Lampe Aus- Mauils bekomme (Die timer sind alle noch aktiv)
Wie breche ich die ab ? iobroker Neustart reicht ?
so hart kann lernen sein ...
Werde dann erst mal den Ursprungszustand wiederherstellen und testen, melde mich dann wieder, da das Problem mit dem Ausschalten ja noch nicht geklärt ist.
Gruß
crepp
-
Ich wollte mich nur noch mal melden:
Das Script läuft jetzt wie ich es mir vorgestellt hatte, schltet zwei Lampen mit einbruch der Dämmerung ein (2min Verzögerung zw. beiden) und nach 4h wieder aus.
Vielen Dank für die Hilfe, ich habe an dem Beispiel so einiges gelernt und hoffe das ich nun auch andere Aufgaben mit der Vorlage lösen kann.
Gruß
crepp
Für alle die es interessiert: