Skip to content

Skripten / Logik

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

16.6k Topics 213.8k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    OliverIOO
    @BertDerKleine Am besten zeigst du mal dein Script, dann kann man bessere Empfehlungen abgeben. Bitte auch mal schreiben warum du aufteilen möchtest obwohl es so funktioniert.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    crunchipC
    @MartinP sagte in Wie füge ich hier drei weitere Felder ein -> roter Pfeil?: So, wie vorgeschlagen ist die Wahrscheinlichkeit gering, dass es klappt. dann solltest du nochmal die Frage lesen, niemand hat nach Empfänger gefragt, es geht lediglich darum zwei Zeilen hinzu zu fügen
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    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
  • Sayit einbinden in vorhandenes Script

    Moved
    3
    0 Votes
    3 Posts
    1k Views
    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…

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

    Moved
    1
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Zählertsand per pushbullet verschicken

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

    Moved
    11
    0 Votes
    11 Posts
    4k Views
    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

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

    Moved
    12
    1
    0 Votes
    12 Posts
    5k Views
    K
    Guten morgen. Hat das zufällig schon mal jemand für eine SMA Webbox gemacht?
  • Zugriff auf Werte des history Adapters

    Moved
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Tankstellenliste

    Moved
    1
    2
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Fritzbox: DECT-Telefon als Fernbdienung

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

    Moved
    3
    0 Votes
    3 Posts
    1k Views
    paul53P
    In der 3. Zeile solltest Du noch 'name' durch 'type' ersetzen, denn 'name' ist ein Element von 'common'.
  • Objekt-ID aus Objektnamen ermitteln ?

    Moved
    11
    0 Votes
    11 Posts
    4k Views
    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

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

    Moved
    8
    1
    0 Votes
    8 Posts
    2k Views
    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

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

    Moved
    6
    3
    0 Votes
    6 Posts
    2k Views
    BluefoxB
    Na ja.. Erste var pos = myIndexes.indexOf(obj.id); Habe ich übersehen. Gut, dass es läuft.
  • Anzeige wenn regen

    Moved
    2
    0 Votes
    2 Posts
    2k Views
    BluefoxB
    Was funktioniert nicht? Um deine Frage zu beantworten brauche ich ganzen Payload.
  • [gelöst] Miniscript läuft nicht (Anfänger bittet um Hilfe)

    Moved
    3
    0 Votes
    3 Posts
    1k Views
    coyoteC
    Danke Bluefox, funktioniert jetzt einwandfrei.
  • Skript Ende feststellen

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    P
    Es gibt da wohl eine Api, aber nur für Firmen nach Anmeldung und so weit ich weiß mit Schweigepflicht, auf jeden Fall nichts Öffentliches. Und auch damit ist es meiner Erkenntnis nach nicht möglich auf Harmony zu reagieren, sondern nur Harmony zu steuern. Bei IFTTT und smartthings taucht Harmony auch immer nur im "THEN" Teil auf, kann also nur gesteuert werden. Selbst innerhalb der Harmonywelt ist Steuerbarkeit von Dingen wie Hue usw. stark eingeschränkt. Man kann dann Lampen zusammen mit Aktivitäten schalten, nicht aber innerhalb einer Aktivität => Lampe an bei Pause drücken geht nicht! Überhaupt kann man keine Smart Home Funktionen auf die Tasten belegen. Logitech wäre mit dem Hub gerne die Zentrale für alles Smarte, unterstützt aber kaum Geräte und diese dann auch nur sehr schlecht. Für alles, was über das steuern von Infrarotgeräten hinaus geht ist das Ding nicht zu gebrauchen, wirklich schade. Könnte man die Tasten innerhalb der Geräte- oder Aktivitätsebene aulesen wäre das Teil die perfekte Alternative zu den Handsendern von Homematic und anderen Herstellern.
  • Zugriff auf andere ioBroker Objekte im Flow?

    Moved
    4
    0 Votes
    4 Posts
    2k Views
    ruhr70R
    Danke für die Info! Da hast Du in der Tat eine Lösung gefunden :)

489

Online

32.7k

Users

82.4k

Topics

1.3m

Posts