Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.6k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    J
    Hallo, anbei das nun fertige Skript im ersten Post.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    paul53P
    @tiobb [sagte]: kamen die Meldungen Für die Prüfung mehrerer Sensoren verwende besser eine Variable und nur einen Telegram-Block. Prinzip: [image: 1784882036727-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    961 13k
    961 Themen
    13k Beiträge
    Marc BergM
    Man kann einen Flow von außen neu starten, indem man ihn per API deaktiviert und wieder aktiviert. Nicht sehr elegant, aber geht. Hier ein Flow dazu, das könnte man auch im Skript abbilden (hostname und Flow-ID im Inject Node anpassen: [ { "id": "0101b52dd8b0e69c", "type": "inject", "z": "tab_restart", "name": "Flow neu starten", "props": [ { "p": "baseUrl", "v": "http://nuc.fritz.box:1880", "vt": "str" }, { "p": "flowId", "v": "56a35d28dbb8d4c1", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": "", "topic": "", "x": 160, "y": 140, "wires": [ [ "ffb73632947a1b74" ] ] }, { "id": "ffb73632947a1b74", "type": "http request", "z": "tab_restart", "name": "GET /flow/:id", "method": "GET", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 370, "y": 140, "wires": [ [ "78e47724692d9c26" ] ] }, { "id": "78e47724692d9c26", "type": "change", "z": "tab_restart", "name": "deaktivieren", "rules": [ { "t": "set", "p": "flow", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "flow.disabled", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "payload", "pt": "msg", "to": "flow", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{}", "tot": "json" }, { "t": "set", "p": "headers.content-type", "pt": "msg", "to": "application/json", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 570, "y": 140, "wires": [ [ "b570b346c80301a6" ] ] }, { "id": "b570b346c80301a6", "type": "http request", "z": "tab_restart", "name": "PUT (aus)", "method": "PUT", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 770, "y": 140, "wires": [ [ "a062c2baa0932d3e" ] ] }, { "id": "a062c2baa0932d3e", "type": "delay", "z": "tab_restart", "name": "1s warten", "pauseType": "delay", "timeout": "1", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "outputs": 1, "x": 960, "y": 140, "wires": [ [ "664a32887d83b305" ] ] }, { "id": "664a32887d83b305", "type": "change", "z": "tab_restart", "name": "aktivieren", "rules": [ { "t": "set", "p": "flow.disabled", "pt": "msg", "to": "false", "tot": "bool" }, { "t": "set", "p": "payload", "pt": "msg", "to": "flow", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{}", "tot": "json" }, { "t": "set", "p": "headers.content-type", "pt": "msg", "to": "application/json", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 140, "y": 220, "wires": [ [ "83d399c90d46240f" ] ] }, { "id": "83d399c90d46240f", "type": "http request", "z": "tab_restart", "name": "PUT (ein)", "method": "PUT", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 320, "y": 220, "wires": [ [ "529c0e1896d1f278" ] ] }, { "id": "529c0e1896d1f278", "type": "debug", "z": "tab_restart", "name": "Ergebnis", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 480, "y": 220, "wires": [] } ]
  • simple-ssh mehrere Befehle senden

    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    Marc_el_KM
    @oliverio sagte in simple-ssh mehrere Befehle senden: evtl andere reihenfolge? Ich habe das Problem, dass wenn ich zuerst den iobroker stoppe, dass dann keine Befehle mehr ankommen. Mir stellt sich nur noch die Frage, ob man eine Abfrage machen kann, dass der iobroker auch vollständig beendet wurde?
  • binde object funktioniert nicht

    5
    2
    0 Stimmen
    5 Beiträge
    583 Aufrufe
    M
    @codierknecht Danke das war mir so nicht klar - mit der Erklärung ist es logisch... Vielen Dank!
  • aus JSON(?) Temperaturen als Datenpunkt generieren

    5
    0 Stimmen
    5 Beiträge
    596 Aufrufe
    CodierknechtC
    @haus-automatisierung sagte in aus JSON(?) Temperaturen als Datenpunkt generieren: Du brauchst keinen zusätzlichen Adapter hierfür. Einfach das Objekt manuell anlegen und pflegen im Objekt-Tab. Also zumindest bei mir hat der Alias-Adapter nie das gemacht was ich wollte oder was ich erwartet hätte. Darum ist er gleich wieder rausgeflogen.
  • Zeitsteuerung alle 1,5 Std. Probleme

    3
    1
    0 Stimmen
    3 Beiträge
    215 Aufrufe
    paul53P
    @mico sagte: alle 1,5 Stunden Vorschlag: [image: 1705489383195-blockly_temp.jpg]
  • erkennen ob script, Adapter oder System neu gestartet wurde

    26
    0 Stimmen
    26 Beiträge
    2k Aufrufe
    jmeister79J
    Ich habs jetzt nur so überflogen: Ich schließe mich hier @paul53 an. Der Javascriptadapter startet erst wenn das System seine Umgebungsvariablen eingelesen hat. Alles andere wäre fatal. (EVA Prinzip) Ich sehe hier also nicht wirklich ein Problem. Meine ganzen Scripte sind so, dass sie alleine laufen können. Hast Du Abhängigkeiten der Scripte untereinander ist JS für dich die falsche Plattform, dann musst du entweder mit einer SPS arbeiten oder deine Scripte so umbauen, dass sie untereinander Kommunizieren mit Schnittstellen, das ist aber ein riesiger umbau und m.E. völlig unnötig, da die DP hier die Schnittstelle sind. Vorsicht: DP schreiben asynchron. Du musst also mit Triggern arbeiten wenn Du eine vernünftige Kommunikation haben willst. JS ist nicht Echtzeit.
  • Gleitender Durchschnitt, Min., Max. über def. Zeitraum

    Verschoben javascript
    113
    0 Stimmen
    113 Beiträge
    32k Aufrufe
    C
    @paul53 wie wo muss ich das erfassen... idee wäre zusätzlich
  • gelöst: Zugriff auf Datenpunkt / Objektattribute unklar

    3
    3
    0 Stimmen
    3 Beiträge
    339 Aufrufe
    B
    @paul53 Das wars...dankeschön.
  • Http Befehl Akuvox S539 Fehler

    8
    0 Stimmen
    8 Beiträge
    823 Aufrufe
    H
    @ralla66 Habe jetzt gerade mal getestet über Https, es geht beides. Einstellen oder Auswählen kann ich es jedoch nicht.
  • Blockly: Text durchsuchen, Suchstring, "besteht aus"

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    8k Aufrufe
    T
    oh man, selbst gefunden :) So gehts auch :) [image: 1705328997728-9ac4f1ac-612b-46e6-9f2b-cc001dd32b52-image.png]
  • Danfoss ally über deconz und externer Temperatursensor

    1
    1
    0 Stimmen
    1 Beiträge
    255 Aufrufe
    Niemand hat geantwortet
  • Button über Blockly steuern, aber wie?

    11
    1
    0 Stimmen
    11 Beiträge
    897 Aufrufe
    CodierknechtC
    @ronnyempire https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/4
  • Popup Message an FireTV

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    AlexAxelA
    @liv-in-sky genau den meinte ich
  • Blockly Schreibrechte Debian

    33
    0 Stimmen
    33 Beiträge
    4k Aufrufe
    A
    @thomas-braun Läuft! Danke
  • JS Script FTP Upload

    10
    1
    0 Stimmen
    10 Beiträge
    949 Aufrufe
    B
    @OliverIO Verstehe. Ich meine dann ob ich die andere Bibliothek auch im Adapter als zusätzliche Module eintragen muss. Habe ich so gemacht und es scheint alles zu passen. Danke.
  • mehrere Automatisierungssystem => Steuerung via MQTT

    13
    2
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    S
    @marc-berg richtig, da ohne Präfix EDIT: geändert ... und schon funktioniert es :-) :-) Vielen lieben Dank ! :-)
  • Script Konvertierung HSV <==> Hex

    javascript
    4
    3 Stimmen
    4 Beiträge
    1k Aufrufe
    T
    hi, sorry stehe momentan a bissl auf dem Schlauch: wie kann ich das Script nutzen/konfigurieren? Werden Datenpunkte angelegt? Grüße Thomas
  • console.log Hinweis

    9
    1 Stimmen
    9 Beiträge
    2k Aufrufe
    haus-automatisierungH
    @heidi02 Gab einige Issues zu Typings. Daher habe ich das mit 3 oder 4 anderen gefixt um das (hoffentlich) endlich mal gerade zu ziehen.
  • gelöst: json tabelle erstellen

    javascript
    8
    0 Stimmen
    8 Beiträge
    644 Aufrufe
    M
    @paul53 sagte in json tabelle erstellen: Den Monatswechsel abwarten. So lange kann ich nicht mehr warten. Hab mal ganz brutal alles ausgeklammert: const idZaehler = 'smartmeter.0.1-0:1_8_0__255.value'; const idJSON = '0_userdata.0.Haus.Energie.Strom_JSON'; var arr = JSON.parse(getState(idJSON).val); //schedule('50 59 23 * * *', function() { schedule("*/1 * * * *", function () { var txt = '💬 Neuer Zählerstand gespeichert für ' + formatDate((Date.now()), "MM.JJ"); WhatsAppBot([0], txt); //const tomorrow = Date.now() + 20000; //const tomorrow = Date.now(); //if (new Date(tomorrow).getDate() == 1) { const obj = { 'Monat/Jahr': formatDate(new Date(), 'MM/YYYY'), 'Zählerstand': getState(idZaehler).val }; arr.push(obj); //Anzahl Einträge verringern? setState(idJSON, JSON.stringify(arr), true); // } }); Das Ergebnis in den Objekten sieht wie erwartet aus: [{"Monat/Jahr":"01/2024","Zählerstand":3178.1119}] Das ganze dann in einer Tabelle: [image: 1704539573659-z%C3%A4hlerstand.png] Danke Paul
  • Frage für Mathematiker: Polynom dritten Grades - Koeffizient

    3
    0 Stimmen
    3 Beiträge
    388 Aufrufe
    paul53P
    @lalam sagte: So haut die Formel nicht hin. Es kommen utopische Werte raus... Wie sieht deine Formel in Javascript aus? So? const y = 4E-8 * x^3 - 9E-5 * x^2 + 0.0994 * x + 22.61;
  • KNX DTP 3.007 (Dimmer) nach Zigbee übersetzen

    4
    1
    0 Stimmen
    4 Beiträge
    365 Aufrufe
    paul53P
    @chribo sagte: Was Java angeht bin ich leider noch ein ziemlicher Anfänger. Javascript ist nicht Java. Besser Blockly? [image: 1704389091280-blockly_temp.jpg] EDIT: In Javascript: on('openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel', function(dp) { setState('zigbee.0.a4c13800ab3b2cdb.brightness_move', dp.state.val.decr_incr ? 20 * dp.state.val.data : -20 * dp.state.val.data); });

370

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge