Skip to content

Skripten / Logik

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

16.5k Themen 213.2k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    P
    Das einfachste wäre doch, den Server vorher anzupingen.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    K
    Hallo, wollt mich nur nochmal schnell zurückmelden - es funktioniert jetzt! Vielen Dank an alle für eure Unterstützung! :) Mfg Marcus
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • 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.
  • Anzeige wenn regen

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    BluefoxB
    Was funktioniert nicht? Um deine Frage zu beantworten brauche ich ganzen Payload.
  • [gelöst] Miniscript läuft nicht (Anfänger bittet um Hilfe)

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    coyoteC
    Danke Bluefox, funktioniert jetzt einwandfrei.
  • Skript Ende feststellen

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    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?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    ruhr70R
    Danke für die Info! Da hast Du in der Tat eine Lösung gefunden :)
  • ClearTimeout auf Var Object möglich?

    Verschoben
    5
    2
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    ruhr70R
    Script ist umgebaut und funktioniert nun wie gewünscht. Die Erkenntnisse: ein setTimeout() kann mehrmals hintereinander gestartet werden. Alle Abläufe werden abgearbeitet ein clearTimeout() löscht nur den letzten Ablauf. Alle anderen mehrmals gestarteten Aufrufe werden noch abgearbeitet. Wenn man setTimeout() komplett stoppen will, darf man es nicht mehrmals aufrufen, sondern muss die Einträge aus einer Queue nacheinander abarbeiten. 3467_aktueller_status.png 3467_fehler_status.png
  • On(pattern, callbackOrId, value) -> Rückgabe: obj

    Verschoben
    22
    0 Stimmen
    22 Beiträge
    4k Aufrufe
    carsten04C
    Sieht jetzt alles super aus, auch ohne valNe:2. 2015-07-30 17:31:14.221 - info: javascript.0 script.js.test: {"id":"hm-rpc.0.LEQ1226350.1.STATE","newState":{"val":false,"ts":1438270274,"ack":true,"lc":1438270274,"from":"system.adapter.hm-rpc.0"},"oldState":{"val":true,"ts":1438268324,"ack":true,"lc":1438262778,"from":"system.adapter.hm-rpc.0"},"common":{"def":false,"type":"boolean","read":true,"write":true,"role":"state","name":"Schalter Terrassenlicht:1.STATE"},"native":{"CONTROL":"SWITCH.STATE","DEFAULT":false,"FLAGS":1,"ID":"STATE","MAX":true,"MIN":false,"OPERATIONS":7,"TAB_ORDER":0,"TYPE":"BOOL","UNIT":""},"name":"Schalter Terrassenlicht:1.STATE","channelId":"hm-rpc.0.LEQ1226350.1","channelName":"Schalter Terrassenlicht:1","deviceId":"hm-rpc.0.LEQ1226350","deviceName":"Schalter Terrassenlicht","enumIds":["enum.functions.Licht","enum.rooms.Garten"],"enumNames":["Licht","Garten"]} Die Idee mit dem JS-Adapterstart könnte passen, da ich den Adapter heute mehrmals neu gestartet habe, allerdings hatte ich die functions und rooms auch nicht geändert. So richtig nachvollziehen kann ich es daher noch nicht. Aber egal, bin froh das jetzt alles läuft. Manchmal ist eben alles fuzzy :D Beste Grüße Carsten
  • Fehler abfangen? z.B. nich vorhandene Variablen an Funktion

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    ruhr70R
    @Bluefox: Die Variable solltest du vor erste Verwendung checken: if (typeof hueGruppeWohnzimmer != 'undefined') { hueGruppe(hueGruppeWohnzimmer,"standard"); // (1) hueGruppe(hueGruppeWohnzimmer,"effectColorloop",3000); // (2) hueGruppe(hueGruppeWohnzimmer,"blue",5000); // (3) hueGruppe(hueGruppeWohnzimmer,"blue",1000,50); // (4) hueGruppe(hueGruppeWohnzimmer,"effectOff",7000); // (5) hueGruppe(hueGruppeWohnzimmer,"off",9000); // (6) } ```` ` OK. Danke für die Info! Ich teste das nachher. Schade, dass es nicht anders funktioniert. Der Scriptstart am Ende des Scripts ist nur ein Beispiel, um die Funktion zu testen. D.h. die Funktion hueGruppe() soll hinterher in diversen Scripts eingesetzt werden. Ist dann nicht mehr "so einfach" zu verwenden, wenn das dann ggf. noch Andere einsetzen.
  • [gelöst] If - Abfrage wird nicht ausgeführt - Anfänger

    Verschoben
    5
    2
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    E
    Super, Danke das wars.

353

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge