Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.8k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    NashraN
    Moin, ist das nur bei mir so oder zeigt es bei Tendenzen, also steigend, gleichbleibend oder sinkende Preise nur noch gleichbleibend an. [image: 1785667905334-screenshot-2026-08-02-125056.png] Sobald die Preise fallen verändert es sich nicht.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    paul53P
    @tiobb [image: 1785691373377-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    962 13k
    962 Themen
    13k Beiträge
    Marc BergM
    @Thomas-Braun sagte: In der Konfigurationsdatei von Node Red, also in der settings.js, kann durch hinzufügen der Zeitzone das Problem behoben werden. Wenn man den Adapter nutzt, werden Änderungen in der settings.js immer wieder überschrieben. Das bringt nichts. @taddy81 Was konkret ist denn das Problem? Lösen die inject Nodes falsch aus? Oder geht es nur um diese Meldung, bei der niemand weiß, woher sie kommt? @Taddy81 sagte: Auszug: 7/26/2026, 11:15:23 AMnode: debug 3msg.payload : string[24]
  • Alarm verzögert bei verschiedenen Bedingungen

    javascript
    4
    0 Stimmen
    4 Beiträge
    462 Aufrufe
    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 Stimmen
    2 Beiträge
    323 Aufrufe
    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 Stimmen
    7 Beiträge
    1k Aufrufe
    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 Stimmen
    7 Beiträge
    2k Aufrufe
    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 Stimmen
    22 Beiträge
    3k Aufrufe
    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 Stimmen
    5 Beiträge
    519 Aufrufe
    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 Stimmen
    2 Beiträge
    423 Aufrufe
    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 Stimmen
    7 Beiträge
    890 Aufrufe
    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 Stimmen
    2 Beiträge
    508 Aufrufe
    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 Stimmen
    1 Beiträge
    154 Aufrufe
    Niemand hat geantwortet
  • [Gelöst] Xiaomi Bewegungsmelder Nachlaufzeit

    blockly
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    Y
    @haselchen erledigt.
  • Gruppe von Aktoren steuern

    blockly
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    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 Stimmen
    8 Beiträge
    1k Aufrufe
    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 Stimmen
    4 Beiträge
    567 Aufrufe
    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 Stimmen
    3 Beiträge
    4k Aufrufe
    J
    @Hhjung16 Danke. Das werde ich mal in einem Script ausprobieren.
  • [gelöst] Werte einzeln aus JSON extrahieren

    javascript
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    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 Stimmen
    2 Beiträge
    496 Aufrufe
    P
    Edit: Hat sich erledigt
  • Kodi ShowNotif

    javascript
    1
    0 Stimmen
    1 Beiträge
    314 Aufrufe
    Niemand hat geantwortet
  • Script Fenster-Temperatur -Steuerung Air-Purifier

    blockly
    1
    1
    0 Stimmen
    1 Beiträge
    297 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Zw.Stecker 433 MHz schalten funkt.nicht

    communication
    17
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    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.

224

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge