Skip to content

Skripten / Logik

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

16.6k Topics 214.0k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    RoddiEFR
    Ok dann warte ich lieber und fang eine frische Installation an wenn die neue Version fertig ist. Wäre es möglich beim aktuallisieren vom ersten Beitrag auch die Versionsnummern zu ändern wie schon jemand Vorgeschlagen hatte? Das macht das es einfacher wenn Änderungen anliegen. Thx
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    Murphy 0M
    @berny-k Der bypassMode sollte dann so gestellt sein dass die Module weiter produzieren und die Energie ins Haus geben. Probiere das so zu machen. Sicherung würde ich vorher machen 😉
  • 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
  • Dynamische Object ID möglich?

    blockly javascript
    5
    1
    0 Votes
    5 Posts
    1k Views
    S
    Sorry, das ich das alte Thema nochmal hervor hole. Im Zuge des 'textCommand'-Features des aktuellen Alexa2-Adapters (3.5.0) habe ich auf Basis der Vorschläge das nachfolgende Skript erstellt. Der grundsätzliche Ablauf des Skriptes funktioniert und kann mit allen Echo Shows bei uns genutzt werden. Allerdings wird das 'serialNumber'-Object während das Skript läuft mehrfach aktualisiert, sodass der gesamte Skript mehrfach getriggert wird und somit in Schleife läuft. Wie kann ich das verhindern? [image: 1610567115786-8538af05-24cd-4841-9fad-c7b2d886c7e8-image.png]
  • Text an Telegram senden

    3
    0 Votes
    3 Posts
    363 Views
    B
    @unclesam Vielen Dank für deine Rückantwort. Wenn ich den Code richtig intepretiere, dann wird die Nachricht mit dem Beispielcode zerstückelt in User und Nachricht. Das ist soweit auch was ich benötige - aber trotzallem sendet Telegram die Nachricht "Ich verstehe "..." nicht". Er "Telegram" soll aber auf jede Nachricht - mit Bsp. "OK, hab ich registriert!" antworten. Den extrahierten Text - möchte ich dann für meine "Pinwand" nutzen. Gruß
  • Blocky schaltet Tasmoto Steckdose nicht

    blockly javascript
    12
    3
    0 Votes
    12 Posts
    1k Views
    S
    Hallo zusammen nochmals, habe den Fehler zwischenzeitlich gefunden mein Full Tablet Control sendet nicht immer zuverlässig die Batteriewerte ab und zu sind ausetzter dann fängt das Skript an zu spinnen. Das Skript kann ich mittlerweile ausschließen. Die Verbindungsfehler muß ich nochmals überprüfen. Habe beide jetzt am laufen einmal Tablet Control und einmal Fully Browser. Danke nochmals . Bis dann Grüße
  • Curl einbinden? json danach abfragen

    javascript
    7
    0 Votes
    7 Posts
    978 Views
    B
    @unclesam ich habe die halbe Nacht gesucht und gemacht. Leider ohne Erfolg... dies wäre mein Ergebnis mit dem Log: const response: any = await axios.post(http://api.apsystemsema.com:8073/apsema/v1/ecu/getPowerInfo -d ecuId=<xxx> -d filter=power -d date=<date> -o <date>.json, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); const fs = require('fs'); // usage: node json2csv <file.json>, so filename is 3rd parameter let filename = process.argv[2]; // read and parse input JSON file let contents = fs.readFileSync(filename, 'utf8'); let data = JSON.parse(contents); let timestamps = JSON.parse(data.data.time); let values = JSON.parse(data.data.power); // iterate through two arrays and combine the i'th element of each into one CSV line for(let i = 0; i < timestamps.length; i++) { console.log(`"${timestamps[i]}","${values[i]}"`); } javascript.0 2021-01-12 08:22:54.566 error (758) at processTicksAndRejections (internal/process/task_queues.js:97:5) javascript.0 2021-01-12 08:22:54.566 error (758) at runMicrotasks (<anonymous>) javascript.0 2021-01-12 08:22:54.565 error (758) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49 javascript.0 2021-01-12 08:22:54.564 error (758) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2021-01-12 08:22:54.564 error (758) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17 javascript.0 2021-01-12 08:22:54.564 error (758) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1140:17 javascript.0 2021-01-12 08:22:54.563 error (758) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1559:17 javascript.0 2021-01-12 08:22:54.563 error (758) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1503:37) javascript.0 2021-01-12 08:22:54.563 error (758) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1280:28) javascript.0 2021-01-12 08:22:54.562 error (758) at Object.createScript (vm.js:261:10) javascript.0 2021-01-12 08:22:54.562 error (758) at new Script (vm.js:88:7) javascript.0 2021-01-12 08:22:54.562 error (758) SyntaxError: Missing initializer in const declaration javascript.0 2021-01-12 08:22:54.561 error (758) ^^^^^^^^ javascript.0 2021-01-12 08:22:54.561 error (758) const response: any = await axios.post(http://api.apsystemsema.com:8073/apsema/v1/ecu/getPowerInfo -d ecuId=<216000043804> -d filter=power -d date=<date> -o <date>.json, { javascript.0 2021-01-12 08:22:54.560 error at script.js.common.APSystem:1 javascript.0 2021-01-12 08:22:54.560 error (758) script.js.common.APSystem compile failed:
  • ARTNET DMX Script "...has an invalid value (int)"

    javascript
    4
    0 Votes
    4 Posts
    280 Views
    Q
    @paul53 Das Script funktioniert dank deiner Hilfe jetzt wie es soll und ich kann für jeden Farbkanal einen Wert von 0-255 vergeben. [image: 1610471748148-058fb632-3c3d-4868-9cad-f82432c59d11-image-resized.png] Was allerdings noch fehlt ist die Möglichkeit für z.B. die Kanäle 1-4, oder 5-8 (RGBW) einen Hex Wert angeben zu können, damit man Mischfarben darstellen kann bzw. mit Colorpicker Widgets, welche nahezu alle die Eingabe eines Hexwerts brauchen eine beliebige Farbe direkt anwählen zu können. Es müsste also folgende Möglichkeiten im Script geben: Kanalgruppen angeben z.B. 1-4 oder 9-12 je nachdem ob RGBW oder RGB für diese Kanalgruppen müsste dann ein zusätzlicher Datenpunkt angelegt werden, welcher dann die einzelnen RGB(W) Werte in einen Hexwert umrechnet und vice versa, also ein eingebauter Konverter wie z.B. hier https://ncalculators.com/digital-computation/rgb-to-hex-converter.htm Ähnlich wie beim artnet Adapter... der funktioniert allerdings leider nicht so gut, stabil und flüssig wie das Script [image: 1610471851273-8ad85db2-83b6-4bb0-adf0-f6ec29c5ff60-image-resized.png] Leider ist der Macher des Scripts seit mehreren Jahren im Forum nicht mehr aktiv. Lässt sich diese Funktionalität im Script entsprechend erweitern und falls ja, könntest du das eventuell machen ? Beste Grüße
  • Warnmeldung im Javascript/Blockly

    javascript blockly
    17
    0 Votes
    17 Posts
    2k Views
    D
    So kurz nach dem Test war Ende. Hab ein Update auf den JS-Skript Adapter gemacht und dass war es dann. Broker Tot. Kann den Broker.js nicht mehr finden ... komplettes Verzeichnis in dem die Datei sein soll ist leer... :confused: Bisher rund 4 Versuche ihn neu aufzusetzen sind fehl geschlagen, aber ich bleibe dran... Hab ja im Moment genug Zeit...
  • Werte on Objekten aktualisieren sich nicht

    javascript communication
    8
    0 Votes
    8 Posts
    677 Views
    C
    @paul53 Beten Dank für deine Rückmeldung und Hilfe, ist eine super Sache! Ich wünsche dir einen schönen Abend Gruss Chucky
  • Zeit im IP-Netz - Geburtsstunde eines Devices

    javascript monitoring blockly
    2
    0 Votes
    2 Posts
    226 Views
    liv-in-skyL
    @tomtom58 hilft das ? unixzeit=javascriptzeit/1000
  • 0 Votes
    12 Posts
    881 Views
    Bahadir ErgüllüB
    Anbei die fertige Version [image: 1610293586888-19ef0e46-d1dd-4119-8572-a6d6e5f12acd-image.png] <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="Rz/e+S[ZC(=g1B_{lnTP" x="-412" y="-512"> <field name="OID">unifi.0.default.clients.a4:50:46:75:3a:b7.sw_mac</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="fVgwL6#dsMO1#olcFhk%"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="?$U9dz)Q@v6tm.@h.pJZ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="ffA!EVHMW/8LKtd!,h|A"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="#yF[Nu;l-KhikS|Bgv=^"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="s{{sepW3U`dzGbPbz{zw"> <field name="TEXT">74:ac:b9:19:8a:96</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="H_6?e)vc5|v:Y.4?Y}Z|"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="-(LaRz7+uY./1W5r5rc~"> <field name="ATTR">val</field> <field name="OID">unifi.0.default.clients.a4:50:46:75:3a:b7.is_online</field> </block> </value> <value name="B"> <block type="logic_boolean" id="bG8Lbf-W1FPG1qQ23Tt@"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="}SXgVo:3/o!9Z+!0UKcN"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="~IZ%o(H=BskfK|GH.P=/"> <field name="TEXT">Baha Büro Licht an</field> </shadow> </value> <next> <block type="control" id="3~x1V[=ava+w1Y;ZL:wM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">knx.0.EG_Etage_.Licht_.Büro_Chef_Licht_an_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="8lo;ZPPK2ug-_sHr{~Ty"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="JzGDGF^}Bn@|}D:8uf[F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">knx.0.EG_Etage_.Licht_.Büro_Chef_Licht_an_aus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="e~:jj*/~KxCt16Njv+9y"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="!:iLM3It!ue_*ExYe:Lu"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="_;kz]FGPc7^@zA6kApoO"> <field name="TEXT">Baha Büro Licht aus</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
  • Sonoff Bridge mit Portisch flashen

    heating
    3
    1
    0 Votes
    3 Posts
    543 Views
    M
    gerade erat gesehen.... bitte als Gerät die bridge vorher einstellen und nicht auf Standard stehen lassen.
  • KNX Zeit auf Bus senden

    blockly
    14
    3
    0 Votes
    14 Posts
    2k Views
    G
    @ChefSache hab das alles mal so gemacht keine Veränderung außer das er jetzt auf jeden MDT Glastaster 00:00 schreibt. hier mal der Log [image: 1610272363239-2021-01-10_10h51_12.png]
  • [Gelöst]Homematic IP Alarm mit An-und Abwesenheit steuern

    blockly
    9
    1
    0 Votes
    9 Posts
    2k Views
    Dr. BakteriusD
    @KingStylesDE sagte in [Gelöst]Homematic IP Alarm mit An-und Abwesenheit steuern: Schön wenn es jetzt funktioniert. Wenn jetzt ein handy raus geht, deaktiviert sich der alarm. Er soll sich aber aktivieren wenn BEIDE raus sind. Das verstehe ich aber nicht. Wenn beide nicht zuhause sind, soll sich die Anlage aktivieren und wenn einer nachhause kommt, deaktivieren. Oder habe ich das falsch verstanden und sie ist (auch) aktiv wenn ihr zuhause seid? Übrigens verwendest du unnötigerweise zwei 'falls'-Blöcke. Es würde reichen einen (wie oben gezeigt) zu verwenden und die 'sonst'-Funktion zu verwenden. Ansonst arbeitet deine Lösung genau wie meine. Warum du da andere Ergebnisse erzielt hast ist mir ein Rätsel. Außerdem schaltest du den Datenpunkt um. Sollte der aus irgendeinem Grund mal falsch stehen, wird er dann immer falsch gesetzt.
  • *GELÖST* HSV to RGB Script Frage/ Hilfe

    Moved
    10
    0 Votes
    10 Posts
    3k Views
    M
    @rom-wagner80 Math.Round(); würde ich sagen oder .Ceil() zum aufrunden oder .floor() zum abrunden
  • Dateiupload auf ext Server per SFTP

    javascript
    17
    0 Votes
    17 Posts
    2k Views
    UncleSamU
    @holgerwolf Dann bleibt dir wohl nur ein Batch mit allen Befehlen auf deinem System anzulegen und die -b Option zu verwenden: z.B. hier https://unix.stackexchange.com/a/105868
  • Wie kann ich Benachrichtigung ausschalten

    javascript blockly
    5
    3
    0 Votes
    5 Posts
    374 Views
    A
    @crunchip Danke für Deine Unterstützung.:blush: Wieder etwas gelernt.:+1: Dann entfällt ja auch der "falls mache" Block! Freundliche Grüße Michael
  • Text schreiben und in VIS übergeben

    blockly
    1
    1
    0 Votes
    1 Posts
    189 Views
    No one has replied
  • Parsen wenn http nicht existent

    javascript
    10
    0 Votes
    10 Posts
    674 Views
    I
    @OliverIO Fehler finde ich immer blöd. So oder so. Ich bin mir nun mal nicht ganz sicher, ob sich dieser "Fehler" nicht wo anders bemerkbar macht. Immerhin versucht der Parser die Adresse aufzurufen. Klar habe ich noch andere "Warnungen". Da versuche ich erst mal selber dahinter zu kommen was sie bedeuten und wie ich sie am besten weg bekomme...
  • Textbausteine aus .exe Datei auslesen & verarbeiten

    communication javascript
    1
    0 Votes
    1 Posts
    125 Views
    No one has replied
  • Blockly steht nicht zur Auswahl

    blockly javascript
    5
    0 Votes
    5 Posts
    225 Views
    crunchipC
    @SoulX sagte in Blockly steht nicht zur Auswahl: js-controller: ? oben links auf das Dreieck, im Reiter Hosts anwählen, dieser zeigt dir deinen Js-Controller an
  • Parsen EUR/CHF

    javascript
    19
    0 Votes
    19 Posts
    1k Views
    HomoranH
    @UncleSam sagte in Parsen EUR/CHF: @Homoran Wahrscheinlich war auf der Website noch irgendwo sonst ein "CHF" auf derselben Zeile wie ein Zahlenwert. Ich habe einfach noch ein "eindeutigeres" Merkmal davor gesetzt, damit es "eindeutiger" ist. Das ist möglich, aber auf regex101.com finden unsere beiden RegEx exakt den gleichen Match.

385

Online

32.7k

Users

82.5k

Topics

1.3m

Posts