Skip to content

Skripten / Logik

16.6k Topics 214.3k Posts

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

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Topics
    49k Posts
    T
    @Chrunchy sagte: @paul53 sagte: @Chrunchy [sagte]: Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt. Wie kommst du darauf? Hatt das hier (https://forum.iobroker.net/topic/75919/createstate-deprecated) so verstanden. Das eine ist Adapterentwicklung das andere Javascript-Adapter - ich benutze in beiden "extendObject" - für nicht Adapterentwickler ist createStates() aber besser.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    HumidorH
    @paul53 Danke, du triggerst eine Funktion Alarm1, die selbstständig alle 5min ausgeführt wird, außer der Trigger stoppt diese. [image: 1775796578011-bildschirmfoto-2026-04-10-um-06.49.28.png]
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • Skripte werden nicht gefunden beim Auswählen in Skripten

    Moved
    15
    1
    0 Votes
    15 Posts
    1k Views
    S
    ok dann versuche ich mich an der empfohlenen Methode :)
  • Cron aus Skript neu starten

    Moved
    4
    0 Votes
    4 Posts
    396 Views
    CKMartensC
    Ich habe es jetzt mal mit einem Skript getestet. Der Shedule der bei Änderung des Zeitpunktes über einen Datenpunkt erstellt wird, wird zwar gestartet, aber der ursprüngliche Shedule bleibt bestehen und läuft weiter. Ich muss also mit clearSchedule den "alten" Schedule löschen.
  • Exec funktioniert in Blockly nicht [gelöst]

    Moved
    5
    0 Votes
    5 Posts
    3k Views
    J
    ok, ich nehme alles zurück… Es funktioniert wieder. Dennoch will ich hier keinen verarschen oder die Zeit stehlen und ich hätte mir nicht die Mühe gemacht hier ins Forum zu schreiben wenn es vorher nicht geklappt hätte. Ich muss gerade eben unbeabsichtigt etwas "richtig" gemacht haben. Habe vor ein paar Tagen alles (rasp und ibroker) neu aufgesetzt und alle Skripte wieder in den Java Adapter importiert. [image: 9043_hauptskript.jpg] siehe hauptskript -> WOL hat nicht mehr funktioniert -> also ein eigenes skript erstellt und nur das "Blockly exec" eingefügt: [image: 9043_blockly.jpg] hat ebenso nicht funktioniert das gleiche in Java erstellt: [image: 9043_java.jpg] -> hat funktioniert Jetzt funktioniert das Blockly auch wieder und das Hauptskript ebenso… Habe zuvor alles probiert. Zweiten Java Adapter installiert/Befehl über LXterminal ausgeführt ob da ein Fehler ist/ alle Adapter neugestartet/rasp rebootet/etc/ssh neu aktiviert...(bastle jetzt schon etwas länger an dem Zeug) (der exec Haken war gesetzt) KEINE AHNUNG was das jetzt war Mir ist aufgefallen wenn man "leere" Blockly Skripte (die ich oftmals als virtuellen Schalter nutze) nach dem neu aufsetzen importiere das das kein Blockly mehr sind sondern ein JAVA. -> Das hat zur Folge das ein anderes Skript das mit diesem Skript verknüpft ist nicht mehr auf das Skript reagiert, d.h. man muss das "Objekt" neu zuordnen obwohl sich nichts ändert -> danach funktioniert es wieder. Eventuell hing es damit zusammen. Das Hauptskript habe ich ja nicht verändert und es hat vorher schon einige Zeit problemlos funktioniert! Trotzdem Danke!
  • [Blockly] owntracks - Zone true oder false

    Moved
    2
    0 Votes
    2 Posts
    399 Views
    X
    Ich weiß zwar nicht direkt ob es eine Integration vom Owntracks Adapter zum Places Adapter gibt, aber ich persönlich nutze den Places Adapter für die Interpretation von Standortdaten, da der Adapter darauf ausgelegt ist aus diversten Quellen mit Daten gefüttert zu werden und selbst wenn sich die Datenquelle ändern sollte braucht man keine Scripts anzupassen. Der Places Adapter bietet die Datenpunkte als Boolean (true/false) für die definierten Zonen.
  • (gelöst) [Blockly] Lampe soll mitgeschaltet werden…

    Moved
    4
    2
    0 Votes
    4 Posts
    495 Views
    E
    Ha, vielen Dank, das hat geholfen, warum auch immer :D
  • Stromsparscript für Media

    Moved
    5
    0 Votes
    5 Posts
    275 Views
    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?

    Moved
    4
    0 Votes
    4 Posts
    459 Views
    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…

    Moved
    8
    0 Votes
    8 Posts
    624 Views
    1
    Ok, danke! MfG
  • Skript arbeitet obwohl gelöscht

    Moved
    3
    0 Votes
    3 Posts
    211 Views
    F
    Hallo Danke werde ich testen. Danke Fränki
  • Z.B. Xiaomi Cube - Werte an Datenpunkt

    Moved
    2
    2
    0 Votes
    2 Posts
    309 Views
    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

    Moved
    3
    0 Votes
    3 Posts
    271 Views
    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

    Moved
    14
    3
    1 Votes
    14 Posts
    25k Views
    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

    Moved
    3
    0 Votes
    3 Posts
    565 Views
    M
    Danke dir
  • Xml parsen die n-te

    Moved
    3
    0 Votes
    3 Posts
    660 Views
    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

    Moved
    1
    0 Votes
    1 Posts
    221 Views
    No one has replied
  • Cannot find module 'csv-parse'

    Moved
    14
    0 Votes
    14 Posts
    1k Views
    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?

    Moved
    5
    1
    0 Votes
    5 Posts
    611 Views
    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

    Moved
    6
    0 Votes
    6 Posts
    623 Views
    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

    Moved
    3
    0 Votes
    3 Posts
    446 Views
    M
    Kein Schwein ruft mich an, keine Sau interessiert sich für mich :) Push
  • Blockly Vorlagensammlung (?)

    Moved
    4
    1
    0 Votes
    4 Posts
    6k Views
    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 :)

585

Online

32.8k

Users

82.7k

Topics

1.3m

Posts