NEWS
[Gelöst] Blockly - Rollo Steuerung Abhängigkeit Tür
-
Hallo,
habe mir schon diverse Threads angeguckt aber bekomme das nicht so hin.
Ich möchte das das Rollo zwischen sonnenuntergang und 23:59 runtergeht wenn der TFK zu ist.
und wenn er offen ist soll er mir eine Nachricht schicken und eben nicht schliessen.
Das klappt soweit!
Folgenes hätte ich noch gern:
1. Zeitraum: zwischen Sonneruntergang und nächsten Tag Sonnenaufgang ( aber da gibts Probleme wegen dem Folge Tag nehme ich an)
2. Falls die Tür dann geschlossen wird soll das Rollo mit einer Verzögerung von 5 Sek geschlossen werden. (hat nicht geklappt)
3. Das Rollo soll morgens zu einer festen Zeit geöffnet werden.
-
1. Zeitraum: zwischen Sonneruntergang und nächsten Tag Sonnenaufgang `
Aktuelle Zeit ist <u>nicht zwischen</u> Aktuelle Zeit von Sonnenaufgang <u>und</u> Aktuelle Zeit von Sonnenuntergang
@Belei:2. Falls die Tür dann geschlossen wird soll das Rollo mit einer Verzögerung von 5 Sek geschlossen werden. (hat nicht geklappt) `
Es muss auf den Datenpunkt der Tür getriggert werden.
@Belei:3. Das Rollo soll morgens zu einer festen Zeit geöffnet werden. `
Es muss zum Zeitpunkt getriggert werden (Zeitplan).EDIT: Etwa so
filename="Blockly_Rollo_Tür_nachts.JPG" index="0">~~ -
HAMMER
Wenn ich ein fertigen Blockly sehe verstehe ich die Logik deutlich besser.
Ich wäre nie auf " nicht zwischen" Sonnenaufgang und Sonnenuntergang gekommen!
Und überhaupt, dein code ist poesie
Werde das mal nachtippen, danke.
Allgemein:
Der 2te und 3te Trigger wird also auch immer abgefragt auch wenn der 1rste nicht wahr ist?
-
Ein Trigger wird nicht abgefragt, er gibt den Start vor, quasi startet er die Abfrage des Rest darin
-
-
Ist das richtig das der Wert State von meinem Homematic TFK über FHEM mal mit open/close und mal mit true/false auftaucht? `
So etwas darf nicht sein ! -
Habe den Code nachgebaut.
Ich hatte zum Zeitpunk Sonnenuntergang den TFK geöffnet und es kam eine Pushover!
Dann habe ich den TFK geschlossen aber das Rollo bleibt oben?
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="44gpXyTQ_x[N#VzCnLgb" x="-337" y="-187"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="Poy6_h96Od5zcQnsna1Q"><field name="oid">fhem.0.TuerWintergarten.state</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="~SDsCLI;Ecv,J4DYR][2"><value name="IF0"><block type="logic_operation" id="xeQ8y5~YP3iw[{iD~Xh?" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="UVWr,|+un*umA`A@ha/e"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="QDf1rH9*AvsV(PqbdA|d"><field name="VAR">Wert</field></block></value> <value name="B"><block type="text" id="6T;_]0cB,lx#zfvCq:XS"><field name="TEXT">closed</field></block></value></block></value> <value name="B"><block type="time_compare_ex" id="lq}5.T/dgY(|gI-Jt73!" inline="false"><mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"><shadow type="text" id="XX`gW4T692bu)A~)lBzt"><field name="TEXT">12:00</field></shadow> <block type="time_astro" id="5tHBay*bx1N5%yaX%NS#"><field name="TYPE">sunrise</field> <field name="OFFSET">0</field></block></value> <value name="END_TIME"><shadow type="text" id="NlAm,A)HGHgJ6/pTHHCM"><field name="TEXT">18:00</field></shadow> <block type="time_astro" id="T*_snCzodss?}RO}9K.|"><field name="TYPE">sunset</field> <field name="OFFSET">0</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="qD9oBw7dS/o@Uxyc~wvN"><mutation delay_input="true"></mutation> <field name="OID">rflink.0.channels.BrelMotor_2.BLIND_33</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="O1fn9hkCEI9S!jXy:2H{"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement> <next><block type="schedule" id="cZ5_:~7y)EO~[u:oSpPF"><field name="SCHEDULE">0 8 * * *</field> <statement name="STATEMENT"><block type="control" id="J??JUNQrd~`AydANF6~:"><mutation delay_input="false"></mutation> <field name="OID">rflink.0.channels.BrelMotor_2.BLIND_33</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="(D5.2~Lt9hzhRUZ2a-*!"><field name="BOOL">TRUE</field></block></value></block></statement> <next><block type="astro" id="LA7JOH!g~G24~51gsUCx"><field name="TYPE">sunset</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block type="comment" id="jW:/2v8@CivU%=pTS;HL"><field name="COMMENT">Tür</field> <next><block type="controls_if" id="1K|.!Jb]|TaM~WOs~7fD"><mutation else="1"></mutation> <value name="IF0"><block type="logic_compare" id="Yr`%2BVA+)E`+xbM=[6l"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="A;v/Eh#/d@[B@nsyCu89"><field name="ATTR">val</field> <field name="OID">fhem.0.TuerWintergarten.state</field></block></value> <value name="B"><block type="text" id="q7N]*%zDKsDJTlA:C9j/"><field name="TEXT">closed</field></block></value></block></value> <statement name="DO0"><block type="comment" id="cUM:S{Einto7-^LMzwGd"><field name="COMMENT">Rollo</field> <next><block type="control" id="%*E8RwVufT3V:u`~*o_!"><mutation delay_input="false"></mutation> <field name="OID">rflink.0.channels.BrelMotor_2.BLIND_33</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Z~8]z~~nLyw?LTq-{VVA"><field name="BOOL">FALSE</field></block></value></block></next></block></statement> <statement name="ELSE"><block type="pushover" id="AK0T#ShP]?X@A;^uHhd?"><field name="INSTANCE">.0</field> <field name="PRIORITY">0</field> <value name="MESSAGE"><shadow type="text" id="2e+lsSk:^Z1,Aqwi)@p`"><field name="TEXT">Rollo 3 konnte nicht geschlossen werden, da die Wintrgarten Tür noch geöffnet ist.</field></shadow></value></block></statement></block></next></block></statement></block></next></block></next></block> <block type="comment" id="V*g}ZJ^:Ga3j_MdCbcyx" x="-262" y="213"><field name="COMMENT">Morgens Rollo hoch</field></block></xml>
-
Dann habe ich den TFK geschlossen aber das Rollo bleibt oben? `
Wird dann tatsächlich der Wert "closed" geliefert. Das solltest Du mal Loggen (vor dem falls im Tür-Trigger):debug output Wert
-
Ich "meine" das da gestern mal False stand…
Aber definitiv eben mehrmals auf zu gemacht, wird immer auf open/closed geändert.
Habe auch gerade den Kontakt nochmal gelöscht und neu gesynct.
-
20:05:14.919 [info] javascript.0 Stop script script.js.common.Rollo_Wz_Tür_Schiebetür 20:05:15.106 [info] javascript.0 Start javascript script.js.common.Rollo_Wz_Tür_Schiebetür 20:05:15.107 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: subscribe: {"pattern":{"id":"fhem.0.TuerWintergarten.state","change":"ne"},"name":"script.js.common.Rollo_Wz_Tür_Schiebetür"} 20:05:15.107 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: schedule(cron=0 8 * * *) 20:05:15.107 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: setTimeout(ms=21284897) 20:05:15.107 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: registered 1 subscription and 2 schedules
-
Den Debug-Block hast Du eingebaut und die Tür anschließend geschlossen ?
-
ähm jetzt ja. Aber wo soll jetzt was angezeigt werden? bzw muss ich noch im Blockly auf debug und Hilfe klicken?
Edit:
Oder meiste oben im ersten Block, der wäre doch eigentlich gerade aktiv?
-
Ein Loggen eines konstanten Strings "Wert" bei Sonnenuntergang liefert keine Information. Bitte so:
Dann siehst Du im Log unterhalb des Blockly-Fensters ob beim Schließen der Tür false oder closed übergeben wird. -
Wie sieht der Datenpunkt (Wert) der Tür im Reiter Objekte aus ? Vielleicht so ?
closed anstelle Aus ? -
mhhh UNDEFined
21:33:12.285 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: setTimeout(ms=16007727) 21:33:12.285 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: registered 1 subscription and 2 schedules 21:34:22.893 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: undefined 21:34:33.391 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: undefined
Datenpunkt wurde der unter bei state genommen.
-
siehe nächsten Beitrag.
-
Ich habe ein Vermutung: Ist Wert eine Variable ? Dann ist undefined erklärbar.
Wert muss eine Eigenschaft des Triggerdatenpunktes sein (Trigger-Blöcke).
Hier Dein Export mit Korrektur:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="44gpXyTQ_x[N#VzCnLgb" x="-337" y="-187"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="Poy6_h96Od5zcQnsna1Q"><field name="oid">fhem.0.TuerWintergarten.state</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="~SDsCLI;Ecv,J4DYR][2"><value name="IF0"><block type="logic_operation" id="xeQ8y5~YP3iw[{iD~Xh?" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="UVWr,|+un*umA`A@ha/e"><field name="OP">EQ</field> <value name="A"><block type="on_source" id="q3KMWhUK-EOqYkTW,;]t"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="text" id="6T;_]0cB,lx#zfvCq:XS"><field name="TEXT">closed</field></block></value></block></value> <value name="B"><block type="time_compare_ex" id="lq}5.T/dgY(|gI-Jt73!" inline="false"><mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"><shadow type="text" id="XX`gW4T692bu)A~)lBzt"><field name="TEXT">12:00</field></shadow> <block type="time_astro" id="5tHBay*bx1N5%yaX%NS#"><field name="TYPE">sunrise</field> <field name="OFFSET">0</field></block></value> <value name="END_TIME"><shadow type="text" id="-L8;|(Q?gQ^IBvs[c#QL"><field name="TEXT">18:00</field></shadow> <block type="time_astro" id="T*_snCzodss?}RO}9K.|"><field name="TYPE">sunset</field> <field name="OFFSET">0</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="qD9oBw7dS/o@Uxyc~wvN"><mutation delay_input="true"></mutation> <field name="OID">rflink.0.channels.BrelMotor_2.BLIND_33</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="O1fn9hkCEI9S!jXy:2H{"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement> <next><block type="schedule" id="cZ5_:~7y)EO~[u:oSpPF"><field name="SCHEDULE">0 8 * * *</field> <statement name="STATEMENT"><block type="control" id="J??JUNQrd~`AydANF6~:"><mutation delay_input="false"></mutation> <field name="OID">rflink.0.channels.BrelMotor_2.BLIND_33</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="(D5.2~Lt9hzhRUZ2a-*!"><field name="BOOL">TRUE</field></block></value></block></statement> <next><block type="astro" id="LA7JOH!g~G24~51gsUCx"><field name="TYPE">sunset</field> <field name="OFFSET">0</field> <statement name="STATEMENT"><block type="comment" id="jW:/2v8@CivU%=pTS;HL"><field name="COMMENT">Tür</field> <next><block type="controls_if" id="1K|.!Jb]|TaM~WOs~7fD"><mutation else="1"></mutation> <value name="IF0"><block type="logic_compare" id="Yr`%2BVA+)E`+xbM=[6l"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="A;v/Eh#/d@[B@nsyCu89"><field name="ATTR">val</field> <field name="OID">fhem.0.TuerWintergarten.state</field></block></value> <value name="B"><block type="text" id="q7N]*%zDKsDJTlA:C9j/"><field name="TEXT">closed</field></block></value></block></value> <statement name="DO0"><block type="comment" id="cUM:S{Einto7-^LMzwGd"><field name="COMMENT">Rollo</field> <next><block type="control" id="%*E8RwVufT3V:u`~*o_!"><mutation delay_input="false"></mutation> <field name="OID">rflink.0.channels.BrelMotor_2.BLIND_33</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Z~8]z~~nLyw?LTq-{VVA"><field name="BOOL">FALSE</field></block></value></block></next></block></statement> <statement name="ELSE"><block type="pushover" id="AK0T#ShP]?X@A;^uHhd?"><field name="INSTANCE">.0</field> <field name="PRIORITY">0</field> <value name="MESSAGE"><shadow type="text" id="2e+lsSk:^Z1,Aqwi)@p`"><field name="TEXT">Rollo 3 konnte nicht geschlossen werden, da die Wintrgarten Tür noch geöffnet ist.</field></shadow></value></block></statement></block></next></block></statement></block></next></block></next></block>
<block type="comment" id="V*g}ZJ^:Ga3j_MdCbcyx" x="-262" y="213"><field name="COMMENT">Morgens Rollo hoch</field></block></xml>
-
Ich habe jetzt noch nicht neu importiert sonder tatsächlich die VARIABLE Wert geändert in Trigger/objectID-Wert.
Und Debug ausgemacht, das Rollo ging runter. Steht zwar trotzdem was mit undefined aber es ging.
22:23:52.148 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: undefined 22:23:52.149 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: getAstroDate(pattern=sunrise, date=Sat Sep 29 2018 22:23:52 GMT+0200 (CEST)) => Sat Sep 29 2018 07:20:05 GMT+0200 (CEST) 22:23:52.149 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: getAstroDate(pattern=sunset, date=Sat Sep 29 2018 22:23:52 GMT+0200 (CEST)) => Sat Sep 29 2018 19:06:07 GMT+0200 (CEST) 22:23:52.149 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: setStateDelayed(id=rflink.0.channels.BrelMotor_2.BLIND_33, state=false, isAck=false, delay=10000, clearRunning=false) 22:24:02.149 [info] javascript.0 script.js.common.Rollo_Wz_Tür_Schiebetür: setForeignState(id=rflink.0.channels.BrelMotor_2.BLIND_33, state={"val":false,"ack":false})
-
Ich habe jetzt noch nicht neu importiert sonder tatsächlich die VARIABLE Wert geändert in Trigger/objectID-Wert. `
Mehr habe ich auch nicht geändert. Kann also so bleiben. -
Super, wieder was gelernt!
Danke für die Hilfe.
Ein komischen Rollo Script hab ich noch :roll:
Aber jetzt bin ich zu müde :mrgreen: