Skip to content

Skripten / Logik

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

16.4k Themen 211.6k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    S
    @Mabbi mega... 💪🏼
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    tiobbT
    @Asgothian sagte in Hilfe bei Blockly: meine Fragen beantwortet Konnte nicht mehr alles beantworten, da nach dem Update nichts mehr ging. Reconfigure hatte keine Änderung gebracht. @Asgothian sagte in Hilfe bei Blockly: die Warnhinweise zum Update beachtet, die kommen wenn du die neue Version installierst eher missachtet 😭 @Asgothian sagte in Hilfe bei Blockly: die Dokumentation zur neuen Version gelesen. ne, in der Hoffnung das alles klappt. alte Version @Asgothian sagte in Hilfe bei Blockly: von wo hast du wie installiert ? direkt über die Adapter im iobroker @Asgothian sagte in Hilfe bei Blockly: Welche Version hattest du vorher ? irgendwas mit 2**** [image: 1763639977820-opera-momentaufnahme_2025-11-20_125912_192.168.178.75.png]
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • 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
    975 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
    812 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
    4k 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
    5k 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
    2k 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.

628

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge