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.
  • SayIt - Ausgabe bei MOTION

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    BluefoxB
    @paul53: @Bluefox: if (obj.newState.val === true || obj.newState.val === "true" || obj.newState.val === 1 || obj.newState.val === "1") ` Javascript macht doch implizite Typwandlungen. Genügt da nicht die Abfrage if (obj.newState.val) egal, welche von den 4 Varianten stimmt ? EDIT: Bei Zeichenketten funktioniert die implizite Typwandlung nicht, da nur leere Zeichenketten (Länge 0) ein false liefern. ` Richtig. Z.B. console.log(!"0") liefert false. Auch console.log(!"false"); liefert false.
  • [gelöst] Skript das Objekt erzeugen soll funktioniert nicht

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    3k Aufrufe
    C
    Hallo zusammen, danke BLuefox -> jetzt geht es. Ich hab es jetzt einfach einmal per Hand eingetragen. Das hat funktioniert und danach konnte ich es auch über das Auswahlmenü sehen. Auch eine weitere angelegte Variable war jetzt nahezu sofort sichtbar. Danke nochmal Gruß Dominic
  • [gelöst]Wie einen Timer einstellen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    S
    Klasse, vielen Dank. Das klappt prima!
  • OK Frage: for ( x in y) -> nur zwei von drei items

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    ruhr70R
    frei nach Bluefox: function main() { // ##### Scriptstart main() ##### } setTimeout(main, 500); // startet main() nach 500 ms
  • Sayit einbinden in vorhandenes Script

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    coyoteC
    Hi Pix, vielen Dank schon mal. Klar, das "true" ist natürlich nicht nötig, ist mir gar nicht aufgefallen. Das Script hatte mir Bluefox mal zusammengebaut, warum da "true" mit dabei war weiß ich jetzt auch nicht. Ok, das hier > de;75;Gutes Wetterand wusste ich schon, nur wusste ich nicht, wie ich das mit der Variable einbaue. Hast du mir ja jetzt gezeigt, danke. So: > "80;Vorsicht, der CO2 Gehalt liegt bei " + getState('hm-rega.0.1968').val Man, man da hätte ich auch selbst drauf kommen können mit den Farbwerten… :roll:
  • Kleines Script zum View wechsel…

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    3k Aufrufe
    S
    Hallo Pix, erstmal danke. Leider habe ich es noch nicht ganz verstanden. Ich habe das Widget jetzt in allen Views eingefügt außer auf meinem Hauptview. Das script habe ich ausgetauscht. Leider wechselt der keiner der Views automatisch zurück auf den Hauptview. Hab ich da irgendwas falsch verstanden? Gruß, Sebbo
  • Ereignisprotokoll

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Zählertsand per pushbullet verschicken

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    986 Aufrufe
    B
    Hallo, ersetzte var zaehler =hm-reg.0.6280; durch var zaehler = getState("hm-rega.0.6280").val;
  • Skript: Alle RHS/Fenster in einem Raum

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    5k Aufrufe
    F
    Das Skript läuft jetzt bei mir mit drei Räumen. Ich habe die val variable global gemacht, für jeden Raum einen Selector eingesetzt und drei on Funktion hinzugefügt. // Script zum Setzen einer Variablen, um z.B. eine kleines Übersichts-Icon/Widget // anzuzeigen. // Die Variable VIS.zeige_1og_fensterstatus_icon kann folgende Werte haben: // 0 - alle Fenster zu // 1 - mindestens 1 Fenster angekippt // 2 - mindestens 1 Fenster offen. // Es wird immer der höhere Wert über allen räumen gesetzt. // Im Widget muss unter der Sichtbarkeit die Variable > 0 abgefragt werden. // Es werden die Sensoren in drei Räumen abgefragt(rooms=xxx), so wie diese gesetzt sind und jweils mit // dem Gewerk (functions=xxx). var sensors_raum1 = $('channel[state.id=*.STATE](rooms=Bad)(functions=Alarmanlage)').each(function(id) { log("R1: " + id); }); var sensors_raum2 = $('channel[state.id=*.STATE](rooms=Wohnen1)(functions=Alarmanlage)').each(function(id) { log("R2: " + id); }); var sensors_raum3 = $('channel[state.id=*.STATE](rooms=Wohnen2)(functions=Alarmanlage)').each(function(id) { log("R3: " + id); }); var val; // Ohne Loginfo jedes erkannte Geräte: //var sensors = $('channel[state.id=*.STATE](rooms=Wohnen1)(functions=Alarmanlage)'); function getCurrentState() { var commonState = 0; sensors_raum3.each(function (id) { val = toInt(getState(id).val); // Find the maximum (2 - opened, 1 - tilted, 0 - closed) if (val > commonState) commonState = val; }); sensors_raum2.each(function (id) { val = toInt(getState(id).val); // Find the maximum (2 - opened, 1 - tilted, 0 - closed) if (val > commonState) commonState = val; }); sensors_raum1.each(function (id) { val = toInt(getState(id).val); // Find the maximum (2 - opened, 1 - tilted, 0 - closed) if (val > commonState) commonState = val; }); return commonState; } // On change Raum3 sensors_raum3.on(function() { setState('VIS.zeige_1og_fensterstatus_icon', getCurrentState()); }); // On change Raum2 sensors_raum2.on(function() { setState('VIS.zeige_1og_fensterstatus_icon', getCurrentState()); }); // On change Raum1 sensors_raum1.on(function() { setState('VIS.zeige_1og_fensterstatus_icon', getCurrentState()); }); createState("VIS.zeige_1og_fensterstatus_icon", getCurrentState(), {name: 'VIS Zeige 1Og Fensterstatus-Icon'}); Es funktioniert. Stellt sich mir nur die Frage, ob es vielleicht in der Abfrage optimiert werden kann oder ob die drei ON's in irgendeiner Form supoptimal sind? Viele Grüße, Fitti
  • Übersicht der verfügbaren JS-Funktionen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    F
    @pix: @Fitti: Viele Grüße, Pix Das ist mein Gruß! :lol: Jetzt ist es ganz zu spät…. ich ändere das mal. :lol: :oops:
  • Wechselrichter auslesen

    Verschoben
    12
    1
    0 Stimmen
    12 Beiträge
    6k Aufrufe
    K
    Guten morgen. Hat das zufällig schon mal jemand für eine SMA Webbox gemacht?
  • Zugriff auf Werte des history Adapters

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Tankstellenliste

    Verschoben
    1
    2
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • Fritzbox: DECT-Telefon als Fernbdienung

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    ruhr70R
    coole Idee! Danke für die Anregung. Wenn man kürzere Rufnummern verwenden möchte könnte man die interne Rufnummer einees analogen Ports oder einen SIP-Teilnehmer anmelden. Echt schöne Idee und gut durchgetestet ;-)
  • Doku javascript Adapter

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    paul53P
    In der 3. Zeile solltest Du noch 'name' durch 'type' ersetzen, denn 'name' ist ein Element von 'common'.
  • Objekt-ID aus Objektnamen ermitteln ?

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    4k Aufrufe
    paul53P
    @Bluefox: Was mache ich aber, falls man zwei States mit dem gleichen Namen habe? ` Den ersten gefundenen State nehmen, so wie HM Script. Noch besser: Einen Prüflauf implementieren, der auf mehrfache Vergabe von Namen testet.
  • Variable abfragen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    P
    @SchuetzeSchulz: Hat sich erledigt, hab es nun über eine Szene gelöst. Läuft super! ` Hui, da warst du selbst schneller. :D
  • Status erstellen

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    M
    rollo hoch: ` > createState('startPythonhoch'); on({id: "javascript.0.startPythonhoch"}, function (obj) { var python = require('child_process').spawn('python', ["/opt/hoch.py"]); python.on('close', function(code){ if (code !== 0) { log('Error: ' + code); } else { log('OK'); } }); }); ` rollo runter: ` > createState('startPythonrunter'); on({id: "javascript.0.startPythonrunter"}, function (obj) { var python = require('child_process').spawn('python', ["/opt/runter.py"]); python.on('close', function(code){ if (code !== 0) { log('Error: ' + code); } else { log('OK'); } }); }); `
  • (gelöst) Javascript switch case & vis

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    ruhr70R
    oje… habe mich selbst reingelegt. Ich lass den peinlichen Eintrag mal drin, falls noch jemand drüber stolpert. Im vis habe ich im Widget den String, der geschrieben werden soll in Anführungszeichen gesetzt. In Vis: "rot" Dann wird als String auch "rot" geschrieben, inkl. Anführungszeichen. der case würde dann '"rot'" lauten (einfache Anführungszeichen, normale Anführungszeichen, ...). Ist natürlich quatsch... In Vis: rot eintragen dann passt der case auch mit "rot"
  • Mehrere Aktoren abfragen

    Verschoben
    6
    3
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    BluefoxB
    Na ja.. Erste var pos = myIndexes.indexOf(obj.id); Habe ich übersehen. Gut, dass es läuft.

491

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge