NEWS
[WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen
-
Entwarnung!
ich habe nun die Version 0.13.0-B4 installiert und einen factory default gemacht.Warum auch immer, aber nun geht es, auch nach reset an der Stromversorgung.
Danke für die Hilfe
-
@hartwigm sagte in [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen:
Entwarnung!
ich habe nun die Version 0.13.0-B4 installiert und einen factory default gemacht.Warum auch immer, aber nun geht es, auch nach reset an der Stromversorgung.
Danke für die Hilfe
Ah Check, das war meine Vermutung.
Mir ist von aircookie (wled Entwickler) bekannt das es in der Firmware Probleme gab aber konnte es nicht hieran relativieren -
Hallo zusammen,
ich verzweifele, weil ich bei meiner Garagenfahrt den Fehler nicht finde.
Ich nutze als Schaltpunkte 2 Xiaomi Fensterkontakte.
Ist das Tor unten ist der untere Kontakt zu/(False) und der obere Kontakt offen/(True)
Die Steuerung des WLED habe ich diesmal nicht mit Presets gemacht sondern ich steuere die Effekte direkt im Script an.
Beim Rauffahren passt alles. Nur beim Runterfahren beginnt er mit dem roten Laufband. Aber nach kurzer Zeit springt er in das weiße Laufband gefolgt von den Spots. Wenn das Tor dann unten ist, geht das WLED aus.
Ich verstehe null, warum er unterwegs springt. Die Kontakte geben unterwegs auch keine Zwischenstand ab (true/false). Zudem verstehe ich nicht warum er in der Routine direkt zum weiß springt. Wenn doch was wäre, müsste er doch auch das grün noch anzeigen...
Ich packe Euch mal das Blockly rein. Ggf. findet einer von Euch das Problem.
-
Hallo, @vocaris,
Du könntest in Dein Script nach jedem Schritt ein Debug output reintun.
.
Dann kannst Du zumindest im Log sehen, was in Deinem Script wann passiert. Ich würde insbesondere die beiden Fensterkontakte mit Ihren Änderungen überwachen.
Wenn Du die beiden Kontakte benutzt, um einen eigenen Datenpunkt zu füllen mit z.B. Tor_auf, Tor_zu und Tor_fährt, und Du dann diese Zustandsänderungen mitprotokollierst, kannst Du zumindest erst mal die Kontakte ausschließen.
Das Steuerungsscript triggerst Du dann auf Deinen Datenpunkt.
Ich mache das so:
Vielleicht findest Du da etwas. Viel Erfolg.
-
@opossum Danke. Mit dem Debug einsetzen kenne ich mich leider nicht aus. Als was man da tun muss, welchen Wert man nimmt etc.
Klar mit einem Datenpunkt kann man es auch machen. Wäre halt noch ein Schritt und ein Scripte mehr.
Abe selbst wenn sich beim Runterfahren die Kontakte (warum auch immer) ändern würden. Warum springt er dann nicht wenn zuerst zu dem grün. Wieso direkt zu dem weiß.. -
Hallo vocaris
Ich habe am Toor 2 Initiatoren also vergleichbar mit dir.
Hier mein Blockly da ist Tag und Nacht wie auch Uhrzeiten berücksichtigt und auch eine Weihnachtsbeleuchtung.
Ich mache es mit Preset.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="cron" id="schedule1">schedule1</variable> <variable id="g;sVV^-s@hbkRnou(]]U">Weckzaehler</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on_ext" id="j@JF6W3$sYu)i6.~fU{P" x="87" y="-587"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="|4t9:t3.OH1szD[hPRqr"> <field name="oid">alias.0.EG-Garage.Tor.any_001</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="@`X8.6(c=E7uR^Cq?er:"> <field name="oid">alias.0.EG-Garage.Tor.any_002</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="(FViH]c1OVm~2sa*e:VC"> <value name="IF0"> <block type="logic_compare" id="W3$!+Sv?tMMFHBOf)fit"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="5_f0UuLehNnL1L(a8I?e"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Nacht</field> </block> </value> <value name="B"> <block type="logic_boolean" id="M]j4h{ejpI9fy4Jjvh7-"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="~B)XT}Wgp[nE2j/xbyZ^"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="hSJlSSNz|2yw}#tJu9da"> <field name="TEXT">Trigger</field> </shadow> </value> <next> <block type="comment" id="YH,moq}v`B;kLCo%pxu("> <field name="COMMENT">Tor fährt</field> <next> <block type="controls_if" id="MYvPjNGt5F%n9H8h?jH)"> <value name="IF0"> <block type="logic_operation" id="J00aSf509fM0!5EeE^I)"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="L)G,oa=u+-j~1oB45c^Q"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Tb3b{4t;qA47Ic;y(e.]"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_001</field> </block> </value> <value name="B"> <block type="logic_boolean" id="_q-;wNKvrWW)PnSVbHNM"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=",~:lcf-j+35~y0V@nTj#"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="BPGhN_y%f(/Q7`aI[#Rt"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_002</field> </block> </value> <value name="B"> <block type="logic_boolean" id="y6I|Tf`YNVR.g{FC;#3Q"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="sIc4k~9~(v6^!(,]G*lw"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="QKASmtXO3#COwA|}l92_"> <field name="TEXT">Tor Fährt</field> </shadow> </value> <next> <block type="control" id=";:sfJi!Ux#:C7c?;-T%k"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="9IYs`!fY)sCXcI|(d2w["> <field name="NUM">3</field> </block> </value> <next> <block type="control" id="+0Cokw=mCJBd$x*1O?Ge"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="math_number" id="pr[e.mE_2o|,=ZK}13O+"> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="oV,[vYC:`Gk6jz7)DA7y"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="math_number" id="{!2bDer1LQ`K5c.Ee#QP"> <field name="NUM">1</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="6C1kNwYo-+=-_]|AC%~J"> <field name="NAME">timeout</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="YH=nv/6p|Qgincsx6~,Y"> <field name="COMMENT">Tor zu</field> <next> <block type="controls_if" id="^E!!jGc5LDX|QDQPQx%v"> <value name="IF0"> <block type="logic_operation" id="TyGHz0^P$]e#tw=kB@cK"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="hk~to@Q*fi`ZRb+FY@KD"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="~*YPuGCs_(yK;t,CMg($"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_001</field> </block> </value> <value name="B"> <block type="logic_boolean" id="tj_Gg{xq;CEz896x^`}p"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="!OACNt9q_5^KsTn#.%W3"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="p[kh(Kf{{wx$B4V5A)_`"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_002</field> </block> </value> <value name="B"> <block type="logic_boolean" id="oT|xw9KB[pd2V`.*fss2"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="RjXx!uy.%$[PsZ;n6:YJ"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="`xIu=mCUK}Iu%DKGB2fp"> <field name="TEXT">Tor zu</field> </shadow> </value> <next> <block type="control" id="5khT545Yt$~wG99C!V*_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="W+T.h98rXuCZLY7-roCY"> <field name="NUM">2</field> </block> </value> <next> <block type="control" id="FZ~3|jI^O~arI%z=/x)e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="math_number" id="jsb6AH^DI:_{;?#KM.p}"> <field name="NUM">4</field> </block> </value> <next> <block type="control" id="vrAZ6SQeYc{Pd+(}G9_("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="math_number" id="PyyIDwYWb/~(BQT}Jmsz"> <field name="NUM">5</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="L/m*X=+%!SknD0oGum^_"> <field name="COMMENT">Tor auf</field> <next> <block type="controls_if" id="*R.nmW{f{yF0[3m(vHzJ"> <value name="IF0"> <block type="logic_operation" id="^H#fbTv$_U%7f:^KrB:N"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="nn7__06acxQ]P_0r(KSi"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="yy+2%jbY=*~bkB,t/Wnc"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_001</field> </block> </value> <value name="B"> <block type="logic_boolean" id="`}2n^O;`dB]v{q0G5F}U"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="YVU_uG]hAR|coP4(py*6"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="e`#SIZY(Qjb!H+r#Ky_#"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_002</field> </block> </value> <value name="B"> <block type="logic_boolean" id="m}Z4d(`5?ws{nkUp~=g="> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="{uFB4IHvC]94gk~6ed_x"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="(J9H;4ijs0L#X|dN?u7F"> <field name="TEXT">Tor auf</field> </shadow> </value> <next> <block type="control" id="cNny6[!,oQg@d6L5Dt_8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=":[s`#z.!Tm0bZS7{nY~r"> <field name="NUM">2</field> </block> </value> <next> <block type="control" id="4ot=j)v8?SFlWUI]kcH,"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="math_number" id="^[$^/w{.|@~,@!}7:hBP"> <field name="NUM">4</field> </block> </value> <next> <block type="control" id="{*]-)^T6Uwnlu-.78O{2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"> <block type="math_number" id="nMFh8+9XM(^jADxS+Tp+"> <field name="NUM">5</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="m*Lk|FZWhz?0hvYz}yP;"> <field name="COMMENT">Aus Garagenefektlicht</field> <next> <block type="controls_if" id="s*~pl9^Ss_xyPRmG:0*B"> <value name="IF0"> <block type="logic_operation" id="DzF6?;1x6x$7RQpBuZ1."> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="T/a=rkv0.T,{FqaU1nN@"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="?(Sf|5qS9ZQRM@ktmCh("> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_001</field> </block> </value> <value name="B"> <block type="logic_boolean" id="V]]Ibrc-pkfa!@bb:I{?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="j1Cd[`jL5@lICEyx9x$z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="G(eVjk$0)=}(ZR(R~ji@"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_002</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Cg*Oh4ETf5cyK/UxYx%k"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id=":RfDnHVq/hjw?4hr7*cO"> <field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="laC^cp@~YPwY`{7r[.tl"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="|U`iNDBL|W_,*hEmm]9p"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="L?4};[T.NNs`0sV#%SO#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="NcG1:g@sljb#=p~Ks?A)"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="comment" id="vW,)A+0!tKvlZ^R:chW-" x="87" y="837"> <field name="COMMENT">Weihnachtsbeleuchtung</field> <next> <block type="schedule_create" id="(AU9]u:-EQwK3/8~4c=t"> <field name="NAME">schedule1</field> <value name="SCHEDULE"> <shadow type="field_cron" id="l5Xsg|r+5f!0ytc]@D2^"> <field name="CRON">* * * * *</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="wi~E3/A$h:=eZ%q6TwY@"> <value name="IF0"> <block type="logic_compare" id="C|MVfG$~44KL,RWNK}Si"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="(dr9)[T-p(aNq9D3Ow~R"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Weihnachtszeit</field> </block> </value> <value name="B"> <block type="logic_boolean" id="-D{%I/d%6|;(Z[$|aygb"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="u~C54!6M.m$M]{Dfzmcn"> <value name="IF0"> <block type="logic_compare" id="T[;-^LVozVgUJ/t=0v`q"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="YF$0,CQm%tGbrHnEeU/]"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Nacht</field> </block> </value> <value name="B"> <block type="logic_boolean" id="wj?)-;xVy:Z|l=,J2~_u"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="so6skg--a-VSbC@s4W!!"> <value name="IF0"> <block type="logic_operation" id="z=pQD4XK#s5U0N]b]{le"> <field name="OP">OR</field> <value name="A"> <block type="time_compare_ex" id="nC,X85;Uk0yh~fN6gO14"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="neWYOnhJ:nP[@/^BD{LW"> <field name="TEXT">16:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="lC4Y;Bq.pFkCT3}R3{FB"> <field name="TEXT">23:00</field> </shadow> </value> </block> </value> <value name="B"> <block type="time_compare_ex" id="y|Lx=kN3!Q:qKi)~yT=K"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="qcf{-c7)}g.)4dK|w)iK"> <field name="TEXT">05:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="Bz#,K[-lY*.HG4q876/D"> <field name="TEXT">09:00</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="|-kM9)Nvt+SO@^CTn/}v"> <value name="IF0"> <block type="logic_compare" id="5L~(|$Hw?L8:v(zWfpAl"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="~3=[fxlXUacGI=I/Vw]|"> <field name="ATTR">val</field> <field name="OID">wled.0.308398b61ff4.ps</field> </block> </value> <value name="B"> <block type="math_number" id="CmS_$7=Xaov#Xu^Bzy-6"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="~PvGez9yXvD_~afk,9Ph"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="aZ`N)rTm[~8nnY~*ke6m"> <field name="NUM">6</field> </block> </value> <next> <block type="control" id="p$r*d]+`W|dy_(JnK@Ji"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="jCK.^d4y[5ED?$,anFEp"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> <next> <block type="controls_if" id="+a;@10ENB1,VyB7H29d+"> <value name="IF0"> <block type="logic_compare" id="^#h,+6]cq5qw4*x/)fN2"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="?o(t~r`#4IZznQUuFNY~"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Weihnachtszeit</field> </block> </value> <value name="B"> <block type="logic_boolean" id="vEq=hu:}z6yXyuuji%Fl"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="XK^fGm%Nlt[5l6}trEfI"> <value name="IF0"> <block type="logic_compare" id="6,/=W7`3NKj.M.7H8x2J"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="X8[vsS9A1J%p5dzH%u7%"> <field name="ATTR">val</field> <field name="OID">wled.0.308398b61ff4.ps</field> </block> </value> <value name="B"> <block type="math_number" id="?8.RH_s?nV:w_nC9#g]T"> <field name="NUM">6</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="?S/5?ncNUdN^5yM(Hc%P"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="XPe*sp.IuZqNN_{}=~W,"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="iU.|;:WDSS2Qa6%5D*73"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="v,+l}HDsG:gk3_pkSE}{"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="FLnQ91-cY23x3)T-`}If"> <value name="IF0"> <block type="logic_operation" id="w8[a~nmuy}x#qv`Kg%#^"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="dKH$V;Wi2K9^2:8[w$n|"> <mutation xmlns="http://www.w3.org/1999/xhtml" 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="b#Z3Hs2m64Z/HUK3^i-1"> <field name="TEXT">16:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="3jybM8D/2ejE24d;Y%+h"> <field name="TEXT">23:00</field> </shadow> </value> </block> </value> <value name="B"> <block type="time_compare_ex" id="RC:q#BEAk(p^Orv%]LgB"> <mutation xmlns="http://www.w3.org/1999/xhtml" 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="eUclCT,0)kfT0C3g!XM5"> <field name="TEXT">05:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="SE8JamRZfS;-d,LLd;NA"> <field name="TEXT">09:00</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="0Arqyuy7!2)BGL@V.i[("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="wmq!Hlx.q]-F)-0{HK*{"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="_JR4u?lt{I[1tX,*xgcD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="0C5p|%*#S*hhr!n6IR~?"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> <block type="schedule" id=")^~0aUCL~?%{8j=^[!a;" x="87" y="1612"> <field name="SCHEDULE">0 23 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="2/o$bPbOe:-[B*d]x{4Q"> <value name="IF0"> <block type="logic_compare" id="s#GfY*+.yDKSO3e;S))k"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Or9Ar%KWDBdn0,oJ6!C{"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Weihnachtszeit</field> </block> </value> <value name="B"> <block type="logic_boolean" id="X]*gF5n9s!LaY_dzPvhZ"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="|K|9+K]e;{JQ)IxM*:O*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="1;(!EpBNMB9Bqg:PUVg4"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="y69(6q2$#OkOBDCB2qQU"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.308398b61ff4.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="{c5Fbx7,aZ}_T?VS#:4C"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> <block type="comment" id="*cw_3j||]9mGbfD3])tT" x="87" y="1862"> <field name="COMMENT">Damit der ESP8266 nicht einschläft</field> <next> <block type="schedule" id="|Ph7A#zOLZvBy):UY@}w"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="E]~}tb]~aQ`O~^^JDRe5"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="ql{m^REgb2=.OWM:Tww,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="8J3^mLMx+/6d6~11-`/N"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Nacht</field> </block> </value> <value name="B"> <block type="logic_boolean" id="zteB?n91!{U@$W,Ci_@A"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="ONci|vC/jQ`(6F0Qh${6"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="*~Ck,z$aij44)L:CFbu!"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="^fbyp(]`E0-xdmvA,nC:"> <field name="VAR" id="g;sVV^-s@hbkRnou(]]U">Weckzaehler</field> </block> </value> <value name="B"> <block type="math_number" id="cBwmu6xnI|J=?6:o`rC+"> <field name="NUM">30</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="g5clz!n{.;,bP`{]BofC"> <value name="IF0"> <block type="logic_compare" id="`.[gG0wUlQ7il;p4~jtY"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="^4c%r4J~bxU:6Ri-$RL,"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datapoint.Zeiten_Daten.Weihnachtszeit</field> </block> </value> <value name="B"> <block type="logic_boolean" id="HA8_Z41yn#Mx/(6_Tmct"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="qH?L96#AKmPaP[mzQhgp"> <value name="IF0"> <block type="logic_compare" id="nc,=NCVYrOb3[mLWL#n~"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=")#VTDXbMXP|Y8WD/)?oK"> <field name="ATTR">val</field> <field name="OID">alias.0.EG-Garage.Tor.any_001</field> </block> </value> <value name="B"> <block type="logic_boolean" id="vz*-HO:y!FPyqOs*U^|T"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="8@ZG=U,xWEVO+Gr;]p[9"> <field name="COMMENT">Instanz neu starten</field> <next> <block type="control" id="S/`IYH$VBvq5bQrBD*Ms"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">system.adapter.wled.0.alive</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="-G0NyL4itst|ei7aFPc_"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="GwpI;gVcNm*IS[%jdTBA"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">system.adapter.wled.0.alive</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="I}vt5PWr2e2H`9j82/qg"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="variables_set" id="Bkxe;/*PyiQu,DY9ziSE"> <field name="VAR" id="g;sVV^-s@hbkRnou(]]U">Weckzaehler</field> <value name="VALUE"> <block type="math_number" id="Rndu2Xfr(iksj2#4W?4:"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="math_change" id="KMdBac4/XUK!!hzeTRN`"> <field name="VAR" id="g;sVV^-s@hbkRnou(]]U">Weckzaehler</field> <value name="DELTA"> <shadow type="math_number" id="FP#ZQ.T|3YIo;#JwUNx8"> <field name="NUM">1</field> </shadow> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="tvo/R@5)_bVdLnw:aQGK"> <field name="VAR" id="g;sVV^-s@hbkRnou(]]U">Weckzaehler</field> <value name="VALUE"> <block type="math_number" id=":c@ysD%oODVxHTYOo7tE"> <field name="NUM">30</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </xml>
Am Ende ist noch das Aufwecken des ESP8266 drin da ich nicht rausgefunden habe warum der einschläft, mache ich einen Restart von WLED und das Problem ist umgangen.
Grüße aus dem Sauerland
-
Hallo, @vocaris,
nimm mal den "Pause"-Befehl aus Deinem Script raus. Hatte ich vorher auch so, lief nicht.
Zitat von @Asgothian aus diesem Post:Zitat Anfang:
Timeout: Es wird Ein Block an Aktionen im Timeout angegeben der in x ms ausgeführt wird, aber die "normale" Bearbeitung des Skriptes geht weiter.
Pause: Es wird x ms gewartet bis es weiter geht.
Der Haupt unterschied besteht in der Art der Abarbeitung.
Der Einsatz von "Pause" führt zu einer synchronen Abarbeitung der im Skript stehenden Befehle in genau der angegebenen Reihenfolge. Pause kann beim Thema "Skript erneut auslösen" zu Problemen führen.
Der Einsatz von Timeout führt zu einer asynchronen Abarbeitung so das das eigentliche Skript beendet wird und nur die im Timeout angegebenen Befehle werden in einem eigenen Ablauf im Hintergrund ausgelöst.
Insgesamt sollte wann immer möglich mit einem Timeout gearbeitet werden da die "Pause" die zu dem Skript gehörenden Ressourcen weiter belegt bleiben. Je länger die Zeit ist die gewartet wird desto wichtiger ist der Einsatz von Timeout an Stelle von Pause.
Ich persönlich würde Pause nur einsetzen wenn sichergestellt ist das das Skript während der Pause nicht ein zweites mal aktiviert werden kann. Das wäre zu Beginn von Skripten oder innerhalb eines Zeitplans. Immer dann wenn ein Skript über einen "event" (Trigger, nicht Zeitplan) ausgelöst wird würde ich mit einem Timeout arbeiten.Zitat Ende
Vielleicht hilft es Dir ja. -
@berges01. Moin
Danke. Ich schau mir das mal an. -
@opossum Hei.
Also in der Tat läuft es dann. Aber dadurch, dass ich keine Pause drin habe, macht er natürlich im Bereich "Garage offen" nicht die Schritte Grünes Licht, dann weißes Lauflicht und am Ende die Spots. Da fliegt er ja in Millisekunden drüber und endet bei den Sport. Wie bekomme ich denn nun diese sequantiellen "ToDos" rein? -
Hallo, @vocaris,
Du könntest die einzelnen Schritte mit Verzögerungen starten, so geht es zumindest bei mir.
Allerdings lasse ich während der Torbewegung nur zwei Lauflichter in Rot anzeigen. Hier mal das ganze Script. Ich benutze, wie schon geschrieben, ein weiteres Script, dass die Sensoren auswertet und einen Datenpunkt setzt.
-
@opossum
Hei,habe ich auch schon versucht. Aber Er scheitert wieder beim runterfahren.
Dort startet das rote Lauflicht und auf halber Fahrt geht er dann einfach über in den Bereich als wäre die Garage schon zu... Ich raffe das einfach nicht.
Ggf. kann mir ein mal ein Script geben, dass die Stellungen der Fensterkontakte logt. Damit ich in einer Liste sehen kann, ob ggf. beim runterfahren ein Wert geändert wird. Das Log kann bestimmt eine Liste der Timestamps ausgeben. Ich bin einfach zu blöd für Blockly... -
Also mein Blockly sieht fast so aus wie das von @opossum .
Kann es sein, das dein Fensterkontakt beim runter fahren an dem Magneten vorbei fährt der für offen oder geschlossen angebracht ist ?
Magnetkontakte sind da ab und an sehr empfindlich. Weiterhin sind die mit Reedkontakten erschütterungsempfindlich. Lock mal die Schalter mit.
Unsere Blocklies laufen zumindest bei mir ohne Probleme.
Gruss -
Hallo, @berges01,
das Problem mit den Magnetkontakten hatte ich auch. Habe dann auf optische Fensterkontakte von Homematic umgestellt, dann lief es. Bei den Magneten hatte ich die Effekte von @vocaris.
@Vocaris
Du kannst Dein Script erweitern, in dem Du Debug output-Blöcke einbaust. Immer dann, wenn Du den Zustand der Kontakte abfragst, würde ich solch einen Block einbauen. Dann siehst Du im Protokoll, wann welcher Zustand vorhanden ist. Einfach den Debug output an die Stellen setzen, wo Du eine Protokollausgabe möchtest. Dann noch einen Text reinschreiben und mal schauen, was beim Tor dann passiert mit den Kontakten. Nur so wirst Du herausfinden, wo der Fehler liegt.
Ich würde auch mal die on/off-Befehle aus dem Script nehmen. Ich habe das nur am Anfang drin, wenn das Tor von geschlossen auf fahren geht. -
@opossum Danke aber habe leider null Plan davon.
Weiß ja gar nicht, wo ich das debug reinsetzen soll und was er dann ausgeben soll.
Ich verstehe einfach nicht, warum er beim runterfahren den "Driss" macht.
Rauf klappt ja auch.
Die Installation ist so, dass die beiden Fensterkontakte (Sendeeinheit) Fix an ihren Punkten kleben. Einer oben und einer unten. Auf dem Torschiene beweget sich nur das kl. Magnet.
Da er ja beim runterfahren mitten in dem Ablauf für "Rotes Licht" in die Prozedur "Garage offen" springt, muss er ja auf dem Fahrweg bei oberen Schalter nochmals "schließen".
Ergo muss bei ihm etwas magnetisches vorbeikommen. In dem Fall müsste aber der Timestamp sich bei dem Gerät ändern.
Wenn ich während der Fahrt das ioB Objekt beobachte, sehe ich keine Änderung... -
@vocaris
schau mal in den Chat. -
Schau wenn du solche Debugeinträge einfügst, so kannst du Unten im Fenster sehen wann und was passiert.
Solche Einträge wie hier zu sehen "Trigger (2)", "Toor fährt" usw. kannst du sehen und bekommst so genau angezeigt was im Programmablauf passiert.
Gruss -
@opossum Ich habe für alle drei Blöck einen eigenen Trigger gemacht.
Dann geht es. Muss ich nicht verstehen... Aber ich bin ja auch kein Informatiker -
Bei deinen Trigger Blöcken (Weinrote Blöcke), sind als Trigger der ID Open drin.
Das auch noch 2 x.
Die Anweisungen in solch einem Block wird jedes mal durchlaufen wenn der ID Open seinen Zustand verändert.
Das macht so eigentlich keinen Sinn.
Mein Block wir nur durchlaufen wenn der Endschalter auf oder zu seinen Zustand verändert.
Schau mein Beispiel.
Innerhalb dieses Triggerblockes kontrolliere ich die Zustände der Endschalter auf/zu und reagiere dementsprechend.
Nur Guten Mutes, Rom ist auch nicht in einem Tag gebaut.
Für die Blocklyprogrammierung muss man kein Informatiker sein nur Logisches Denken ist unabdingbar.
Schau dir mal erst alle Blocklys an und versuche heraus zu bekommen was wie arbeitet.
Gruss -
Mein Tor stellt zwar die Endlagen zur Verfügung, aber ich steuer das nur über n timeout.
-
Ja es ist wie immer "viele Wege führen nach Rom".
Darum würde ich auch jedes Mal sagen, ich stelle ein Beispiel hier ein und keine Vorgabe.
Ich freue mich immer wenn einer Hier Beispiele reinsetzt, dadurch habe ich schon vieles gelernt.
Ich baue wenn Möglich alles mit Festen Vorgaben auf und weniger mit Timern.
Ab und an baue ich etwas auch mit Countern auf.
Von den Vorher benutzen SmartHome Systemen bin ich was Timer, Paúse und Timeout betrifft ein gebranntes Kind.
Läuft der Timer noch oder nicht, löst er Aktionen aus die ich gar nicht haben möchte oder reagiert er Unlogisch und nicht nach Zeitvorgabe.
Aber das ist nur Meine Meinung und soll erklären warum ich etwas mache.
Gruss