Skip to content

Skripten / Logik

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

16.6k Themen 213.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    crunchipC
    @RoddiEF ja genau, in der Variablen kommt deine IP des iobroker rein, das plugin infinity holt sich dann die Daten direkt durch den Rest-API Adapter ohne es extra in eine Datenbank zu schreiben. Was noch zu erwähnen ist (fehlt noch in der Beschreibung) durch das Setzen einer Host Variablen, muss der Host unter security in der datasource angegeben werden. In dem Fall einfach nur einen * Damit ist jeder Host gültig. Ich beschreibt das morgen mal etwas genauer
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    Murphy 0M
    Bei 19% hat das Blockly abgeschaltet. Seit 2 Tagen nicht kalibriert. [image: 1773614994393-img_3949-resized.png]
  • 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
  • Stromsparscript für Media

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    275 Aufrufe
    K
    siehste alles nicht so schwer, zumindest die einfach Sachen :D Bei mir heißt nur eine Steckdose Subwoofer ^^ ich habe keinen Broadlink. Das einzige bei dem ich mir nicht sicher bin ob du das stop timeout und timeout überhaupt brauchst. Eigentlich schaltest du ja deine Steckdose eh mit einer Zeitverzögerung.
  • Variable Zeitsteuerung?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    448 Aufrufe
    A
    Mit den Hinweisen in viewtopic.php?f=21&t=11060 scheine ich auch per Blockly zu meinem Ziel zu kommen.
  • If changed then if true…

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    621 Aufrufe
    1
    Ok, danke! MfG
  • Skript arbeitet obwohl gelöscht

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    211 Aufrufe
    F
    Hallo Danke werde ich testen. Danke Fränki
  • Z.B. Xiaomi Cube - Werte an Datenpunkt

    Verschoben
    2
    2
    0 Stimmen
    2 Beiträge
    305 Aufrufe
    C
    Es funktionieren jetzt alle Scripte… Ich musste den Javascript Adapter neu starten... Auf dem RPI3 habe ich 25% Ram frei. Kann es an so etwas liegen? Node 8.14.0 NPN 6.4.1
  • [gelöst] Klingelscript Problem mit Phantom JS

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    271 Aufrufe
    ChaotC
    :oops: :oops: Ich bin manchmal einfach blind. Mit dem richtigen Pfad /opt/iobroker/node_modules/iobroker.phantomjs/picture.png klappt das auch. Zur Vollständigkeit das komplette Klingelscript: ! ```` var sperre = false; ! on({id: 'sonoff.0.Eingang.POWER2', change: "any"}, function (obj) { if(!sperre) { sperre = true; sendTo('phantomjs.0', 'send', { url: 'http://192.168.XXX.XXX:8765/picture/2/current/?_username=admin&_signature=5xxxxxxxxxx65eeb8e3d5935741934ad', output: 'picture.png', // default value width: 800, // default value height: 600, // default value timeout: 2000, // default value zoom: 1, // default value ! 'clip-top': 0, // default value 'clip-left': 0, // default value 'clip-width': 800, // default value is equal to width 'clip-height': 600, // default value is equal to height 'scroll-top': 0, // default value 'scroll-left': 0, // default value ! online: true // default value }, function (result) { if (result.error) { console.error(JSON.stringify(result.error)); } if (result.stderr) { console.error(result.stderr); } if (result.stdout) { console.log(result.stdout); } console.log(result.output); }); timeout = setTimeout(function () { sendTo("email", "send", { text: '', to: 'XXXXXX@gmail.com', subject: 'Klingel', attachments:[ {path: '/opt/iobroker/node_modules/iobroker.phantomjs/picture.png', cid: "file1"}, ] }); }, 5000); setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); // oder //setState("vis.0.control.instance", 'FFFFFFFF'); //setState("vis.0.control.data", 'DemoView'); //setState("vis.0.control.command", 'changeView'); // muss immer letzte sein // Nach 10 Sekunden, zeige wieder Start View setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}'); }, 60000); setState("tr-064.0.states.ring"/*ring*/, '**611, 15'); sendTo("pushover", "send", { message: 'Klingel', file: "/opt/iobroker/node_modules/iobroker.phantomjs/picture.png", sound: "" }); timeout = setTimeout(function () { setState("alexa2.0.Echo-Devices.G2A0P30774060LLE.Player.volume"/*volume*/, 90, true); }, 500); timeout = setTimeout(function () { setState("alexa2.0.Echo-Devices.G2A0P30774060LLE.Commands.speak"/*speak*/, 'Es ist jemand an der Tür'); }, 1000); timeout = setTimeout(function () { setState("alexa2.0.Echo-Devices.G2A0P30774060LLE.Player.volume"/*volume*/, 50, true); }, 1500); setTimeout(function() { sperre = false; }, 5000); } });
  • Beispiel: aktuelles Datum formatieren und ausgeben

    Verschoben
    14
    3
    1 Stimmen
    14 Beiträge
    25k Aufrufe
    R
    Ja, ist erst ab der JSONata 1.6.4 implementiert. Und die wird noch nicht in NR genutzt. Liegt also nicht am ioBroker.NR. Hab mal ein Issues auf Github hinterlassen https://github.com/node-red/node-red/issues/2023 Soll wohl ab NR 0.20 erfolgen. Kannst es natürlich auf der JSONata-Seite testen: http://docs.jsonata.org/date-time-functions#frommillis
  • Telegram Menü Übersicht

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    565 Aufrufe
    M
    Danke dir
  • Xml parsen die n-te

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    650 Aufrufe
    M
    oder und das weiss ich jetzt nicht genau var xml_data='blablub deine xml daten'; var xml_obj = new DOMParser().parseFromString(xml, "text/xml"); und dann die daten über die Nodes und getElement… laden....
  • Vbus funktioniert nicht, auslesen nicht möglich

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    221 Aufrufe
    Niemand hat geantwortet
  • Cannot find module 'csv-parse'

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    T
    Noch jemand eine Idee, wie ich das csv-parse Modul eingebunden bekomme? Habe sogar schon den Javascript-Adapter neu installiert, sodass nun alles sauber ist. csv-parse ist nur noch unter folgenden Verzeichnissen zu finden: /opt/iobroker/node_modules/iobroker.javascript/node_modules/csv-parse /opt/iobroker/node_modules/iobroker.javascript/node_modules/csv-parse/samples/fs_read.csv Dennoch kommt folgender Fehler: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../csv-parse' Ich weiß nicht, was er da mit dem lib-Ordner machen will? Ich hoffe, einer weiß noch eine Lösung oder Versuche, die man noch machen könnte. :|
  • PHP Skript aus Ip-Symcon übernehmen? Wer kann mir helfen?

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    583 Aufrufe
    M
    Wenn du mir sagst was du vor hast, so das ich das verstehen kann, kann ich dir vielleicht helfen. Was willst du mit der Datei machen und wo sollen die Daten hin…. Das RegEx war ja schon fertig und von daher müsste ich jetzt wissen ob es in einem Intervall laufen soll oder ähnliches. Es ist schneller programmiert wenn ich sowas bekomme: Alle 5 Minuten: LogDatei letzte Zeile lesen 2 Beispiel Zeilen Daten auswerten und in ein Objekt speichern. Beispiel wie es nachher aussehen soll..... Ich kann mit normalen javascript nicht löschen ausser über exec und dann ist es systemabhängig ob rm oder del. Oder aber mit NodeJS und fs weiss aber nicht ob das dann überall läuft, mein nodejs server in iobroker ist auch sehr buggy Siehe: viewtopic.php?f=21&t=20296 Dann kann ich das auch umsetzen :)
  • Alle Geräte eines Ordner selektieren für eine for Schleife

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    605 Aufrufe
    M
    Damit das Script selber nicht blockiert es einfach in einen Timeout reinsetzen, und es wird ein separater Thread erstellt…. und der läuft dann parallel. durch das function return function werden eigene variablen erst..... setTimeout( (function(a_klemmen){ return function(){ // Kann auch funktionieren wenn das hier einzelnd ist..... aklemmen.each(function(a_id, a_i) { return function(){ var dsid = a_id.replace("My_Devices.0.Digitalstrom.Klemmen.", "") console.log(dsid); console.log(getState(a_id).val); try { console.log(SessionToken = ${sessiontoken}); request({url: https://${dssip}:${dssport}/json/device/getOutputValue?dsid=${dsid}&offset=0, headers: {Cookie: token=${sessiontoken}}}, function(error, response, body) { console.log(body); }); } catch (e) { console.error(e); } }})(id, i); // Bis hier } })(klemmen),200);
  • Jalousie Steuerung / Rolladensteuerung • Z-Wave

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    437 Aufrufe
    M
    Kein Schwein ruft mich an, keine Sau interessiert sich für mich :) Push
  • Blockly Vorlagensammlung (?)

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    6k Aufrufe
    P
    Hallo stephan2k, es gibt ein paar Skripte in der iobroker-Doku. Wenn ich dich richtig verstehe, möchtest du verschiedene Projekte in einem Thread sammeln. Das geht allerdings - nach meiner Erfahrung - schief. :( Erwartungsgemäß werden dann Fragen zum Projekt gestellt und beantwortet. Es wird im Thread praktisch weiterentwickelt. Das ist auch gut so. Wenn nun aber mehrere Projekte in einem Thread vorkommen, gibt es schnell Chaos. Manchmall klappt es aber dennoch ganz ordentlich: viewtopic.php?f=30&t=1860 Man kann die Forum-User nicht zwingen, aber ein Hinweis auf Ordnung geht immer: Neues Thema -> neuer Thread Allgemeinere Frage -> neuer Thread und bei bestehendem evtl. passenden Thread verlinken, um dort die Diskussion nicht zu stören In der Frage schon möglichst viele Suchbegriffe einbauen, damit man das später findet (in deinem Eröffnungspost fehlt da zB der Begriff "blockly"). Gruß Pix EDIT: Oh, paul war mal wieder schneller :)
  • Homematic sprechenden Name verwenden

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    252 Aufrufe
    M
    OK eric, hast recht, die Benamung kommt schon aus HM raus. Blöd, dass man dort jeden Channel einzeln benamen muss..
  • WRGB flackert

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    115 Aufrufe
    Niemand hat geantwortet
  • [JS] Readfile cached ?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    475 Aufrufe
    snadorS
    Hi, ich muss das Thema nochmal hochholen, denn auch ich habe den Effekt. Speichere ich eine JSON Datei im Adapter, dann wird diese korrekt in der Instanz abgelegt, also unter /iobroker-data/files/adaptername.0/. Ich kann mit readfile (aus der conn.js / wird z.B. im VIS Adapter verwendet) die JSON Datei auch lesen aber dann greift der Cache :-) Egal ob ich die Datei ändere / umbenenne oder sogar lösche - ich kann die Datei immer erfolgreich lesen. Nicht mal ein Adapter Neustart ändert das. Erst wenn ich ioBroker stoppe / starte bekomme ich beim lesen einen neuen State / Ergebnis. Hat jemand eine Idee? Ich weis nicht so recht wo ich weiter machen soll… Danke!
  • Installation Tradfri

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    455 Aufrufe
    R
    @Homoran: Und warum unter node red? ` Siehste, das hab ich gar nicht gesehen, weil ich immer die aktiven Themen durchgehe! :lol: Ich denke mal, dass du das zum richtigen Thema verschieben kannst, du weißt ja, wie das geht! :D Enrico
  • Datenübertragung mit SFTP

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    161 Aufrufe
    Niemand hat geantwortet

270

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge