Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.3k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    J
    Hi, aktuell was ich beobachtet habe, ja. Die Rückmeldung wollte ich erst geben, wenn ich den Futterautomat erhalten habe, der aber bisher noch nicht geliefert wurde. Auch diesen kann man mittels API einbinden. Sollte es bei der Einbindung Probleme geben, melde ih mich noch mal, ansonsten aber auch so.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    L
    Das ist doch eigentlich der Job des Sourceanalytics Adapters.
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Themen
    13k Beiträge
    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
  • Status RollerShutter2

    javascript
    1
    0 Stimmen
    1 Beiträge
    144 Aufrufe
    Niemand hat geantwortet
  • Roborock 1x am Tag starten

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    3k Aufrufe
    J
    @matschkopf sagte in Roborock 1x am Tag starten: @Jan1 Super, vielen Dank. Ich war mir vorher nicht ganz sicher, aber jetzt mit dem Screenshot sehe ich, dass du tatsächlich die Bedingung Action ="6" abfragst. Habe eben mal eine manuelle Reinigung dgf. und den DP geloggt: [image: 1578055842536-vr200_log.jpg] Bei mir geht er auf "4", wenn die Reinigung beendet ist. Es scheint bei dir ja seit mehr, als einem Jahr zu funktionieren...trotz dessen merkwürdig Kann sogar sein, dass die 6 bei mir falsch ist, da ich sehr selten manuell starte und das wohl nicht merke. Muss ich mal checken. Irgendwie muss ich ja mal drauf gekommen sein und das ist schon länger her
  • Alarm verzögert bei verschiedenen Bedingungen

    javascript
    4
    0 Stimmen
    4 Beiträge
    406 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
    279 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
    1k 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
    455 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
    382 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
    732 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
    465 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
    137 Aufrufe
    Niemand hat geantwortet
  • [Gelöst] Xiaomi Bewegungsmelder Nachlaufzeit

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

    blockly
    8
    0 Stimmen
    8 Beiträge
    1k 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
    426 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
    371 Aufrufe
    P
    Edit: Hat sich erledigt
  • Kodi ShowNotif

    javascript
    1
    0 Stimmen
    1 Beiträge
    289 Aufrufe
    Niemand hat geantwortet

474

Online

32.8k

Benutzer

82.7k

Themen

1.3m

Beiträge