Weiter zum Inhalt

Skripten / Logik

16.7k Themen 216.0k 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
    maxclaudiM
    @Murphy-0 sagte: @maxclaudi Habe dein zURLtool geladen und installiert. Die Freischaltung mit den von dir gesendeten Daten funzt perfekt. zURLtool funktioniert ! Vielen Dank für deine Arbeit !!! Hallo Murphy, vielen Dank für deine Rückmeldung und den erfolgreichen Testlauf. Viel Spaß beim Optimieren deines Scripts! edit/PS HINWEIS: Genau so ist es! Einfach entpacken, die config.ini kurz befüllen und Doppelklick auf die zURLtool_GUI.exe – Daten eingeben und durchstarten. Das Beste daran: Es muss nichts installiert werden. Weder Pakete noch irgendwelche zusätzlichen Bibliotheken. In der zURLtool_GUI.exe ist für Windows 11 bereits alles fix und fertig inkludiert. :-) Wenn das Programm einmalig freigeschaltet wurde, müssen beim nächsten Start keine Freischalt-Daten mehr eingegeben werden. Das Tool springt ab dem zweiten Start vollautomatisch direkt in die Haupt-Oberfläche.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    maxclaudiM
    weitere FirmwareBuilds für: 2026.07.23 nur auf Anfrage. Viel Spaß!
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO Danke für die Analyse und der grundsätzlichen Bestätigung, dass es eigentlich richtig ist und auch funktionieren sollte. Unterdessen ist es so, dass ich den wiederholzykluss auf 20min gestellt habe und zwischen jeder Anfrage 1 Minute warte. Zusätzlich habe ich ja die udev-Regel entfernt und das Portweiterleiten mit den Proxmox eigenen Mitteln gemacht. Es läuft nun seit 25h so, und Fehler mit keinem String ist noch 2x aufgetreten, hat sich unterdessen aber sogar selber gefixt und läuft seither ohne erkennbar Fehlermeldungen durch. Weil es ja so merkwürdig reagiert hat, habe ich den Pylontechadapter nochmals installiert und die neue Schnittstelle eingerichtet. Nach sehr langem warten wurde der Adapter sogar grün und er hat tatsächlich die BMS Infos rausgelesen, aber die Zelleninfos kamm nicht. Ich habe zwar keine Ahnung wie das Pytes BMS Tool das wirklich macht, aber ich habe den Eindruck, dass der Abfragezyklus nicht mehr als 1x pro Minute gestartet werden darf. Das Pytes Tool bringt alle infis eigentlich recht schnell. Bei meinem 12V System mit den DALI ist es so beschrieben, dass man nur 1x pro Minute Abfragen, kann weil der Prozessor sonst seine Aufgabe nicht machen kann. Aktuell läuft es und ich beobachte das sehr intensiv, weil ich der Sache noch nicht ganz traue.
  • [GELÖST]Variablen außerhalb einer Funktion?

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    blauholstenB
    Hi, das unterstreicht das, was du vorher erklärt hast. Danke
  • Radio nach Sayit Ausgabe auf Sonos wieder starten

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    P
    @coyote: Sporadisch kommt die Ansage bei mir auch doppelt, weiß nicht ob das evtl. am Adapter selbst liegt. ` Bitte mal den Adapter Sonos neu starten. Gruß, Pix
  • Hue mit 2 Taster schalten

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    coyoteC
    @blauholsten, klar zweimal "true" is natürlich quatsch, hab ich mich vertippt, war schon spät letzte Nacht. @bluefox, danke dir werde ich dann mal testen. Brauche wohl noch etwas bis ich das richtig hinbekomme mit javascript :roll:
  • Sayit: Variierende Ansagen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Heizungssteuerung zeitabhängig

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    blauholstenB
    Ich denke du hast isTimeInRange nicht als variable bzw Funktion deklarierte. Schau dir das an…http://forum.iobroker.de/viewtopic.php? ... imeinrange
  • $(selector).each(function(id, i) {}); abbrechen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    bentschikB
    Super, Danke!
  • [GELÖST]Datenpunkt und Funktion(FEHLER???)

    Verschoben
    7
    2
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    blauholstenB
    @paul53: Hast Du mal die Zeitstempel der beiden JS-Datenpunkte verglichen ? ` leider nein, habe vorhin alles neu gestartet und dann ging es komischerweise! Deine Veränderungen in der Switch-Anweisung machen sinn! Danke hierfür. Aber die Veränderung beim Aufruf (ON) klappt mit der "Standard" Variante nicht. Wenn ich von aussen den Modus wechsle, würde das im VIS nicht mehr passen. Ich habe es jetzt so gelöst, und es funktioniert endlich alles wie es soll! //*****************DATENPUNKTE*ERZEUGEN**************************************** createState('thermostate.stube.modus', ""); createState('thermostate.bad.modus', ""); createState('thermostate.küche.modus', ""); //*********************STUBE************************************************** function stube() { var a = getState("hm-rpc.0.MEQ0480054.2.CONTROL_MODE").val; switch(a) { case 0: setState("hm-rpc.0.MEQ0480054.2.MANU_MODE", 5.0); // Sollwert toLog(zeit + "->" + "Stube Manuell"); break; default: setState("hm-rpc.0.MEQ0480054.2.AUTO_MODE", true); toLog(zeit + "->" + "Stube Automatik"); } } //********************BAD***************************************************** function bad() { var b = getState("hm-rpc.0.MEQ0447885.4.CONTROL_MODE").val; switch(b) { case 0: setState("hm-rpc.0.MEQ0447885.4.MANU_MODE", 5.0); // Sollwert toLog(zeit + "->" + "Bad Manuell"); break; default: setState("hm-rpc.0.MEQ0447885.4.AUTO_MODE", true); toLog(zeit + "->" + "Bad Automatik"); } } //********************KÜCHE**************************************************** function kueche() { var c = getState("hm-rpc.0.MEQ0447899.4.CONTROL_MODE").val; switch(c) { case 0: setState("hm-rpc.0.MEQ0447899.4.MANU_MODE", 5.0); // Sollwert toLog(zeit + "->" + "Küche Manuell"); break; default: setState("hm-rpc.0.MEQ0447899.4.AUTO_MODE", true); toLog(zeit + "->" + "Küche Automatik"); } } //********************AUFRUFE************************************************** on({id: "javascript.0.thermostate.stube.modus", "val": "stubem"}, function() { stube(); }); on({id: "javascript.0.thermostate.stube.modus", "val": "stubea"}, function() { stube(); }); on({id: "javascript.0.thermostate.bad.modus", "val": "badm"}, function() { bad(); }); on({id: "javascript.0.thermostate.bad.modus", "val": "bada"}, function() { bad(); }); on({id: "javascript.0.thermostate.küche.modus", "val": "küchea"}, function() { kueche(); }); on({id: "javascript.0.thermostate.küche.modus", "val": "küchem"}, function() { kueche(); }); In dem Script könnte man in den Case Anweisung mit "case 3:" nun noch die Boost-Funktion der Thermostate realisieren. Danke für die Hilfe.
  • Skript um bei view in Widget den view zu wechseln

    Verschoben
    24
    0 Stimmen
    24 Beiträge
    9k Aufrufe
    BluefoxB
    @Communicate: Danke! Es funktioniert wieder einwandfrei. Für die Zukunft: Helfen Dir solche "Debug-Versuche" oder ist das eher vergebene Liebesmühe? Gruß Dominic ` Auf jeden Fall. Da war mir fast sofort klar, was nicht in Ordnung war. :D
  • IoBroker Input

    Verschoben
    5
    3
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    E
    okay, der Umweg ist zwar nachvollziehbar aber die Umsetzung bekomme ich nicht ganz hin. javascript.0.nodeStarted manuell erstellt Wenn ich aber aus Nodered heraus versuche diese dann zu setzten wird ein Objekt unterhalb von nodered.0 angelegt, also nodered.0/javascript/0/nodeStarted. Daran soll es aber erstmal nicht scheitern Wie kann das Script denn auf diese Variable hören?? Aktuell ist das Script per cron getriggert via schedule einer Funktion. Das würde dann ja wegfallen und nur noch durch den flow ausgeführt werden.
  • JavaScript: http/rawSocket

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    H
    @Bluefox: Danke für deine Antwort. Ich wollte es als Adapter mit node.js machen. Nach einer Programmier-Nacht habe ich es selbst rausgefunden. Für alle, die vielleicht das gleiche Problem haben: var net = require('net'); var client = new net.Socket(); client.connect(PORT, HOST, function() {...} var buf2=new Buffer([0x13, 0x0, 0xc8, 0x80, 0x0]); client.write(buf2); Hiermit wird ein byte-Array ohne weiteren Overhead an einen TCP-Server gesendet. Tobias
  • Webseite/HTML parsen

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    E
    Mache es jetzt via indexOf und split per Funktion das klappt ganz gut.
  • Erste Gehversuche

    Verschoben
    3
    2
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    E
    Hi Pix, vielen Dank für Deine Antwort. Werde mich in Zukunft dran halten. Merke jetzt schon mehrere Sachen in einen Thread zu diskutieren macht es sehr unübersichtlich. Das Zuordnen des Topics in der vorherigen Function habe ich noch nicht ganz verstanden. [image: 235_2015-10-01_15h24_39.png] Also würde ich hier im ioBroker output node das Topic raus nehmen und in der Function so etwas einbringen (?): [image: 235_2015-10-01_15h26_47.png] Hier das kleine Function Node für die URL: `url = {}; monat = {}; jahr = {}; var dt = new Date(msg.timestamp); jahr.payload = dt.getFullYear(); monat.payload = dt.getMonth()+1; url.payload = "http://www.awg-wuppertal.de/web/awg.php?sid=333&jahr_von="+dt.getFullYear()+"&buchstabe=S&strasse=%20&hausnummer=&monat_von=13&jahr_von="+dt.getFullYear()+"&darstellung=liste"; return [url];` Sobald ich dies dann an http request gebe (also verbinde) erhalte ich im Log [msg] : string No url specified Mir fehlt wahrscheinlich einfach nur die grundlegende Kenntnis wie und in welcher Form in Node-RED die In- und Outputs zu definieren sind. Learning by doing quasi :-) EDIT: msg.url als Rückgabewert und schon klappt es. *g[/url]
  • Countdown täglich zur selben Zeit für 30 Minuten

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    derAugeD
    Super Werde ich nachher testen Der Start heute mittag hatte nicht funktioniert. Bis später Gesendet von meinem BLOOM mit Tapatalk
  • Erste Gehversuche: Mit HM-PB-2-WM55-2 Sonos Wiedergabe start

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    5k Aufrufe
    P
    Hallo Jürgen,@derAuge: macht es sinn die SONOS per variable einzutragen. Dann kann man den Script schneller für weitere SONOS nutzen ` das muss jeder selbst wissen. Nach meiner Erfahrung sind Skripte mit vielen Ersetzungen und Kurzschreibweisen schwer zu verstehen, wenn man a) Anfänger oder b) lange aus dem Thema ist. So ein Skript für einen 6fach Taster schreibe ich ja nicht jeden Tag. Wenn ich mir in einigen Monaten / Jahren noch einen Taster anschaffe, dann kann ich das bestehen de einfach kopieren. Es kommt nicht auf die 15min an, die es dauert, die genauen Datenpunktbezeichnungen zu ändern. Die Geschwindigkeit ändert sich bei so einem kurzen Skript sicher nicht. Ich würde das vorher bei den Homematic Datenpunkten machen: Du kannst aber oben im Skript Variablen definieren, die das Ansprechen des Tasters vereinfachen (zB auch, wenn der Taster mal defekt ausgetauscht wird und eine neue Seriennummer hat). zum Beispiel so: var idMitteLinksKurz = "hm-rpc.0.MEQ0027317.3.PRESS_SHORT", idMitteLinksLang = "hm-rpc.0.MEQ0027317.3.PRESS_LONG", idMitteRechtsKurz = "hm-rpc.0.MEQ0027317.4.PRESS_SHORT", idMitteRechtsLang = "hm-rpc.0.MEQ0027317.4.PRESS_LONG", idUntenLinksKurz = ... Gruß, Pix 355_9d1368fd-62a1-49e0-9c29-0e5a8beb4227.jpeg 355_1e53d405-040e-4641-ba7b-ccf13c1819c2.jpeg
  • SetState Acknowledge

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    BluefoxB
    Man kann nicht nur ack setzten. Da musst du val noch mal rein schreiben.
  • [gelöst]Erstmaliges Schreiben eines Objektes

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    H
    Vielen Dank ich hatte erwartet, dass das Objekt 'res' existiert, aber 'res.val' den Wert 'null' hat Tobias
  • Gelöst: Verzögerungszeit bei der Ausführung von Anweisungen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    R
    @Bluefox: Und das konnte man dann so umschreiben: ` … und hätte es dann (zumindest für mich) auch gleich noch lesbarer und verständlicher, soweit es die "Verwandschaft" zwischen setState und setStateDelayed betrifft. Mann dankt - Ralf
  • Network OWL mit Script einlesen

    Verschoben
    6
    2
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    P
    Hallo, hab Ihr OWL-Besitzer auch neuerdings das Problem, dass der json String nicht mehr die Channels liefert und nach dem Batterie-Wert endet? {"id":"44XXXXXXXXXXXXX","signal":{"rssi":"-78","lqi":"77"},"battery":"100%","channels":{"2":null}} Scheinbar wird das notwendige Modul owlintuiion nicht mehr gefunden. 2015-09-25 19:50:31.276 - error: javascript.2 script.js.OWL: Cannot find module '/Users/pix/Documents/iobroker/node_modules/iobroker.javascript/node_modules/owlintuition' at script.js.OWL:80:11 2015-09-25 19:50:31.282 - error: javascript.2 script.js.OWL: TypeError: undefined is not a function Es lässt sich aber auch nicht nachinstallieren 2015-09-25 19:50:26.034 - error: javascript.2 npm ERR! System Darwin 14.4.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "owlintuition" "--production" "--prefix" "/Users/pix/Documents/iobroker/node_modules/iobroker.javascript" ! ```` sudo npm install owlintuition --production --prefix /Users/pix/Documents/iobroker/node_modules/iobroker.javascript Password: npm WARN package.json util@0.10.3 util is also the name of a node core module. npm WARN engine hoek@2.16.3: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) / iconv@2.1.11 install /Users/pix/Documents/iobroker/node_modules/iobroker.javascript/node_modules/owlintuition/node_modules/xml2json/node_modules/node-expat/node_modules/iconv node-gyp rebuild ! Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. ! Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. ! gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 69 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23) gyp ERR! stack at ChildProcess.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:810:12) gyp ERR! System Darwin 14.4.0 gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /Users/pix/Documents/iobroker/node_modules/iobroker.javascript/node_modules/owlintuition/node_modules/xml2json/node_modules/node-expat/node_modules/iconv gyp ERR! node -v v0.10.33 gyp ERR! node-gyp -v v1.0.1 gyp ERR! not ok ! npm ERR! iconv@2.1.11 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the iconv@2.1.11 install script. npm ERR! This is most likely a problem with the iconv package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get their info via: npm ERR! npm owner ls iconv npm ERR! There is likely additional logging output above. npm ERR! System Darwin 14.4.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "owlintuition" "--production" "--prefix" "/Users/pix/Documents/iobroker/node_modules/iobroker.javascript" npm ERR! cwd /Users/pix/Documents/iobroker npm ERR! node -v v0.10.33 npm ERR! npm -v 1.4.28 npm ERR! code ELIFECYCLE npm ERR! not ok code 0 Gruß, Pix
  • Fragen zu Unterputzschalter HM-PB-2-FM

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    H
    O.K. ich probier es einfach mal mit true und sorry dass man fa so wenig erkennen kann. Gelobe Besserung :-) Gesendet von meinem GT-I9505 mit Tapatalk
  • Subscribe/on Optimierung

    Verschoben
    7
    1
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    F
    @paul53: Nicht ganz., sondern: … ` Danke. Werde das heute Abend mal ausprobieren. [image: zwinkernde-smilies-0022.gif]~~![](</s><URL url=)<link_text text="http://www.smiliesuche.de/smileys/zwink ... s-0022.gif">http://www.smiliesuche.de/smileys/zwinkernde/zwinkernde-smilies-0022.gif</link_text>" /> Fitti~~

472

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge