Skip to content

Skripten / Logik

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

16.6k Topics 213.9k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    H
    @crunchip Passt, vielen Dank...
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    Murphy 0M
    @berny-k Hier noch die Entladekurve: [image: 1773424354505-img_3937-resized.png]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    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
  • Falls wer länger als x sekunden unter Wert ist

    Moved
    3
    0 Votes
    3 Posts
    358 Views
    L
    danke den hab ich ganz übersehen, dann dort weiter.
  • Becker Rolladensteuerung - Umbau Fernbedienung

    Moved
    18
    0 Votes
    18 Posts
    8k Views
    F
    @Nabla: Soweit ich das sehe, bräuchte man doch hier mindestens das Pro-Paket für 499,- Euro mit dem NEO Plugin AIO GATEWAYS ` Du brauchst zur Ansteurung von Becker mindestens eine AIO Gateway V5, kosten 140 Euro, und dann entweder das NEO Plugin AIO Gateway für 99 Euro oder alternativ die Ansteurung des AIO Gateways V5 und Becker über IP-Symcon kostet auch 99 Euro. In beiden Fällen liegst Du also bei 239 Euro gesamt. Oder Du machst Dir die Mühe direkt aus ioBroker das AIO Gateway zu schalten dann sparst Du noch mal 99 Euro, must aber Wireshark bemühen, die API ist nicht öffentlich.
  • SetState() mit Acknowledge?

    Moved
    12
    0 Votes
    12 Posts
    17k Views
    modmaxM
    Die if-Abfrage im on-Trigger kann man auch noch vermeiden, wenn man denn nur die eine if-Abfrage auf ack=false drin hat: on({id: 'Hier.der.Datenpunkt', change: 'any', ack:false}, function (obj) { // Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false. }); MfG Markus
  • Frage zu Blockly: Rollosteuerung

    Moved
    4
    1
    0 Votes
    4 Posts
    803 Views
    B
    Moin, ist zwar schon bischen her aber könntest du deine funktionierenden Rolladen Blocklys hier mal posten? Danke
  • Blockly Abluftsteuerung

    Moved
    3
    1
    0 Votes
    3 Posts
    631 Views
    O
    danke Paul…teste ich gleich
  • Skripte in IDE entwickeln und debuggen

    Moved
    3
    0 Votes
    3 Posts
    599 Views
    M
    Sieht vielversprechend aus, das probier ich mal. Besten Dank!
  • Frage zum $ - Selector

    Moved
    4
    2
    0 Votes
    4 Posts
    419 Views
    paul53P
    @Lenny.CB: Gibts da auch ne Erklärung für? ` Nur eine Vermutung: Durch die Angabe von channel wird die Selektion auf Datenpunkte eingeschränkt, die einem Kanal zugeordnet sind. Das sind Datenpunkte unter javascript. nicht.
  • Socket.io - Alle Objekte unterhalb von Datenpunkt

    Moved
    3
    0 Votes
    3 Posts
    449 Views
    T
    Hey Fitti, ein Script welches den Batteriestatus prüft erstellt einen Datenpunkt mit dem Namen des Geräts (hm-meq…) und löscht diesen wieder sobald die Batterie gewechselt wird. Per socket.io habe ich mir ein eigenes Webinterface gebastelt, hier soll nun im Benachrichtigungsfenster die Meldung erscheinen, das eben die Batterie leer ist. Er prüft also bei Veränderung und erstellt dann die Meldung, daher unbekannte Datenpunkte und daher eben alle Unterpunkte von X.
  • Zugriff auf Mediola per http…

    Moved
    9
    0 Votes
    9 Posts
    3k Views
    Z
    @0018: OK, danke dir. Mit PC konfigurieren meinst du sicherlich mit dem Browser auf die Weboberfläche des Gateways zugreifen und dort konfigurieren oder gibt es ein PC-Tool zum installieren? Reicht es Wireshark auf meinem PC laufen zu lassen und zu sniffen oder brauch ich einen Switch mit Port-Mirroring um alles zu sehen? ` Zum konfigurieren nimmt man mediola Neo was kostenlos ist, um die becker dinger an das gateway anzulernen, braucht man normalerweise as plugin aio gateways. Aber man kann in den testmodus wechseln und dann die becker dinger anlernen, dann eine fernbedienung erstellen mit den buttons hoch,runter, stop. Diese fernbedienung kann man dann am pc testen….wireshark starten und aufnehmen, die buttons anklicken und im wireshark die http befehle suchen. Also braucht man für alles den pc, neo, wireshark und das gateway.
  • [gelöst] Wert mit Einheit

    Moved
    4
    0 Votes
    4 Posts
    807 Views
    modmaxM
    Könnest Du dann den Beitrag noch als "gelöst" im Titel markieren? … :-) MfG Markus
  • Gelöst: Fehler im Script

    Moved
    9
    0 Votes
    9 Posts
    527 Views
    M
    @paul53: Es fehlt der Abschluss von Schedule. } }); // on }); // schedule ```` ` Dankeschön ;-)
  • [gelöst] JS sicherstellen, dass Telegram Nachricht gesendet hat

    Moved
    11
    0 Votes
    11 Posts
    592 Views
    Jeeper.atJ
    Dann bitte dem Threadtitel ein [gelöst] voranstellen. Vielen Dank.
  • Blockly Skript wirft seltsame Fehler

    Moved
    3
    1
    0 Votes
    3 Posts
    449 Views
    A
    Wo liegt deine Variable? Meine lag in einem Unterordner von javascript.0/scriptsEnabled/… Ich habe auf Verdacht die Variable dort gelöscht, direkt unter javascript.0 wieder angelegt und in meinem Script geändert. Seitdem geht‘s wieder. Mir nicht klar, ob der Ablageort tatsächlich das Problem war, oder einfach die Tatsache, dass ich die Variable gelöscht und wieder neu angelegt habe, geholfen hat. VG Alex
  • Alexa2 - Object von getriggerte channel ansprechen

    Moved
    12
    0 Votes
    12 Posts
    2k Views
    G
    Super qoka. Vielen Dank. Zwar viele WARN im log aber er macht was er soll. Ich weiß auch nicht besser :D Nochmal Vielen Dank.
  • Anwesenheitsscript mit 3 Aktoren?

    Moved
    4
    1
    0 Votes
    4 Posts
    453 Views
    BigWumpusB
    OK, du ersetzt in meinem Blockly das "Bernd-S8" durch Dein "Maggis_S8.btHere". "Anwesenheit Bernd" durch "Patrick". Dein Blockly-Script hat aber nicht zuviel mit Deinem Text darüber zu tun… Ich würde die drei Arten der Prüfung so anlegen und jeweils Patrick_da1, Patrick_da2 und ...3 ansteuern, jeweils mit einem Aktor. Und dann: Bei jeder Änderung eines der Zustände läuft ein Script, das alle Zustände zusammenführt und EINEN Zustand schaltet bei mir "Anwesenheit jemand". Und daraus ergeben sich dann weitere Schaltungen... Kann man "schöner" mit verschachtelten If-And-Or-Ketten machen, aber manchmal liebe ich Bitbanging, weil es so einfach ist. Das mit dem Zeitplan bitte nicht ansehen, das versteht hier sowieso niemand ohne bebilderte Anleitung und Youtube-Video. 8-) Ist aber auch schwer hier... <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="kfhthl4A_O7c}!^iGR`I" x="-412" y="-337"><field name="OID">tr-064.0.devices.Bernd-S8.active</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <statement name="STATEMENT"><block type="controls_if" id="h,hR16M;yVA1T7@}{FDq"><mutation else="1"></mutation> <value name="IF0"><block type="variables_get" id="ROHg,c51][lDw5Elq9WQ"><field name="VAR">value</field></block></value> <statement name="DO0"><block type="update" id="?@YMzuJn`ZO[DfO2!HiI"><mutation delay_input="true"></mutation> <field name="OID">admin.0.Anwesenheit.Bernd</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">0</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"><block type="logic_boolean" id=",),eUcCn.}Q(RejIR6XX"><field name="BOOL">TRUE</field></block></value></block></statement> <statement name="ELSE"><block type="update" id="k)b?lWig(po!O1=%K3`0"><mutation delay_input="true"></mutation> <field name="OID">admin.0.Anwesenheit.Bernd</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"><block type="logic_boolean" id="=f7~uNZjuwBm}Yi6AU-~"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement> <next><block type="on" id="|V:kU=)Z8](#y4o.Sn[k"><field name="OID">tr-064.0.devices.iPhone.active</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <statement name="STATEMENT"><block type="controls_if" id="`=u0q7JK*r8ox}wp6{S."><value name="IF0"><block type="variables_get" id="S`zjp]fX{i6~*7mG4ywc"><field name="VAR">value</field></block></value> <statement name="DO0"><block type="update" id="DAU9B17C(EQZ!h2,w7X7"><mutation delay_input="true"></mutation> <field name="OID">admin.0.Anwesenheit.Valentina</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">0</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"><block type="logic_boolean" id="BLKO%x).AdcMLrb/f|h:"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> <next><block type="schedule" id="=:%3E--`sgvxL#0Jwn/D"><field name="SCHEDULE">*/5 9-22 * * *</field> <statement name="STATEMENT"><block type="controls_if" id="dc~4EAADd2J]xk`J[*@u"><value name="IF0"><block type="get_value" id="n1]K,(@]P7pB`q(CS{xG"><field name="ATTR">val</field> <field name="OID">admin.0.Anwesenheit.Valentina</field></block></value> <statement name="DO0"><block type="controls_if" id="qtKy+#reegSQ]LiiZ,:e"><value name="IF0"><block type="logic_negate" id="pOH^Y1O{P0tL-8yDbfdW"><value name="BOOL"><block type="get_value" id="?!D4tDC=bYy_jRh#}[nn"><field name="ATTR">val</field> <field name="OID">tr-064.0.devices.iPhone.active</field></block></value></block></value> <statement name="DO0"><block type="update" id="AgIOd}a8|;A.LTvtGW*~"><mutation delay_input="true"></mutation> <field name="OID">admin.0.Anwesenheit.Valentina</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="fA;^.W@~/QC;-}*l9jTs"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></statement> <next><block type="on_ext" id=":*j}F2t1pyx6Yj@P@==8"><mutation items="2"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id=";s5b0_,!u0C{AK/hhLTM"><field name="oid">admin.0.Anwesenheit.Bernd</field></shadow></value> <value name="OID1"><shadow type="field_oid" id=":#zLyra}hnJthGnZ:zM-"><field name="oid">admin.0.Anwesenheit.Valentina</field></shadow></value> <statement name="STATEMENT"><block type="variables_set" id=":Mh%Khr4O(p-?yN``i-:"><field name="VAR">anybody</field> <value name="VALUE"><block type="logic_boolean" id="Q})Nre/);hYa!BeWrSFx"><field name="BOOL">FALSE</field></block></value> <next><block type="controls_if" id="pJasH9X8#DcWpIcaiQ,u"><value name="IF0"><block type="get_value" id="l3JT}#:((!O3OsWa(B8L"><field name="ATTR">val</field> <field name="OID">admin.0.Anwesenheit.Bernd</field></block></value> <statement name="DO0"><block type="variables_set" id="KwT2k`Bw6P5@D8WpHnjW"><field name="VAR">anybody</field> <value name="VALUE"><block type="logic_boolean" id="(y4`!Oa7ybg@z(S.m[Q/"><field name="BOOL">TRUE</field></block></value></block></statement> <next><block type="controls_if" id="j7#YFjnUn-F3rx{U2x8q"><value name="IF0"><block type="get_value" id="e56o0lRxha7s}B2,c+?h"><field name="ATTR">val</field> <field name="OID">admin.0.Anwesenheit.Valentina</field></block></value> <statement name="DO0"><block type="variables_set" id="3n=h,Y:^lk#*Rs]/}9`H"><field name="VAR">anybody</field> <value name="VALUE"><block type="logic_boolean" id=")d!l@W}2umpB+HbbmT!N"><field name="BOOL">TRUE</field></block></value></block></statement> <next><block type="update" id="^sMeY1%o2!5|[ZV:mgOo"><mutation delay_input="false"></mutation> <field name="OID">admin.0.Anwesenheit.Person</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="#X+flmfrFU?9oA4xQbHU"><field name="VAR">anybody</field></block></value></block></next></block></next></block></next></block></statement> <next><block type="on" id="OO)%KkH[6r(swsji*%m9"><field name="OID">admin.0.Anwesenheit.Person</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="controls_if" id="!f?6wt/Q~Qi9QLWE_WET"><mutation else="1"></mutation> <value name="IF0"><block type="variables_get" id="RlnHGO.(X_]q##c,:Sl5"><field name="VAR">value</field></block></value> <statement name="DO0"><block type="timeouts_cleartimeout" id="b%jHZsPuzuBc8,wmn:c+"><field name="NAME">timeout</field></block></statement> <statement name="ELSE"><block type="timeouts_settimeout" id="f%p3lbDC~c+hfPd4@)m_"><field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="update" id="bg}o;`[xKgaZ?IpO{=y3"><mutation delay_input="false"></mutation> <field name="OID">admin.0.Alles_</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="_J3Q};?BaDJvRVVgh8.)"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></statement></block></next></block></next></block></next></block></next></block></xml>
  • [gelöst]Syntaxbeschreiung JavaScript

    Moved
    3
    0 Votes
    3 Posts
    261 Views
    F
    Perfekt, danke!
  • Rolladensteuerung mit Alexa Lokal

    Moved
    11
    1
    0 Votes
    11 Posts
    5k Views
    M
    Ja Alexa Lokal ist hier der Thread.
  • Variable Blockly

    Moved
    3
    0 Votes
    3 Posts
    435 Views
    W
    Ja! Ich danke Dir
  • Nodes per For-Schleife kopieren und Nummerieren

    Moved
    2
    1
    0 Votes
    2 Posts
    2k Views
    R
    Zu deinem konkretem Problem kann ich leider nichts beitragen. Aber loops kannst du in NR einfach mit dem function-node realisieren. [image: 3999_node-red_loops_mit_function-nodes.pdf] Es gibt auch diverse contrib Nodes für loops. Die findet du über die Manage Palette wenn du bei Install mal "loop" als Suchbegriff eingibst.
  • Script mit Astro und Variablen Lampe einschalten

    Moved
    22
    0 Votes
    22 Posts
    4k Views
    Homer.J.H
    Hallo Leute vielleicht kann mir jemand helfen hab das Script jetzt angepasst so wie ich es haben möchte, hab aber das Problem das immer egal ob ich den Fernseher ein oder ausschalte es immer auf aus getriggert wird. Grüße Homer var night = false; // ab Sonnenuntergang bis Sonnenaufgang var fernseh = false; // Fernseher Aus/Ein function lampe() { if (night && (fernseh)) { log("Amphilight nachts über Smart TV ein"); setState("hm-rpc.2.00105709A24040.3.STATE"/*Licht TV.STATE*/, true); } else { log("Amphilight nachts über Smart TV aus"); setState("hm-rpc.2.00105709A24040.3.STATE"/*Licht TV.STATE*/, false); } } schedule({astro: "sunset"}, function () { night = true; lampe(); }); schedule({astro: "sunrise"}, function () { night = false; lampe(); }); on("harmony.0.Harmony Hub.activities.Smart TV wiedergeben"/*activity:Smart TV wiedergeben*/, function(obj) { var fernseh = obj.newState.val; log("fernseh: " + fernseh); if(fernseh === 2) { fernseh = true; lampe(); } else if (fernseh === 0) { fernseh = false; lampe(); } }); 21:24:56.648 [info] javascript.0 script.js.Test.test_1: fernseh: 3 21:25:02.389 [info] javascript.0 script.js.Test.test_1: fernseh: 0 21:25:02.390 [info] javascript.0 script.js.Test.test_1: Amphilight nachts über Smart TV aus 21:25:21.539 [info] javascript.0 script.js.Test.test_1: fernseh: 1 21:25:43.320 [info] javascript.0 script.js.Test.test_1: fernseh: 2 21:25:43.320 [info] javascript.0 script.js.Test.test_1: Amphilight nachts über Smart TV aus

398

Online

32.7k

Users

82.5k

Topics

1.3m

Posts