NEWS
Blockly Astro-Rolladensteuerung
-
Hallo Zusammen,
ich bin noch ein ziemlicher Anfänger in iOBroker und möchte meinen Rolladen wie folgt steuern:
Unter der Woche soll der Rolladen zum Sonnenaufgang hochfahren und zum Sonnenuntergang runterfahren. Das habe ich bisher auch so hibekommen. Am Wochenende und an Feiertagen soll der Rolladen aber erst um 10.30 Uhr hochfahren. Das habe ich bisher nicht zum laufen bekommen. Vll. kann mir einer von Euch weiterhelfen!
Vielen Dank!!
4707_datei_001.png -
Moin,
das ginge mit einem Hilfsdatenpunkt, z.B. Arbeitstag.
Den kannst du mit weiteren Scripten setzen, mit cron als Trigger relativ einfach die Wochenenden. Weiterhin gibt es hier irgendwo einen Feiertagskalender. Da lässt sich dann sicherlich auch was bauen.
Der DP steht dann an Arbeitstagen auf true.
Du erweiterst dein Blockly also um falls - mache -> falls Wert von Arbeitstag = true -> Rolladen hochfahren
So läuft die Astrofunktion fürs hochfahren nur an Arbeitstagen.
Jetzt kannst du ein weiteres Script mit Cron triggern jeden Tag 10:30Uhr falls Wert von Arbeitstag = false -> Rolladen hochfahren
Gruß
Matze
EDIT: Oh man, für die Feiertage gibt es sogar einen Adapter. Der setzt z.B. feiertage.0.heute.boolean auf true, sobald ein Feiertag ist.
Also einfach machbar.
Frag wenn du mit meinem Geschreibsel nix anfangen kannst.
-
Hallo Matze, schon mal vielen Dank für deine schnelle Antwort.
Den Feiertag-Adapter habe ich gleich installiert und versucht einzubinden.
Allerdings habe ich noch nicht ganz verstanden wie du das mit dem CRON-Trigger meinst um das mit den Arbeitstagen einzubinden :roll:
Vll. kannst du mir ja das kurz einen Screenshot vom Grundgerüst schicken, das wäre super.
Vielen Dank nochmal für deine Unterstützung!
4707_blockly.png -
Moin,
so aus der Hüfte geschossen
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block id="MsAHg|-SMIE?C4%@l)c_" type="comment" x="-762" y="-538"><field name="COMMENT">Datenpunkt Arbeitstag erzeugen und steuern</field>
<next><block id="fKbG^ef?ge+bD23ROlf" type="create"><field name="NAME">javascript.0.Arbeitstag</field> <statement name="STATEMENT"><block id="l{SFGs+WCkKfk]I?nQid" type="schedule"><field name="SCHEDULE">10 0 * * 1-5</field> <statement name="STATEMENT"><block id="GTBmlGoD+mF{uN^i:i4V" type="controls_if"><mutation else="1"></mutation> <value name="IF0"><block id="Bk1((q9.{m
?2D#:wO]" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="YKXKBU5X7P8ild)BWaI+" type="get_value"><field name="ATTR">val</field>
<field name="OID">feiertage.0.heute.boolean</field></block></value>
<value name="B"><block id="dt{TWgosb4Diz!(qeI1" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block id="!u95_2T_@PdN4n{GM2?T" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="NHduq8fQCRwTX?x.7t*f" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement> <statement name="ELSE"><block id="?-YG*FP)3]HF{x2u%HVt" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="WsSH0Dy9q}tluW/wFAFg" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> <next><block id="S3.5)f@HcWyub7GG0(cA" type="schedule"><field name="SCHEDULE">10 0 * * 0,6</field> <statement name="STATEMENT"><block id="~vrPk6G_TI6}FQp2BvsB" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="xI/OunMJWyNJvF1i:^9O" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block id="Xs[[*.g#rH]Nh(Z4PtS4" type="comment"><field name="COMMENT">An Arbeitstagen Rolladen per Astro hochfahren</field> <next><block id="xfv(ji1U?E,R!9Y]t@-2" type="astro"><field name="TYPE">dawn</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block id="){@oj.HqG@hvL()56?|z" type="controls_if"><value name="IF0"><block id="1-OKfhJ7lwB2dXKpsm.i" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id=".{_6BdJ%IY0X5{6+vjS;" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Arbeitstag</field></block></value> <value name="B"><block id="Ymm)MK=7IO+)v2?7UgCt" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block id="^:N]aah_A(L9ax7e
!Kh" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="!P{e,/-KLR:sph3|]%Kf" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement>
<next><block id=".}r,GY08l9I1?`j[gJa{" type="comment"><field name="COMMENT">Rolladen per Astro runterfahren</field>
<next><block id=")N.~NDUYGw0OUCaA32j" type="astro"><field name="TYPE">dusk</field>
<field name="OFFSET">0</field>
<statement name="STATEMENT"><block id="21lB?rY!QC/qYj4(#RVW" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="GuSZVGRsau7@Lm-JNGb" type="math_number"><field name="NUM">0</field></block></value></block></statement>
<next><block id="1%3VuHS51x{J7,o2j;NV" type="comment"><field name="COMMENT">um 10:30 prüfen ob Arbeitstag, wenn nicht Rolladen hochfahren</field>
<next><block id="woA/oQE.;aTbOF6]1WD_" type="schedule"><field name="SCHEDULE">30 10 * * </field>
<statement name="STATEMENT"><block id="x=nehu7R;Ruo{6[Mul2" type="controls_if"><value name="IF0"><block id="BwTuqT7E5SQw]v;Z]31{" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="7UB]6Q{AyaJVxAU7CZ{" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Arbeitstag</field></block></value>
<value name="B"><block id="9R.RqKWqkCZBsg:cW_gf" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></value>
<statement name="DO0"><block id="|BCpJ_OE#Lo?h.BaJL4r" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="~0SND8aJshFeV-ZO-@+@" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>Du kannst den Code bei dir ja mal importieren und damit mal testen. Die Datenpunkte von deinen Rolläden müssen natürlich noch eingesetzt werden. Als Hinweis: der Trigger gehört bei Blockly IMMER nach Außen. Auch Trigger in Trigger funktioniert nicht. Ausnahme hier "Zustand erzeugen". Das kann irgendwo verbaut werden. Gruß Matze
-
Guten Morgen Matze,
habe es gleich importiert und meinen Rolladen eingebunden. der DP wurde auch erstellt.
Ich denke das ist genau das was ich gesucht habe
Eine Frage habe ich noch zum Verständnis, es wird jetzt immer um 0:10 Uhr der Status beim Arbeitstag auf true oder false gestellt und der bleibt solange gleich bis er überschrieben wird?
Und den Baustein "Zustand erzeugen" könnte ich jetzt theoretisch aus dem Script löschen da er ja schon erstellt ist, oder macht es Sinn ihn dauerhaft so stehen zu lassen?
Nochmal vielen herzlichen Dank und schöne Feiertage!!
-
Hi,
Eine Frage habe ich noch zum Verständnis, es wird jetzt immer um 0:10 Uhr der Status beim Arbeitstag auf true oder false gestellt und der bleibt solange gleich bis er überschrieben wird?
Ja, richtig. Das ganze geht bestimmt eleganter, so ist es aber grade für den Anfang am besten verständlich.
Und den Baustein "Zustand erzeugen" könnte ich jetzt theoretisch aus dem Script löschen da er ja schon erstellt ist, oder macht es Sinn ihn dauerhaft so stehen zu lassen?
Der kann theoretisch raus. Vorteil den dazulassen: wenn du die Scripte exportierst und neu / woanders einbindest ( Systemcrash oder ähnliches ) werden die benötigten Datenpunkte automatisch neu erzeugt.
Nochmal vielen herzlichen Dank und schöne Feiertage!!
Dir auch ein frohes Fest!
Matze
-
Als Idee einer sinnvollen Erweiterung. Es gibt bei sowas natürlich noch die dynamische Komponente Urlaub
Dafür könnte man einen weiteren DP benutzen, der von Hand gesetzt wird ( über VIS z.B. )
Den müsste man dann im ersten Zeitplan mit dem Datenpunkt Feiertage "oder" -Verknüpfen.
-
Ja das wird mein Ziel auch sein. Ich habe ioBroker seit ca. 2 Wochen am laufen und bin gerade dabei einige neue Komponenten zu installieren und einzurichten. VIS habe ich schon ausprobiert, aber tue mich da noch etwas schwer.
Außerdem würde ich auch gerne von außerhalb auf einige Funktionen zugreifen können, aber ich habe leider eine Conect Box von Unitymedia die das nicht gerade auf leichte Weise unterstützt. z.B. kein VPN.
Ist es möglich auch nur auf VIS von extern zuzugreifen ohne großen Aufwand?
-
Ist es möglich auch nur auf VIS von extern zuzugreifen ohne großen Aufwand? `
Ja, mit der ioBroker cloud oder iobroker Cloud proGruß
Rainer
-
Hallo Rainer,
Cloud Adapter habe ich installiert und nutze diesen bisher für Alexa.
Kannst du mir erklären wie ich den Zugriff von extern mit einer sicheren Verbindung herstelllen kann? Habe gesehen du hast zu diesem Thema schon mehreren Usern geholfen
Vielen Dank für deine Antwort!
-
Du gehst auf https://iobroker.net und meldest dich da an.
Anschließend müsste dein Zugang zu vis (sofern im cloudadapter die web-Instanz korrekt konfiguriert ist) von dort möglich sein.
Ich nutze selber die pro-Version, kann zur Standardversion nichts sagen
Bei der pro Version kann man dann auch direkt die Android vis app unterwegs nutzen
Gruß
Rainer
-
Hallo Rainer,
der Zugriff von extern funktioniert jetzt soweit. Ist es auch mit der iOS App "Vis Viewer" möglich direkt auf die Cloud zuzugreifen?
Danke für deine Antwort!
-
Hallo Rainer,
der Zugriff von extern funktioniert jetzt soweit. Ist es auch mit der iOS App "Vis Viewer" möglich direkt auf die Cloud zuzugreifen?
Danke für deine Antwort! `
Jup, url für externen Zugang eingeben
~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201712 ... 2bdb83.jpg">https://uploads.tapatalk-cdn.com/20171225/421a08674fd8d3b3451a7149232bdb83.jpg</link_text>" />
( Bzw .Net )
–-----------------------
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~~
-
Moin,
so aus der Hüfte geschossen
blockly.PNG
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block id="MsAHg|-SMIE?C4%@l)c_" type="comment" x="-762" y="-538"><field name="COMMENT">Datenpunkt Arbeitstag erzeugen und steuern</field>
<next><block id="fKbG^ef?ge+bD23ROlf" type="create"><field name="NAME">javascript.0.Arbeitstag</field> <statement name="STATEMENT"><block id="l{SFGs+WCkKfk]I?nQid" type="schedule"><field name="SCHEDULE">10 0 * * 1-5</field> <statement name="STATEMENT"><block id="GTBmlGoD+mF{uN^i:i4V" type="controls_if"><mutation else="1"></mutation> <value name="IF0"><block id="Bk1((q9.{m
?2D#:wO]" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="YKXKBU5X7P8ild)BWaI+" type="get_value"><field name="ATTR">val</field>
<field name="OID">feiertage.0.heute.boolean</field></block></value>
<value name="B"><block id="dt{TWgosb4Diz!(qeI1" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block id="!u95_2T_@PdN4n{GM2?T" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="NHduq8fQCRwTX?x.7t*f" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement> <statement name="ELSE"><block id="?-YG*FP)3]HF{x2u%HVt" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="WsSH0Dy9q}tluW/wFAFg" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> <next><block id="S3.5)f@HcWyub7GG0(cA" type="schedule"><field name="SCHEDULE">10 0 * * 0,6</field> <statement name="STATEMENT"><block id="~vrPk6G_TI6}FQp2BvsB" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="xI/OunMJWyNJvF1i:^9O" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block id="Xs[[*.g#rH]Nh(Z4PtS4" type="comment"><field name="COMMENT">An Arbeitstagen Rolladen per Astro hochfahren</field> <next><block id="xfv(ji1U?E,R!9Y]t@-2" type="astro"><field name="TYPE">dawn</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block id="){@oj.HqG@hvL()56?|z" type="controls_if"><value name="IF0"><block id="1-OKfhJ7lwB2dXKpsm.i" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id=".{_6BdJ%IY0X5{6+vjS;" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Arbeitstag</field></block></value> <value name="B"><block id="Ymm)MK=7IO+)v2?7UgCt" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block id="^:N]aah_A(L9ax7e
!Kh" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="!P{e,/-KLR:sph3|]%Kf" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement>
<next><block id=".}r,GY08l9I1?`j[gJa{" type="comment"><field name="COMMENT">Rolladen per Astro runterfahren</field>
<next><block id=")N.~NDUYGw0OUCaA32j" type="astro"><field name="TYPE">dusk</field>
<field name="OFFSET">0</field>
<statement name="STATEMENT"><block id="21lB?rY!QC/qYj4(#RVW" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="GuSZVGRsau7@Lm-JNGb" type="math_number"><field name="NUM">0</field></block></value></block></statement>
<next><block id="1%3VuHS51x{J7,o2j;NV" type="comment"><field name="COMMENT">um 10:30 prüfen ob Arbeitstag, wenn nicht Rolladen hochfahren</field>
<next><block id="woA/oQE.;aTbOF6]1WD_" type="schedule"><field name="SCHEDULE">30 10 * * </field>
<statement name="STATEMENT"><block id="x=nehu7R;Ruo{6[Mul2" type="controls_if"><value name="IF0"><block id="BwTuqT7E5SQw]v;Z]31{" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="7UB]6Q{AyaJVxAU7CZ{" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Arbeitstag</field></block></value>
<value name="B"><block id="9R.RqKWqkCZBsg:cW_gf" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></value>
<statement name="DO0"><block id="|BCpJ_OE#Lo?h.BaJL4r" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="~0SND8aJshFeV-ZO-@+@" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>Du kannst den Code bei dir ja mal importieren und damit mal testen. Die Datenpunkte von deinen Rolläden müssen natürlich noch eingesetzt werden. Als Hinweis: der Trigger gehört bei Blockly IMMER nach Außen. Auch Trigger in Trigger funktioniert nicht. Ausnahme hier "Zustand erzeugen". Das kann irgendwo verbaut werden. Gruß Matze `
Hallo ,
ich würde hier gerne nochmal auf das Thema zurückkommen…
Zuerst: Coole Lösung mit dem Überprüfen des Arbeitstages..
Aber: Falls ein Arbeitstag ist, und es ist Sommer.... Dann geht doch so möglicherweise der Rolladen morgens um 4 (Morgendämmerung) hoch, oder ?
Wie könnte man das denn auf frühestens 7.00 einstellen ?
Gruß
Martin
-
Moin Martin,
das wäre dann so ( auch aus der Hüfte ohne Garantie
Um 07:00 Uhr wird geprüft, ob die aktuelle Zeit ( hier dann 07:00 ) gleich oder größer als Astrozeit ist. Wenn ja -> auf
Zur Astrozeit wird geprüft, ob die aktuelle Zeit > 07:00 ist, wenn ja -> auf, wenn nein -> nix.
Als Ergebnis sollte dabei herauskommen: die Dinger fahren um 07:00 auf, es sei denn Astro ist später. Dann verzögert sich das hochfahren nach hinten. Probiere das mal so aus.
Gruß
Matze
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block id="MsAHg|-SMIE?C4%@l)c_" type="comment" x="-1338" y="-737"><field name="COMMENT">Datenpunkt Arbeitstag erzeugen und steuern</field>
<next><block id="fKbG^ef?ge+bD23ROlf" type="create"><field name="NAME">javascript.0.Arbeitstag</field> <statement name="STATEMENT"><block id="l{SFGs+WCkKfk]I?nQid" type="schedule"><field name="SCHEDULE">10 0 * * 1-5</field> <statement name="STATEMENT"><block id="GTBmlGoD+mF{uN^i:i4V" type="controls_if"><mutation else="1"></mutation> <value name="IF0"><block id="Bk1((q9.{m
?2D#:wO]" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="YKXKBU5X7P8ild)BWaI+" type="get_value"><field name="ATTR">val</field>
<field name="OID">feiertage.0.heute.boolean</field></block></value>
<value name="B"><block id="dt{TWgosb4Diz!(qeI1" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block id="!u95_2T_@PdN4n{GM2?T" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="NHduq8fQCRwTX?x.7t*f" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement> <statement name="ELSE"><block id="?-YG*FP)3]HF{x2u%HVt" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="WsSH0Dy9q}tluW/wFAFg" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> <next><block id="S3.5)f@HcWyub7GG0(cA" type="schedule"><field name="SCHEDULE">10 0 * * 0,6</field> <statement name="STATEMENT"><block id="~vrPk6G_TI6}FQp2BvsB" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="xI/OunMJWyNJvF1i:^9O" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block id="Xs[[*.g#rH]Nh(Z4PtS4" type="comment"><field name="COMMENT">An Arbeitstagen Rolladen per Astro hochfahren</field> <next><block id="xfv(ji1U?E,R!9Y]t@-2" type="astro"><field name="TYPE">dawn</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block id="){@oj.HqG@hvL()56?|z" type="controls_if"><value name="IF0"><block id="HnSlD0hdDq(h+X=%cr6," type="logic_operation"><field name="OP">AND</field> <value name="A"><block id="1-OKfhJ7lwB2dXKpsm.i" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id=".{_6BdJ%IY0X5{6+vjS;" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Arbeitstag</field></block></value> <value name="B"><block id="Ymm)MK=7IO+)v2?7UgCt" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block id="uiBRI?z*ecm)78rKne1z" type="time_compare_ex"><mutation actual_time="true" end_time="false"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">></field> <value name="START_TIME"><shadow id="%/Jn.*cHP^zls4QruA,A" type="text"><field name="TEXT">07:00</field></shadow></value></block></value></block></value> <statement name="DO0"><block id="^:N]aah_A(L9ax7e
!Kh" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="!P{e,/-KLR:sph3|]%Kf" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement>
<next><block id="vEsrm5{a4^?IezE(Lrc%" type="comment"><field name="COMMENT">um 07:00 prüfen ob Arbeitstag, wenn ja Rolladen hochfahren sofern noch unten</field>
<next><block id="++=KE?/vi84:1AFR{q,j" type="schedule"><field name="SCHEDULE">0 7 * * </field>
<statement name="STATEMENT"><block id="9})%KkNDO~@EpVe^1y;s" type="controls_if"><value name="IF0"><block id=":^rdihf{wmn!V|ATR,=" type="logic_operation"><field name="OP">AND</field> <value name="A"><block id="%Ma[M?ecw|YEsN^YF2-Z" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id="G56h5PO:PfU+9wP
N.bY" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Arbeitstag</field></block></value>
<value name="B"><block id="yT?iE39EVd|L+FGXF^x" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block id="^oj,UpLvt+*5)*1,r9(_" type="time_compare_ex"><mutation actual_time="true" end_time="false"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">>=</field> <value name="START_TIME"><shadow id=";yd6a-hY|t{/{t5TX**v" type="text"><field name="TEXT">12:00</field></shadow> <block id="YlHiO{zol0}iw5!)U8+." type="time_astro"><field name="TYPE">dawn</field> <field name="OFFSET">0</field></block></value></block></value></block></value> <statement name="DO0"><block id="P]@R])qVf}n!.sds[twB" type="control"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="}{%(O}@BDtL;t^;Og;2{" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement> <next><block id=".}r,GY08l9I1?
j[gJa{" type="comment"><field name="COMMENT">Rolladen per Astro runterfahren</field>
<next><block id=")N.~NDUYGw0OUCaA32j" type="astro"><field name="TYPE">dusk</field>
<field name="OFFSET">0</field>
<statement name="STATEMENT"><block id="21lB?rY!QC/qYj4(#RVW" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="GuSZVGRsau7@Lm-JNGb" type="math_number"><field name="NUM">0</field></block></value></block></statement>
<next><block id="1%3VuHS51x{J7,o2j;NV" type="comment"><field name="COMMENT">um 10:30 prüfen ob Arbeitstag, wenn nicht Rolladen hochfahren</field>
<next><block id="woA/oQE.;aTbOF6]1WD_" type="schedule"><field name="SCHEDULE">30 10 * * </field>
<statement name="STATEMENT"><block id="x=nehu7R;Ruo{6[Mul2" type="controls_if"><value name="IF0"><block id="BwTuqT7E5SQw]v;Z]31{" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="7UB]6Q{Ay*aJVxAU7CZ{" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Arbeitstag</field></block></value>
<value name="B"><block id="9R.RqKWqkCZBsg:cW_gf" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></value>
<statement name="DO0"><block id="|BCpJ_OE#Lo?h.BaJL4r" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="~0SND8aJshFeV-ZO-@+@" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>EDIT: ersetze bitte im 07:00Uhr Trigger "gleich oder größer" durch "gleich oder kleiner"
-
Ja… das sieht gut aus..
Danke.. durch deine Beispiele kann ich viel lernen..
Jetzt muss ich nur noch einbauen, dass ich die Automatik über einen Schalter in einer Vis-View abschalten kann, meine Kinder steuern können, dass sie länger schlafen wolllen und und und....
-
Moin Martin,
bitte meinen Edit beachten.
Deine erstere Anforderung ist total easy. Du kannst das ganze Script über VIS an oder aus schalten. Der Datenpunkt dazu befindet sich unter:
Objekte -> Javascript.Instanznummer -> ScriptEnabled -> Scriptname
Für die Kinder wirds natürlich schwieriger, du musst die Rolladen vielleicht gruppieren, über ICAL einen Ferienkalender einbauen, wie sollen die Kinder das steuern? Fragen über Fragen
Matze
-
.. nunja… die "Kinder" sind schon etwas größer.. 18 und 20... (und ich kann euch sagen, die haben ein schönes Leben so mit Uni und so... )
Die würden es auch schaffen auf nem Tablet ihren Status zu pflegen..
Ich denke, mann müsste im Script noch ne Variable schaffen / prüfen, die über VIS auf false / oder true geschaltet werden kann ?
Ich lass mir da mal noch was einfallen... muss ja auch verbesserungsfähig sein
-
Moin Martin,
das wäre dann so ( auch aus der Hüfte ohne Garantie
blockly.PNG
Um 07:00 Uhr wird geprüft, ob die aktuelle Zeit ( hier dann 07:00 ) gleich oder größer als Astrozeit ist. Wenn ja -> auf
Zur Astrozeit wird geprüft, ob die aktuelle Zeit > 07:00 ist, wenn ja -> auf, wenn nein -> nix.
Als Ergebnis sollte dabei herauskommen: die Dinger fahren um 07:00 auf, es sei denn Astro ist später. Dann verzögert sich das hochfahren nach hinten. Probiere das mal so aus.
Gruß
Matze
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block id="MsAHg|-SMIE?C4%@l)c_" type="comment" x="-1338" y="-737"><field name="COMMENT">Datenpunkt Arbeitstag erzeugen und steuern</field>
<next><block id="fKbG^ef?ge+bD23ROlf" type="create"><field name="NAME">javascript.0.Arbeitstag</field> <statement name="STATEMENT"><block id="l{SFGs+WCkKfk]I?nQid" type="schedule"><field name="SCHEDULE">10 0 * * 1-5</field> <statement name="STATEMENT"><block id="GTBmlGoD+mF{uN^i:i4V" type="controls_if"><mutation else="1"></mutation> <value name="IF0"><block id="Bk1((q9.{m
?2D#:wO]" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="YKXKBU5X7P8ild)BWaI+" type="get_value"><field name="ATTR">val</field>
<field name="OID">feiertage.0.heute.boolean</field></block></value>
<value name="B"><block id="dt{TWgosb4Diz!(qeI1" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block id="!u95_2T_@PdN4n{GM2?T" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="NHduq8fQCRwTX?x.7t*f" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement> <statement name="ELSE"><block id="?-YG*FP)3]HF{x2u%HVt" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="WsSH0Dy9q}tluW/wFAFg" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> <next><block id="S3.5)f@HcWyub7GG0(cA" type="schedule"><field name="SCHEDULE">10 0 * * 0,6</field> <statement name="STATEMENT"><block id="~vrPk6G_TI6}FQp2BvsB" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Arbeitstag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="xI/OunMJWyNJvF1i:^9O" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block id="Xs[[*.g#rH]Nh(Z4PtS4" type="comment"><field name="COMMENT">An Arbeitstagen Rolladen per Astro hochfahren</field> <next><block id="xfv(ji1U?E,R!9Y]t@-2" type="astro"><field name="TYPE">dawn</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block id="){@oj.HqG@hvL()56?|z" type="controls_if"><value name="IF0"><block id="HnSlD0hdDq(h+X=%cr6," type="logic_operation"><field name="OP">AND</field> <value name="A"><block id="1-OKfhJ7lwB2dXKpsm.i" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id=".{_6BdJ%IY0X5{6+vjS;" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Arbeitstag</field></block></value> <value name="B"><block id="Ymm)MK=7IO+)v2?7UgCt" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block id="uiBRI?z*ecm)78rKne1z" type="time_compare_ex"><mutation actual_time="true" end_time="false"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">></field> <value name="START_TIME"><shadow id="%/Jn.*cHP^zls4QruA,A" type="text"><field name="TEXT">07:00</field></shadow></value></block></value></block></value> <statement name="DO0"><block id="^:N]aah_A(L9ax7e
!Kh" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="!P{e,/-KLR:sph3|]%Kf" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement>
<next><block id="vEsrm5{a4^?IezE(Lrc%" type="comment"><field name="COMMENT">um 07:00 prüfen ob Arbeitstag, wenn ja Rolladen hochfahren sofern noch unten</field>
<next><block id="++=KE?/vi84:1AFR{q,j" type="schedule"><field name="SCHEDULE">0 7 * * </field>
<statement name="STATEMENT"><block id="9})%KkNDO~@EpVe^1y;s" type="controls_if"><value name="IF0"><block id=":^rdihf{wmn!V|ATR,=" type="logic_operation"><field name="OP">AND</field> <value name="A"><block id="%Ma[M?ecw|YEsN^YF2-Z" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id="G56h5PO:PfU+9wP
N.bY" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Arbeitstag</field></block></value>
<value name="B"><block id="yT?iE39EVd|L+FGXF^x" type="logic_boolean"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block id="^oj,UpLvt+*5)*1,r9(_" type="time_compare_ex"><mutation actual_time="true" end_time="false"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">>=</field> <value name="START_TIME"><shadow id=";yd6a-hY|t{/{t5TX**v" type="text"><field name="TEXT">12:00</field></shadow> <block id="YlHiO{zol0}iw5!)U8+." type="time_astro"><field name="TYPE">dawn</field> <field name="OFFSET">0</field></block></value></block></value></block></value> <statement name="DO0"><block id="P]@R])qVf}n!.sds[twB" type="control"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="}{%(O}@BDtL;t^;Og;2{" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement> <next><block id=".}r,GY08l9I1?
j[gJa{" type="comment"><field name="COMMENT">Rolladen per Astro runterfahren</field>
<next><block id=")N.~NDUYGw0OUCaA32j" type="astro"><field name="TYPE">dusk</field>
<field name="OFFSET">0</field>
<statement name="STATEMENT"><block id="21lB?rY!QC/qYj4(#RVW" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="GuSZVGRsau7@Lm-JNGb" type="math_number"><field name="NUM">0</field></block></value></block></statement>
<next><block id="1%3VuHS51x{J7,o2j;NV" type="comment"><field name="COMMENT">um 10:30 prüfen ob Arbeitstag, wenn nicht Rolladen hochfahren</field>
<next><block id="woA/oQE.;aTbOF6]1WD_" type="schedule"><field name="SCHEDULE">30 10 * * </field>
<statement name="STATEMENT"><block id="x=nehu7R;Ruo{6[Mul2" type="controls_if"><value name="IF0"><block id="BwTuqT7E5SQw]v;Z]31{" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="7UB]6Q{Ay*aJVxAU7CZ{" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Arbeitstag</field></block></value>
<value name="B"><block id="9R.RqKWqkCZBsg:cW_gf" type="logic_boolean"><field name="BOOL">FALSE</field></block></value></block></value>
<statement name="DO0"><block id="|BCpJ_OE#Lo?h.BaJL4r" type="control"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="~0SND8aJshFeV-ZO-@+@" type="math_number"><field name="NUM">100</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>EDIT: ersetze bitte im 07:00Uhr Trigger "gleich oder größer" durch "gleich oder kleiner" `
OK.. das verstehe ich jetzt nicht ganz…. So wird doch nur um 7:00 der Rollo hochgefahren, falls die Morgendämmerung schon da ist, oder ?
Was ist dann aber im Winter, wenn es um Sieben eben noch Dunkel ist ? Dann läuft doch diese Prüfung ins leere ?
Ich stelle mir vor, dass die Rollos eben frühestens um 7:00 hochgehen, aber eben doch mit der Dämmerung, also im Winter möglicherweise erst um 8:30.
Edit: ok... habs verstanden
Edit 2: ich denke der Trigger muss doch "gleich oder größer" sein... Um 7:00, wenn die aktuelle Zeit (7:00) gleich 7:00 oder größer als die Morgendämmerung (z.B. 4:00) ist, dann Rollo hoch. oder ?
-
.. nunja… die "Kinder" sind schon etwas größer.. 18 und 20... (und ich kann euch sagen, die haben ein schönes Leben so mit Uni und so... )
Die würden es auch schaffen auf nem Tablet ihren Status zu pflegen..
Ich denke, mann müsste im Script noch ne Variable schaffen / prüfen, die über VIS auf false / oder true geschaltet werden kann ?
Ich lass mir da mal noch was einfallen... muss ja auch verbesserungsfähig sein `
Entweder das oder die Kinder da ganz rausnehmen. Müssen halt einen Schalter drücken wenn sie um 13:00Uhr aufstehen :lol:
Matze <- hat selber 5