Skip to content

Skripten / Logik

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

16.6k Themen 213.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    OliverIOO
    @BertDerKleine Am besten zeigst du mal dein Script, dann kann man bessere Empfehlungen abgeben. Bitte auch mal schreiben warum du aufteilen möchtest obwohl es so funktioniert.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    KPTK
    Gibt es Erfahrungen, ob der Solarstream 800 Plus überhaupt per MQTT steuerbar ist?
  • 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
  • Text an Telegram senden

    3
    0 Stimmen
    3 Beiträge
    359 Aufrufe
    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 Stimmen
    12 Beiträge
    1k Aufrufe
    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 Stimmen
    7 Beiträge
    967 Aufrufe
    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 Stimmen
    4 Beiträge
    276 Aufrufe
    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 Stimmen
    17 Beiträge
    2k Aufrufe
    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 Stimmen
    8 Beiträge
    676 Aufrufe
    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 Stimmen
    2 Beiträge
    221 Aufrufe
    liv-in-skyL
    @tomtom58 hilft das ? unixzeit=javascriptzeit/1000
  • [gelöst] Mit der Switch MAC von Unifi Licht einschalten

    blockly javascript monitoring
    12
    1
    0 Stimmen
    12 Beiträge
    853 Aufrufe
    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 Stimmen
    3 Beiträge
    540 Aufrufe
    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 Stimmen
    14 Beiträge
    2k Aufrufe
    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 Stimmen
    9 Beiträge
    1k Aufrufe
    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

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    3k Aufrufe
    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 Stimmen
    17 Beiträge
    2k Aufrufe
    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 Stimmen
    5 Beiträge
    373 Aufrufe
    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 Stimmen
    1 Beiträge
    189 Aufrufe
    Niemand hat geantwortet
  • Parsen wenn http nicht existent

    javascript
    10
    0 Stimmen
    10 Beiträge
    673 Aufrufe
    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 Stimmen
    1 Beiträge
    125 Aufrufe
    Niemand hat geantwortet
  • Blockly steht nicht zur Auswahl

    blockly javascript
    5
    0 Stimmen
    5 Beiträge
    225 Aufrufe
    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 Stimmen
    19 Beiträge
    1k Aufrufe
    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.
  • Skripte durchsuchen und farblich markieren

    javascript blockly
    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    GlasfaserG
    Ich denke mal .... er hat es jetzt verstanden :grin:

303

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge