Skip to content

Skripten / Logik

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

16.6k Themen 213.6k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    @Dave69-CH Kannst du mir mal deinen Link zu der Proplanta Seite schicken. Ich denke das die Schweizer Version anders aufgebaut ist und deswegen die Zeit für die nächste Aktualisierung mit meinem Filter nicht gefunden wird. Auf der Seite werden diese Zeilen gesucht: [image: 1771532044543-1dd3b19e-1c7b-4586-814f-de0746287907-grafik.png] Entweder gibt es die in der Schweizer Version nicht, oder sind anders beschrieben.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    R
    @Jens-G. Ich würde erstmal den Sensor direkt überprüfen. [image: 1771610974060-c6ba0529-b277-455f-94aa-ff1c11f8dd1c-grafik.png] So kannste dich im Raum bewegen und siehst live an deiner Lampe wann detektiert wir und wann nicht.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • Kleine Alarmanlage - mit Blockly?

    Verschoben
    75
    2
    0 Stimmen
    75 Beiträge
    17k Aufrufe
    J
    @Mpex Hi Dennis! Ich habe genau das gleiche Problem, Die Alarmanlage heult auf, obwohl ich sie am Tablet unscharf gestellt habe! Wie hast Du das hinbekommen? Liebe Grüße Jürgen
  • Fehlermeldung JS

    javascript blockly
    4
    0 Stimmen
    4 Beiträge
    339 Aufrufe
    paul53P
    @tobi83 sagte: War ein fertiges Script... Welches ?
  • Objekt Temperatur Tag 0.5 Grad Schritte

    javascript
    11
    0 Stimmen
    11 Beiträge
    962 Aufrufe
    M
    @paul53 sagte in Objekt Temperatur Tag 0.5 Grad Schritte: @MGK sagte: Ich habe Beispiel schon nachgebaut, Hast Du nicht: runde ist falsch angeordnet und es ist keine Addition von 2, sondern eine Division durch 2 ! Spoiler <xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id="L1z^UnvAh]FbqfSR!3~[" x="-337" y="137"> <field name="COMMENT">virtueller Sollwert</field> <next> <block type="on_ext" id="xQT$V4H4dI{h+ZJfmDM_"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="@NFstpOxq2;/S)P-}iie"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Kb@=QRA_.n0?}?P:KUd9"> <value name="IF0"> <block type="logic_compare" id="9nw2K$SM5dh$jre6CC.Y"> <field name="OP">NEQ</field> <value name="A"> <block type="on_source" id="$mqIr3,[g~Pa@uHSdU8$"> <field name="ATTR">state.from</field> </block> </value> <value name="B"> <block type="text" id=";^9{.F]UA-b|3vQe2D6o"> <field name="TEXT">system.adapter.javascript.0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="5@TV7wIY0VQD-OARFny="> <field name="COMMENT">Sollwert</field> <next> <block type="control" id="|u:4(-:G0TIn0f[8-i``"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="s$imRFT`{Lo0$ts)Js5F"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="?nFz7C{w2Nf4dMWv(MUe"> <field name="NUM">1</field> </shadow> <block type="math_round" id="c.;M}PyDw-(0iMuwiNVN"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="6C-L$7TvZP,IE5N1V/@a"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="LVjJ1?z+DoSg7%-RKnw2"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="OKG:aqr.c!/hv2b.e6G_"> <field name="NUM">1</field> </shadow> <block type="on_source" id="_~A,.)H;(`c7k+pk=wMf"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number" id="]n34Ox7,aE#c,zZ}qgyA"> <field name="NUM">2</field> </shadow> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="hI{U1MRmhYu,G`*DR9}!"> <field name="NUM">2</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml> Stimmt, da hatte sich ein Fehler eingeschlichen. Danke für den Tipp.
  • createState Format

    javascript
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    paul53P
    @michihorn sagte: createState(idAStunde, { read: true, write: true, desc: "Zeiteingabe Ausschalten Stunden ein,", type: "number", min: '0', max: '24', def: 22 }); min und max dürfen kein Strings sein (type: "number").
  • Woher globale Einheiten (°C / F), (mm / inch)?

    javascript
    6
    0 Stimmen
    6 Beiträge
    577 Aufrufe
    L
    das funktioniert prima in scripten - in einem eigenen Adapter rennt der auf Fehler, bzw. liefert nichts. Es scheint auch noch andere "Nicklichkeiten" beim übertragen von Code in einen Adapter zu geben: z.B. hatte ich mit: subscribe({id: "fhem.0.AU_GA_TF_Garage.humidity", change:'any'}, ZimmermanTrackHumidity); nen subscribe auf nen Luftfeuchte-Sensor gesetzt und der Callback hat dann mit: ... function ZimmermanTrackHumidity(obj) { var ts = new Date(obj.newState.ts); var currenthour = ts.getHours(); var newstate = parseFloat(obj.newState.val); ... wie erwartet die Werte geliefert. wenn ich nun im Adapter: this.subscribeForeignStates("fhem.0.AU_GA_TF_Garage.humidity", this.trackHumidity); mache und der Callback so aussieht: trackHumidity(obj) { var ts = new Date(obj.newState.ts); var currenthour = ts.getHours(); var newstate = parseFloat(obj.newState.val); dann bekomme ich: Caught by controller[0]: TypeError: Cannot read property 'newState' of null
  • LaMetric: Clock Icon via Curl wechseln

    communication blockly
    1
    0 Stimmen
    1 Beiträge
    293 Aufrufe
    Niemand hat geantwortet
  • How to: PS4 einschalten/steuern mit Harmony Aktivität oder HomeKit

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    4k Aufrufe
    K
    @noaboa Ich habe es für mich nun lösen können.. nach etlichen Rollbacks und diversen Versuchen. Also ich hatte verschiedene Herangehensweisen versucht, die alle zu Fehlern führten. Wenn ich in meinem LXC Container in der Konsole npm install ps4-waker -g ausgeführt habe, konnte ich anschließend auch über die Konsole mit dem Befehl ps4-waker die Bindung einleiten. Aber es klappte nicht im IoBroker, weder via Javascript noch per Konsole. Auch der Versuch das Modul über den Javascript Adapter unter Instanzen zu laden funktionierte nicht. Nun läuft es jedoch, ich habe folgendes gemacht, zuerst den IoBroker gestoppt, dann im LXC Container in der Konsole folgenden Befehl ausgeführt setcap cap_net_raw,cap_net_admin=eip /usr/bin/node (dieser scheint die Berechtigungsprobleme aufzuheben), anschließend den IoBroker wieder gestartet und dort über den Terminaladapter folgenden Befehl ausgefüht npm install ps4-waker -g diesmal habe ich auch keine Fehlermeldungen wegen Rootrechten erhalten. Anschließend aus dem Terminaladapter ps4-waker ausgeführt und den Bindungsprozess gestartet. Nun lässt sich die Konsole mit ps4-waker aus dem Ruhezustand wecken und mit ps4-waker standby wieder in den Ruhezustand versetzen lassen. Auch die Exec Befehle im Javascript funktionieren nun.
  • Script holt falschen Wert vom Objekt

    javascript
    11
    2
    0 Stimmen
    11 Beiträge
    474 Aufrufe
    H
    Ich muss diesen Thread noch mal hochziehen. Das Problem ist nicht gelöst. Jetzt möchte ich mal meine Vermutung testen, dass es an der Startreihenfolge der Adapter liegt. Lässt sich die - und möglichst auch ein Delay zwischen den Starts - irgendwo einstellen?
  • Blockly Script für Harmony

    blockly
    18
    2
    0 Stimmen
    18 Beiträge
    1k Aufrufe
    M
    @Homoran Hallo Homoran, ich habe die Aktionen in den beiden Harmony Hubs beobachtet, dort sieht auf den ersten Blick alles gut aus, hat aber dann gestern Abend doch wieder nicht funktioniert. Dann werde ich die Debug Blöcke doch mal einbauen müssen. Danke!
  • Telegram Adapter Empfang von Daten

    javascript communication
    2
    0 Stimmen
    2 Beiträge
    369 Aufrufe
    arteckA
    @Stefan-Zabicki nochmal was.. willst du Daten zum iobroker (Bot) oder vom iobroker bekommen ??
  • Tuya-Adapter Datenpunkt per Skript editieren

    javascript
    5
    0 Stimmen
    5 Beiträge
    571 Aufrufe
    L
    Danke.... Ich müsste ja nicht auf common.min triggern. Wenn ich die Temperatur schalten möchte wird der Wert des DP auf 10 gesetzt. Also könnte ich ja darauf triggern. Müsste nur den Common.min wieder auf 0 setzen können. Dann wäre mein Problem beseitigt. Schon mal Merci... Grüße Leonracer
  • Alexa, Text verarbeiten

    javascript
    3
    0 Stimmen
    3 Beiträge
    367 Aufrufe
    X
    danke die Funktion kann man ja mal rausziehen und kapseln. aber um das komplett im Blockly machen bräuchte ich einen größeren Flachbildschirm oder bessere Augen um die miniZoomPuzzle zu erkennen. ;)
  • Sammlung an "sinnvollen" Funktionen

    javascript
    1
    0 Stimmen
    1 Beiträge
    432 Aufrufe
    Niemand hat geantwortet
  • Datenpunkt Comet Dect überschreiben?

    blockly heating
    15
    2
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    v522533V
    @_tobias_ sagte in Datenpunkt Comet Dect überschreiben?: Wie ist es möglich manuell (am Thermostat auf / zu drehen) die Temperatur zu korrigieren? Also falls jemand im Haus entscheidet, dass heute nicht 22°C ausreichen, sondern 24°C und derjenige nur das Thermostat bedienen möchte und iobroker für ein Hexenwerk hält (ich möchte nicht behaupten, dass meine Frau gemeint sein könnte)... Wenn im Skript mit falls - mache Logik eine feste Zahl als Sollwert vorgegeben ist, wird ein Handeingriff spätestens beim nächsten Synchronisieren wieder rückgängig gemacht.? ich mache das über alexa, oder über ein tablet an der wand. dort wird der neue wert eingegeben und dann passt auch das skript. am thermostat selber wird bei uns garnichtseingestellt.
  • Status RollerShutter2

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

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    2k 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 :nerd_face: 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 :blush:
  • Alarm verzögert bei verschiedenen Bedingungen

    javascript
    4
    0 Stimmen
    4 Beiträge
    395 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
    265 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
    974 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

628

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge