Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.6k Topics 214.2k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    crunchipC
    @micklafisch sagte in Shelly Verbrauchs-Historie für Tag, Woche, Monat, Jahr: Wird das Script überhaupt noch gebraucht? musst du selbst wissen, weiß ja niemand was genau und wie du die Daten weiterverarbeitest
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    crunchipC
    @martin sagte in Aqara Rauchmelder verbinden für Alarm: Wenn ich jetzt mal erweitere setze ich die anderen Melder einfach immer mit drunter, oder? ja
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • Alarm verzögert bei verschiedenen Bedingungen

    javascript
    4
    0 Votes
    4 Posts
    406 Views
    T
    @htrecksler Ich hätte jetzt an den "schedule" Befehl gedacht und nicht so. Ich muss ehrlich gestehen, dass mir dieses Javascript nicht sehr zugänglich ist.
  • Strompreis falscher Wert (hdering Script)

    javascript
    2
    1
    0 Votes
    2 Posts
    278 Views
    overfl0wO
    Ah okay, ich hab's scheinbar schon. Der Fehler lag an folgender Stelle: [ 'smartmeter.0.1-0:1_8_0_255.value', 'Verbrauchszähler.Strom', 'kWh', 'kWh' ]
  • Dynamisch Textausgabe über Alexa

    javascript blockly
    7
    0 Votes
    7 Posts
    1k Views
    X
    Jetzt bin ich bei einem Stand angekommen mit dem ich erstmal zufrieden bin. Fertig ist es aber noch nicht. Offene Punkte sind unten aufgelistet. Damit das Skript funktioniert benötigt es folgende Datenpunkte: Diese drei sind Zeichenketten: [image: 1578258229190-0b4faca2-aa95-4662-af36-e1f174cb6c25-image.png] Der Counter ist eine Zahl, die anderen beiden sind Booleans: [image: 1578258316954-078837de-bf37-42f1-90a2-e46f9ca951bc-image.png] Wie verwendet man das Skript: In den Datenpunkt 0_userdata.0.TTS.Queue muss zu Beginn einmal eine leere Liste [] geschrieben werden. In diesem Datenpunkt wird die Queue der noch nicht ausgesprochenen Texte vorgehalten. Der Inhalt des Datenpunktes ist ein JSON String. Der Datenpunkt 0_userdata.0.TTS.AlleGeraete dient als Ausgabe für das Skript. Mit der Ausgabe kann dann auf einem beliebigen Gerät TTS gemacht werden. Ein Blockly zur Ausgabe via Sayit mit allen Instanzen ist unten als Export in einem Spoiler. Der Datenpunkt 0_userdata.0.TTS.Enqueue dient als Eingabe in das Skript. Um eine Ausgabe an eine bestimme Person zu adressieren schreibt man folgendes JSON in den Datenpunkt: {"name":"$NAME$","text":"sage diesen Text"} $NAME$ ist definiert durch den Datenpunkt, der die Anwesenheit der Person repräsentiert (alias.0.Anwesenheit.$NAME$) z.B.: alias.0.Anwesenheit.Jonathan => {"name":"Jonathan","text":"Diesen Text hört Jonathan"}) Ist ein Text für eine beliebige Person des Haushalts (mindestens eine Person muss anwesend sein) so kann entweder das Feld name im JSON leer gelassen werden oder noch einfacher nur der zu sprechende Text in den Enqueue-Datenpunkt geschrieben werden. TODO: Triggerdatenpunkt für späteres Auslösen von Anwesenheit Automagisches Selbstsetup (scheitert noch daran, dass via Blockly keine Datenpunkte unter 0_userdata erstellt werden können) Datenpunkte für jede Person zum einfacheren Ansprechen einzelner Personen Blockly Export TTS <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable id="AkYU}7*X5NX/z#^FM)Xy" type="">array</variable> <variable id="h]DkyBP2{E-q*Pl7nt`c" type="">elementToAdd</variable> <variable id="]C@/yy];0C6P$+$-^*C(" type="">elementToRemove</variable> <variable id="HFsl-ic:cMLV;-Y05i1Z" type="">jsonString</variable> <variable id="Ys,h8KBm$.J$uF(7/#Ix" type="">Queue</variable> <variable id="9bZ+SVj%$FZ4-|02x~-b" type="">ttsContent</variable> <variable id="cp[4,JQ-c8t]DwDv4Yx$" type="">ttsContentQueueObjects</variable> <variable id="JAlj;p0CDqTg1$JpT;-;" type="">i</variable> <variable id="+oRzt@R~n1bEB_=ghKO)" type="">j</variable> </variables> <block id="%:NEU_^~k/b))v{Hvwk$" type="procedures_defcustomreturn" y="-287" x="38"> <mutation statements="false"> <arg name="array" varid="AkYU}7*X5NX/z#^FM)Xy"></arg> <arg name="elementToAdd" varid="h]DkyBP2{E-q*Pl7nt`c"></arg> </mutation> <field name="NAME">push</field> <field name="SCRIPT">YXJyYXkucHVzaChlbGVtZW50VG9BZGQpOw0KcmV0dXJuIGFycmF5Ow==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block id="gC!%[R;Rta^J)2-o/FnG" type="procedures_defcustomreturn" y="-262" x="37"> <mutation statements="false"> <arg name="array" varid="AkYU}7*X5NX/z#^FM)Xy"></arg> <arg name="elementToRemove" varid="]C@/yy];0C6P$+$-^*C("></arg> </mutation> <field name="NAME">splice</field> <field name="SCRIPT">dmFyIGluZGV4ID0gYXJyYXkuaW5kZXhPZihlbGVtZW50VG9SZW1vdmUpOw0KaWYgKGluZGV4ID4gLTEpIHsNCiAgYXJyYXkuc3BsaWNlKGluZGV4LCAxKTsNCn0NCg0KcmV0dXJuIGFycmF5Ow==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block id="yV,p)rpYDl6%)v|~hP_N" type="procedures_defnoreturn" y="-237" x="38"> <mutation> <arg name="jsonString" varid="HFsl-ic:cMLV;-Y05i1Z"></arg> </mutation> <field name="NAME">AppendToQueue</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block id="4OLI^HO8Jy=jXE#Cy2Y/" type="variables_set"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> <value name="VALUE"> <block id="qzzB6}cnfT|J56`5b2?M" type="convert_json2object"> <value name="VALUE"> <block id="C{7V4*/o;!1~mC+FVifq" type="get_value"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.TTS.Queue</field> </block> </value> </block> </value> <next> <block id="c)^?{[}$K1NJx)aN~8bS" type="variables_set"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> <value name="VALUE"> <block id="1QA60KE0xndh4WptkU(2" type="logic_ternary"> <value name="IF"> <block id="0]U7$$=/(p.KkF?~x^jm" type="logic_compare"> <field name="OP">EQ</field> <value name="A"> <block id="f:r8,OtXQ:HO.4PlATQ^" type="math_number"> <field name="NUM">0</field> </block> </value> <value name="B"> <block id=".TC7?}S+i]1N_b-tDMzU" type="lists_length"> <value name="VALUE"> <block id="`Mz=hh{*3NpddD2D5]:?" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> </block> </value> </block> </value> <value name="THEN"> <block id="w{yehoi1l#X4Oz/^wf=k" type="lists_create_with"> <mutation items="1"></mutation> <value name="ADD0"> <block id="ylCYZtPA8{stkKH7*iwu" type="convert_json2object"> <value name="VALUE"> <block id="s}^*H4-ICt5mK#z3O,_0" type="variables_get"> <field id="HFsl-ic:cMLV;-Y05i1Z" name="VAR" variabletype="">jsonString</field> </block> </value> </block> </value> </block> </value> <value name="ELSE"> <block id="PWV0=Y98MJ^i6xi|;CPT" type="procedures_callcustomreturn"> <mutation name="push"> <arg name="array"></arg> <arg name="elementToAdd"></arg> </mutation> <value name="ARG0"> <block id="E5to#*qN:@}t{2V;%%*G" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> <value name="ARG1"> <block id="F6{x9l|`[1;q2)*u8k#k" type="convert_json2object"> <value name="VALUE"> <block id="c(jy04.KXZVs`Gtx=aaG" type="variables_get"> <field id="HFsl-ic:cMLV;-Y05i1Z" name="VAR" variabletype="">jsonString</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block id="9scApgE7BjVmY@bF8=P-" type="control"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.TTS.Queue</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block id="^TBledj=T2Vt@k_z[0Mu" type="convert_object2json"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block id="pS]vB$Y+m|n$ml)fcDRX" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block id="8{g[]3?@,dD5M#z2L`RE" type="on_ext" y="-91" x="174"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow id="v9n*i][1l%T+r+Y*/,@[" type="field_oid"> <field name="oid">0_userdata.0.TTS.Enqueue</field> </shadow> </value> <statement name="STATEMENT"> <block id="o{)R4x6OHB]cH@qkSckB" type="controls_if"> <mutation else="1"></mutation> <value name="IF0"> <block id="0qi]*ZooU-uxgjPQn1|u" type="logic_compare"> <field name="OP">EQ</field> <value name="A"> <block id="4Izoa,SZ9plA+h6)b]C-" type="math_number"> <field name="NUM">1</field> </block> </value> <value name="B"> <block id="ypcg!BTqJ*#Ly1O:vOQ%" type="text_indexOf"> <field name="END">FIRST</field> <value name="VALUE"> <block id="2yV[:HByU,_M}V351#$8" type="on_source"> <field name="ATTR">state.val</field> </block> </value> <value name="FIND"> <shadow id="#sPA[HYIk{bE.Y.KO#MP" type="text"> <field name="TEXT">{</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block id="8QVv~YA@4JiBC+;s5eR!" type="comment"> <field name="COMMENT">JSON =&gt; Personalisiert</field> <next> <block id="m/lp/p;#49/,WBmvob-N" type="procedures_callnoreturn"> <mutation name="AppendToQueue"> <arg name="jsonString"></arg> </mutation> <value name="ARG0"> <block id="(rWp@KCpgh)QB^r.v=;E" type="on_source"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block id="Y~=NCX}zocQ)8#ZOVsIp" type="comment"> <field name="COMMENT">Für alle</field> <next> <block id="8V!;MF+swjN@ehx/LrWw" type="controls_if"> <mutation else="1"></mutation> <value name="IF0"> <block id="^Gzu}-9neIjut4SXJwkj" type="logic_compare"> <field name="OP">LT</field> <value name="A"> <block id="YIkMrj1R53DhUDZ5BkzL" type="math_number"> <field name="NUM">0</field> </block> </value> <value name="B"> <block id="~{#%7bX[09MA*73[]zfo" type="get_value"> <field name="ATTR">val</field> <field name="OID">alias.0.Anwesenheit.Counter</field> </block> </value> </block> </value> <statement name="DO0"> <block id="{wEq/uA.TsNij0:+VFq3" type="control"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.TTS.AlleGeraete</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block id="{C5{ZCq$8S~JV-yzx3El" type="on_source"> <field name="ATTR">state.val</field> </block> </value> </block> </statement> <statement name="ELSE"> <block id="a:Idj`xR!!Ef4%JWytGS" type="procedures_callnoreturn"> <mutation name="AppendToQueue"> <arg name="jsonString"></arg> </mutation> <value name="ARG0"> <block id="U~4y#M=!A/:]CzND,nE_" type="text_join"> <mutation items="3"></mutation> <value name="ADD0"> <block id="z$Aj9M?*!T}uE27[RNkM" type="text"> <field name="TEXT">{"name":"","text":"</field> </block> </value> <value name="ADD1"> <block id="PC9X/zW$oC8k|b~W6RE6" type="on_source"> <field name="ATTR">state.val</field> </block> </value> <value name="ADD2"> <block id="Uw=3@$0oFQOK$Ap[:lQi" type="text"> <field name="TEXT">"}</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </statement> <next> <block id="L,%plz|Sm(2Vg4Bf]/3H" type="on_ext"> <mutation items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow id="x/IGdWLwh:aG|-2S`tg^" type="field_oid"> <field name="oid">alias.0.Anwesenheit.Counter</field> </shadow> </value> <value name="OID1"> <shadow id="VNdrK=}3;+q{0,}W;:,5" type="field_oid"> <field name="oid">0_userdata.0.TTS.Queue</field> </shadow> </value> <statement name="STATEMENT"> <block id="CDf%z0vhe9#/9^k-KdL." type="variables_set"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> <value name="VALUE"> <block id="vsqk1=Er*s[!!0WN+U2#" type="convert_json2object"> <value name="VALUE"> <block id="[F2;irz9-)xu7AIIUSe@" type="get_value"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.TTS.Queue</field> </block> </value> </block> </value> <next> <block id="@tTq4TP`OfqEX#VerkJq" type="variables_set"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> <value name="VALUE"> <block id="(7vh]9Q_?16{[[psI~kr" type="text"> <field name="TEXT"></field> </block> </value> <next> <block id="?A4J?r5U%y*fV,rhA9PK" type="variables_set"> <field id="cp[4,JQ-c8t]DwDv4Yx$" name="VAR" variabletype="">ttsContentQueueObjects</field> <value name="VALUE"> <block id="8R~3nx+i#X~anNRBVT+!" type="lists_create_with"> <mutation items="0"></mutation> </block> </value> <next> <block id="B$3eHU^/~gq|gyAvYisD" type="controls_if"> <value name="IF0"> <block id="vSnIuAr)cIIRG7GI(=vV" type="logic_compare"> <field name="OP">LT</field> <value name="A"> <block id="1lb=ychDESKt~Hj%0f{|" type="math_number"> <field name="NUM">0</field> </block> </value> <value name="B"> <block id="L5Nzhr|E0O];Z-pGEs{d" type="get_value"> <field name="ATTR">val</field> <field name="OID">alias.0.Anwesenheit.Counter</field> </block> </value> </block> </value> <statement name="DO0"> <block id="0?UA{3@y+ih+sT*H^g6q" type="controls_forEach"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> <value name="LIST"> <block id="c80X;TP$h-U+)[yH#:ab" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> <statement name="DO"> <block id="]V%pU6Q[Z;).jw7zIq=;" type="debug"> <field name="Severity">log</field> <value name="TEXT"> <shadow id="HZp=3Py*XU{k{OUKHn,?" type="text"> <field name="TEXT">test</field> </shadow> <block id=")a#=a[pOT=^q*MP*.oH4" type="convert_object2json"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block id="n8v:Q4|@$E/k+Rsi6}{9" type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> <next> <block id="(RJe4#RkD*!/;G,rM8i:" type="controls_if"> <mutation else="1"></mutation> <value name="IF0"> <block id="ts41r3Vx786!CnW;nt69" type="logic_compare"> <field name="OP">EQ</field> <value name="A"> <block id="2u*3!X`_Td1V?4g,*(.Q" type="text"> <field name="TEXT"></field> </block> </value> <value name="B"> <block id="$[:!OZ1y-/$|IG,Cj0!*" type="get_attr"> <value name="PATH"> <shadow id="z;;pm6_r%bjRi1pskTG#" type="text"> <field name="TEXT">name</field> </shadow> </value> <value name="OBJECT"> <block id="sFmrB1)NSC]S@4J{pYdS" type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block id="sBB5jVf6t]}_hO!9/pg?" type="variables_set"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> <value name="VALUE"> <block id="!W3#cdNWL#qD@-X#|z;z" type="text_join"> <mutation items="3"></mutation> <value name="ADD0"> <block id="8oME*Pej5uEm=vN2f5:j" type="variables_get"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> </block> </value> <value name="ADD1"> <block id="qD9xEFI*:H3n5$-;ZhBg" type="get_attr"> <value name="PATH"> <shadow id="zqX+xg;aT=0TOS`ydV~T" type="text"> <field name="TEXT">text</field> </shadow> </value> <value name="OBJECT"> <block id="pTR/Rf.iMBsf*#AZ:R68" type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> <value name="ADD2"> <block id="`F,4ipT~xSoy`}kpXv+`" type="text"> <field name="TEXT">. </field> </block> </value> </block> </value> <next> <block id="]Rbr3aDjACUIxsF;JUlc" type="variables_set"> <field id="cp[4,JQ-c8t]DwDv4Yx$" name="VAR" variabletype="">ttsContentQueueObjects</field> <value name="VALUE"> <block id="Rbiwwq[!F0fMDW@j00AE" type="procedures_callcustomreturn"> <mutation name="push"> <arg name="array"></arg> <arg name="elementToAdd"></arg> </mutation> <value name="ARG0"> <block id="3S_6e~JcEpFs8!S1xIp." type="variables_get"> <field id="cp[4,JQ-c8t]DwDv4Yx$" name="VAR" variabletype="">ttsContentQueueObjects</field> </block> </value> <value name="ARG1"> <block id="x.-nQA3+kj]#P:SFiv.|" type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block id="c)Zw/)!^K0=NKtD$s/yF" type="controls_if"> <value name="IF0"> <block id="_HJb}ED[wTj5[|sE#m6~" type="get_value_var"> <field name="ATTR">val</field> <value name="OID"> <shadow id="uMW;Kd+?[f+;^wtzySV=" type="text"> <field name="TEXT"></field> </shadow> <block id="IH]9wgISJZte*!MS1{SG" type="text_join"> <mutation items="2"></mutation> <value name="ADD0"> <block id="Enwq/afo^8g$}Yxq.lGu" type="text"> <field name="TEXT">alias.0.Anwesenheit.</field> </block> </value> <value name="ADD1"> <block id="l?d0s%=/5$iUd=BsIX#-" type="get_attr"> <value name="PATH"> <shadow id="?Q/I~KogXNhB,m8`aux|" type="text"> <field name="TEXT">name</field> </shadow> </value> <value name="OBJECT"> <block id="Ly!Hz]Ty;U-*JCAn,kUy" type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block id="/d*=~a`I118/1ht^9*iT" type="variables_set"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> <value name="VALUE"> <block id="q7!qLIIz93^M~};sA2dz" type="text_join"> <mutation items="3"></mutation> <value name="ADD0"> <block id="cU~-/GG@UvxEv7dmq9(W" type="variables_get"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> </block> </value> <value name="ADD1"> <block id="$u3G#?=GT1}/x/(p$i{m" type="get_attr"> <value name="PATH"> <shadow id="Q$Ut:Zrsk$(X@1_{Xnj^" type="text"> <field name="TEXT">text</field> </shadow> </value> <value name="OBJECT"> <block id="-V{z)e2S;*)lotYJiwi," type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> <value name="ADD2"> <block id="}}BrPl[$RRX7BRyN,yS:" type="text"> <field name="TEXT">. </field> </block> </value> </block> </value> <next> <block id="sl;4#$9ecMS~FwnLf8/9" type="variables_set"> <field id="cp[4,JQ-c8t]DwDv4Yx$" name="VAR" variabletype="">ttsContentQueueObjects</field> <value name="VALUE"> <block id="~;pGb/Bs)=V5xIJ3upe]" type="procedures_callcustomreturn"> <mutation name="push"> <arg name="array"></arg> <arg name="elementToAdd"></arg> </mutation> <value name="ARG0"> <block id="RV]LE{1lyD.u2v8TKsX=" type="variables_get"> <field id="cp[4,JQ-c8t]DwDv4Yx$" name="VAR" variabletype="">ttsContentQueueObjects</field> </block> </value> <value name="ARG1"> <block id="#(bc2Oq=!)|n:n@tICrt" type="variables_get"> <field id="JAlj;p0CDqTg1$JpT;-;" name="VAR" variabletype="">i</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> <next> <block id="Y0cHVAMq[E{WAKFar9pR" type="controls_forEach"> <field id="+oRzt@R~n1bEB_=ghKO)" name="VAR" variabletype="">j</field> <value name="LIST"> <block id="5~_w3$#k?^oDIMQSE@qq" type="variables_get"> <field id="cp[4,JQ-c8t]DwDv4Yx$" name="VAR" variabletype="">ttsContentQueueObjects</field> </block> </value> <statement name="DO"> <block id="bp|;1iR|ReitzSsu|(-$" type="variables_set"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> <value name="VALUE"> <block id="-PP{t9XP?X-GV$R|;)_b" type="procedures_callcustomreturn"> <mutation name="splice"> <arg name="array"></arg> <arg name="elementToRemove"></arg> </mutation> <value name="ARG0"> <block id="uK:LX$S|J4@S3lt/s3?N" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> <value name="ARG1"> <block id="?X|yjafX/W(8y@ip]TX3" type="variables_get"> <field id="+oRzt@R~n1bEB_=ghKO)" name="VAR" variabletype="">j</field> </block> </value> </block> </value> </block> </statement> <next> <block id="?aEy|-%QbW6:ZJu!y]b-" type="debug"> <field name="Severity">log</field> <value name="TEXT"> <shadow id="HZp=3Py*XU{k{OUKHn,?" type="text"> <field name="TEXT">test</field> </shadow> <block id=".iQ1^h#!zg2!}.1-eVY:" type="variables_get"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> </block> </value> <next> <block id="2=%i!cze{ZG7{+p}JS^}" type="debug"> <field name="Severity">log</field> <value name="TEXT"> <shadow id="HZp=3Py*XU{k{OUKHn,?" type="text"> <field name="TEXT">test</field> </shadow> <block id="d=hT=uom5~.dLtU)t5=$" type="convert_object2json"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block id="ir/N:vPiv)oA{PdIF7L:" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> </block> </value> <next> <block id="*XX4O?F|rgK$qj1i}S(T" type="controls_if"> <value name="IF0"> <block id="D@EH*_eHNWb~-/A(WH%s" type="logic_compare"> <field name="OP">NEQ</field> <value name="A"> <block id=";KvPi;{:t3c/b.AtB0*j" type="text"> <field name="TEXT"></field> </block> </value> <value name="B"> <block id="Ci|[%4CA-,ruBNk-qcrb" type="variables_get"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> </block> </value> </block> </value> <statement name="DO0"> <block id="5UR.G|2u48?w)U{Z#BRb" type="control"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.TTS.AlleGeraete</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block id="gFO4!P8I6L$X^EO*JdTV" type="variables_get"> <field id="9bZ+SVj%$FZ4-|02x~-b" name="VAR" variabletype="">ttsContent</field> </block> </value> <next> <block id="y}~N]:Tu78Vn![3`6Sod" type="control"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.TTS.Queue</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block id="S?EhR`:raN#R28cSACXh" type="convert_object2json"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block id="uHk:s5/w-`ret$P8lwH^" type="variables_get"> <field id="Ys,h8KBm$.J$uF(7/#Ix" name="VAR" variabletype="">Queue</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml> Blockly Export Anwesenheitscounter <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable id="fQg0@`zMDgIn-poTW2%H" type="">AnzahlAnwesender</variable> <variable id=",YkGP6y^HQ4cv)6PN`sm" type="">i</variable> </variables> <block id=":+]]pb78P{uGI^ddKBO*" type="on_ext" y="-12" x="63"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow id="|rEJ$?8FPeZi$0PzLT2J" type="field_oid"> <field name="oid">default</field> </shadow> <block id="--GKQ_=@pYzAlEBH3S^1" type="selector"> <field name="TEXT">channel[state.id=alias.0.Anwesenheit.*]</field> </block> </value> <statement name="STATEMENT"> <block id="m4doZo86d7C$QUo0$1q|" type="variables_set"> <field id="fQg0@`zMDgIn-poTW2%H" name="VAR" variabletype="">AnzahlAnwesender</field> <value name="VALUE"> <block id="Vuk|Rt8tA7,IJj!Bk6GR" type="math_number"> <field name="NUM">0</field> </block> </value> <next> <block id="(oTGb9zH]5s7kG?1tNs3" type="controls_forEach"> <field id=",YkGP6y^HQ4cv)6PN`sm" name="VAR" variabletype="">i</field> <value name="LIST"> <block id="tWdCCo/cNFD.Z$:wP9lj" type="selector"> <field name="TEXT">channel[state.id=alias.0.Anwesenheit.*]</field> </block> </value> <statement name="DO"> <block id="^`9XQa$]xU8?@qB%~V{b" type="controls_if"> <value name="IF0"> <block id="X1{?y;5Cy]ou*h~_1~+?" type="logic_operation"> <field name="OP">AND</field> <value name="A"> <block id="BoX/,~ARsu7o3XHU7JsB" type="logic_compare"> <field name="OP">EQ</field> <value name="A"> <block id="c)bO[N8H3t5~32nS/SyB" type="math_number"> <field name="NUM">0</field> </block> </value> <value name="B"> <block id="eECw=2s=Qyrz?SrN|#TO" type="text_indexOf"> <field name="END">FIRST</field> <value name="VALUE"> <block id="g5^?sJev]i-Mj8LMZ$I6" type="variables_get"> <field id=",YkGP6y^HQ4cv)6PN`sm" name="VAR" variabletype="">i</field> </block> </value> <value name="FIND"> <shadow id="*R:cdG/Kee7{HSV+gJT:" type="text"> <field name="TEXT">.Handy.</field> </shadow> </value> </block> </value> </block> </value> <value name="B"> <block id="[R7`l@M-DKmf8@2c7X}2" type="logic_compare"> <field name="OP">EQ</field> <value name="A"> <block id="oMyvlf4pqtl~lszJ.2SK" type="math_number"> <field name="NUM">0</field> </block> </value> <value name="B"> <block id="dz@#96KZar/Qhb4[+~KO" type="text_indexOf"> <field name="END">FIRST</field> <value name="VALUE"> <block id="hJIxlp-DkGTn24*djYd$" type="variables_get"> <field id=",YkGP6y^HQ4cv)6PN`sm" name="VAR" variabletype="">i</field> </block> </value> <value name="FIND"> <shadow id="KFPBIa^zTHrL5%S7x7Qe" type="text"> <field name="TEXT">.Counter</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block id="EXvYX?UNSJ:^d68W$U(2" type="controls_if"> <value name="IF0"> <block id="-94XG+%*M0AtKi3Ku(@n" type="get_value_var"> <field name="ATTR">val</field> <value name="OID"> <shadow id="oS(|;g9[0okmj(!wewTp" type="text"> <field name="TEXT"></field> </shadow> <block id="MoTx^qRi]75=mf87A#{S" type="variables_get"> <field id=",YkGP6y^HQ4cv)6PN`sm" name="VAR" variabletype="">i</field> </block> </value> </block> </value> <statement name="DO0"> <block id="87XsrMzOguhL_C}Jt$n2" type="math_change"> <field id="fQg0@`zMDgIn-poTW2%H" name="VAR" variabletype="">AnzahlAnwesender</field> <value name="DELTA"> <shadow id="I7ywefSt,!5%%JguN={)" type="math_number"> <field name="NUM">1</field> </shadow> </value> </block> </statement> </block> </statement> </block> </statement> <next> <block id="n|F}!$-RKG8e+aC=wIZD" type="update"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Anwesenheit.Counter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block id="0o3BSp%A5oC5M:gK[rZQ" type="variables_get"> <field id="fQg0@`zMDgIn-poTW2%H" name="VAR" variabletype="">AnzahlAnwesender</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </xml> Blockly Export TTS Alle Geräte <xml xmlns="http://www.w3.org/1999/xhtml"> <block id="u_ourBfWonu[Zb+;+Z~T" type="on_ext" y="148" x="13"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow id="bPtCyvQb;E{-t`_5)iIx" type="field_oid"> <field name="oid">0_userdata.0.TTS.AlleGeraete</field> </shadow> </value> <statement name="STATEMENT"> <block id="H8o7T/G=ljg*Bt8p*=Jc" type="sayit"> <field name="INSTANCE">all</field> <field name="LANGUAGE"></field> <field name="LOG"></field> <value name="MESSAGE"> <shadow id="|YpO.:iVUzd|4r8yLK=[" type="text"> <field name="TEXT">text</field> </shadow> <block id="M`xnPuSf7zI2298mZugZ" type="on_source"> <field name="ATTR">state.val</field> </block> </value> </block> </statement> </block> </xml>
  • JSON auslesen, Array

    javascript
    7
    2
    0 Votes
    7 Posts
    1k Views
    P
    @Jey-Cee Hey, das war es dann wohl ... der Aufruf über Webbrowser funktionierte, was mich dazu verleiten ließ, anzunehmen, dass es auch per Skript läuft. Ich musste in meiner Abfrage noch die SID mitgeben bzw. mich vorher einloggen, da mir die Abfrage, ob Inhalt überhaupt kommt, mit der Errorcode "Insufficient user privilege" quittiert wurde. Daher vielen Dank für den entscheidenen Hinweis und es läuft jetzt auch mit var adcap = bodyObj2.data.cameras[0].MDCap; Gruß, Martin
  • [gelöst] Lampe leuchten lassen in Farbe bei Anruf

    blockly
    22
    1
    0 Votes
    22 Posts
    3k Views
    J
    @roddor Da Du ne elektronische Logik verstehst, ist es für Dich hier recht einfach mit dem Einstieg und reicht für 90% was Dir so vorschwebt. Der Rest ist ausprobieren und nachfragen. Gibt einige richtig gute Leute hier die mit Blockly Sachen zusammen klicken, da denkst im Traum nicht dran, dass man das mit den paar Blöcken machen kann.
  • Gelöst: Zeit aus String berechnen

    javascript
    5
    0 Votes
    5 Posts
    455 Views
    Jey CeeJ
    @michihorn logisch dafür muss es schon etwas mehr sein: let zeit = '23:52'; let zeitArray = zeit.split(':'); let hours = parseInt(zeitArray[0]); let minutes = parseInt(zeitArray[1]) + 30; if(minutes >= 60){ minutes = minutes - 60; hours = hours + 1; } if(hours >= 24){ let more = hours - 24; hours = more } let ZeitNeu = hours + ':' + minutes; So berücksichtigt es die 60 Minuten, die Annahme ist das du nie mehr als 59 Minuten auf addierst. Außerdem Berücksichtigt es 24/0 Uhr.
  • [Gelöst] Herunterfahren PI4 mit Script läuft nicht

    javascript
    2
    1
    0 Votes
    2 Posts
    382 Views
    opossumO
    Hallo, habe es jetzt herausgefunden, wie das Script gespeichert werden muss. Es liegt wohl an der Prüfung des rsa-Keys. So funktioniert es jetzt und der PI fährt herunter: sshpass -p 'passwort' ssh -oStrictHostKeyChecking=no pi@192.168.1.60 sudo shutdown -h now Ist ja erst die halbe Miete, muss mir das mit den Keys noch anschauen. Aber nun funktioniert das mit dem Herunterfahren. Der PI steuert einen 32" TV an, auf dem wird unser Googel-Familienkalender angezeigt. Einschalten läuft über Cron und Blockly auf eine Brennenstuhlsteckdose. Ausschalten auch über Cron, aber 10 Minuten vorher wird jetzt der PI mit sshpass heruntergefahren.
  • Wenn Bedingung x wahr ist für Zeitraum y

    blockly security
    7
    1
    0 Votes
    7 Posts
    731 Views
    X
    @688attacksub sagte in Wenn Bedingung x wahr ist für Zeitraum y: Ich kriege es nicht hin. Wobei mir eines in den Sinn kam: Wenn ich das Haus VERLASSE, hängt das Handy ja noch WLAN. Das Ganze macht also in jedem Fall keinen Sinn. Warum nacht das keinen Sinn? Ist doch gut wenn du aus den WLAN raus bist, schaltet die "Alarmanlage" scharf. Die Lösung kann also nur sein, dass ich (weil das Handy noch nicht zuhause "angekommen" ist) jedes Mal eine Türöffnungs-Benachrichtigung bekomme. Ist nicht schön, aber wohl nicht anders machbar. Das ist der Nachteil, besser wäre die WLANVerbindung seht bevor du der Tür betrittst. HAst du mal drüber nachgedacht den WLANBereich um die Tür mit einem Repeater zu vergrößern damit dein Handy eher im WLAN ist. Man bekommt ja als Anfänger einen Knoten im Gehirn bei den ganzen Bausteinen und Optionen - obwohl alles logisch ist. Geht mir auch noch öfter so, was mir hilft ist oldschool mit Zettel&Stift die Anforderungen & Randbedingungen zu formulieren. Wenn einem das Programm dann klar ist, ist es auch schnell in Blockly zusammengeschuppst. Suchbegriffe fürs Forum: Alarmanlage Anwesenheits(erkennung). Ich hab das Problem dass die Handys nach einiger Zeit oder wenn der Akku schwach ist das Wlan abschaltet, somit "denkt" die Alarmanlage keine ist da.
  • Zugangskontrolle Tabelle erstellen Wie geht das?

    javascript monitoring
    2
    1
    0 Votes
    2 Posts
    464 Views
    ChaotC
    Ich habe unten den Punkt "RFID Time" und den Punkt "PN532_Data" der mir die benötigten Daten liefert. Ist es dann irgendwie möglich daraus eine Tabelle zu erstellen das die beiden Punkte ausgewertet werden? Ich brauche doch nur einen Denkanstoß in die richtige Richtung.
  • ... hat Geburtstag ausblenden

    template
    1
    2
    0 Votes
    1 Posts
    137 Views
    No one has replied
  • [Gelöst] Xiaomi Bewegungsmelder Nachlaufzeit

    blockly
    7
    0 Votes
    7 Posts
    805 Views
    Y
    @haselchen erledigt.
  • Gruppe von Aktoren steuern

    blockly
    8
    0 Votes
    8 Posts
    1k Views
    PV-FreakP
    So, bin wieder ein Stückchen weiter und vielleicht auch schlauer... Das mit den Gruppen geht wohl so tatsächlich nicht, jedenfalls nicht so ohne weiteres. Habe mich allerdings mit dem Thema "Variablen und Funktionen" auseinandergesetzt. Allerdings weiß ich jetzt nicht so ganz genau, ob das sinnvoll und elegant oder einfach nur sinnlos kompliziert ist... (Beispiel unten: Wenn "Kino", dann Licht aus und Jalousien Wohnzimmer schließen) Wie gesagt, meine Programmierkenntnisse beschränken sich auf Turbopascal während des Abiturs irgendwann Anfang der 90er... und da hab ich eh meist an "wichtigere" Dinge gedacht ;) Dein Tipp mit den kleinen statt "Monsterscripten" ist gut, merke ich mir. Danke! [image: 1577969983140-169357f5-445c-4f84-bd5d-81476a906c79-grafik.png] [image: 1577969137802-c582dc10-92df-4ad2-ae2d-9ed2bb5e2f8c-grafik.png]
  • [gelöst] Wie Datei per Skript herunterladen?

    javascript
    8
    0 Votes
    8 Posts
    1k Views
    HomoranH
    @passuff ich habe inzwischen auch die CSV (mit dem Parser ;-) ) eingebunden. Werde mich aber nach und noch noch in weitere Möglichkeiten einarbeuten, da der Parser für jeden Wert eine ANfrage an den Server schickt. Ich würde das als Anbieter nicht lustig finden
  • [Gelöst] Owntracks, keine Datenpunkte places.0

    javascript
    4
    1
    0 Votes
    4 Posts
    426 Views
    P
    @PeterPan @apollon77 Es lag daran, dass ich den Breiten- und Längengrad nicht in den System-Haupteinstellungen eingetragen hatte. Trotzdem vielen Dank!!!
  • Befehl per MQTT an Sonoff-Tasmota

    blockly
    3
    0 Votes
    3 Posts
    4k Views
    J
    @Hhjung16 Danke. Das werde ich mal in einem Script ausprobieren.
  • [gelöst] Werte einzeln aus JSON extrahieren

    javascript
    7
    0 Votes
    7 Posts
    2k Views
    realwaxR
    Falls das wer auch mit blockly lösen möchte. Einfachster weg: Mit einem DEBUG baustein, das JSON Objekt in den Log ausgeben. Den Output kopieren und in Notepad++ einfügen und dort die Plugins JSTools runterladen. Unter Erweiterungen JSTools den JSON Viewer aktivieren und schon seht ihr die Objektstruktur und könnt gut scripten und debuggen. In Folge einzelne Attribute mit mit dem Block mit Attribut abfragen. Ich habe so meine Busabfahrtszeiten abfragen via Alexa gelöst und lasse mir jeden Tag meine Google Termine vorlesen. [image: 1577799657567-dda34d79-f864-4429-b653-c1cadf88a1d2-image.png]
  • Zigbee Stick mit Philips Hue Dimmer

    blockly
    2
    1
    0 Votes
    2 Posts
    371 Views
    P
    Edit: Hat sich erledigt
  • Kodi ShowNotif

    javascript
    1
    0 Votes
    1 Posts
    289 Views
    No one has replied
  • Script Fenster-Temperatur -Steuerung Air-Purifier

    blockly
    1
    1
    0 Votes
    1 Posts
    256 Views
    No one has replied
  • [gelöst] Zw.Stecker 433 MHz schalten funkt.nicht

    communication
    17
    0 Votes
    17 Posts
    954 Views
    S
    @oberfragger Danke für die Info. Meine Baumarktdosen habe ich inzwischen entsorgt, da sie leider ihren Geist aufgegeben haben. Insoweit habe ich das Projekt für mich zunächst einmal beerdigt. Dennoch Dankeschön.

735

Online

32.7k

Users

82.6k

Topics

1.3m

Posts