Skip to content

Skripten / Logik

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

16.5k Themen 213.3k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    A
    @psrelax Ich bin gerade dabei diese Werte am Anfang vom Script zu bündeln, um diese dann schneller anpassen zu können. Wenn du deinen Wert vorab anpassen willst, dann ab ca. Zeile 600 diesen Code suchen: // Batterie SOC erst bei -2% oder + 1% oder 0% aktualisieren um Schwankungen der Batterie auszugleichen if (battSOC_Proz > m_Batt_SOC_Proz || m_Batt_SOC_Proz - battSOC_Proz >= HystereseBattSoc || battSOC_Proz == 0) { m_Batt_SOC_Proz = battSOC_Proz; } Bei mir steht dort bereits die neue Variable "HystereseBattSoc" bei dir sollte dort 2 stehen. Diese auf 4 erhöhen.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    I
    @peterfido Danke! Das wäre eine weitere Alternative, wenn ich mit dem TadoAdapter am Ende scheitere. Dann würde ich den Weg gehen wollen, das ganze via Matter zu lösen. Hab oben ja schonmal kurz erwähnt, dass ich schon einen Sonoff MG25 Thread Dongle hier liegen habe. Den habe ich allerdings noch nicht geflasht und im PI eingerichtet. Wenn es nur der Batteriestatus ist der fehlt, damit könnte ich leben. Den könnte ich mir ja dann immernoch aus dem TadoAdapter nehmen, wenn ich das möchte
  • 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?
  • LaCrosse Sensoren TX29DTH-IT

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Variable Heizzeiten über VIS einstellen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    761 Aufrufe
    Niemand hat geantwortet
  • [Gelöst] Kombination von Festtext und Varibale

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    htreckslerH
    Aber vorsicht… Diese Funktion ist nicht nur mächtig, sondern frisst meiner Meinung nach auch mächtig Performance.
  • Anfängerfrage: Fürs Log wie erhalte ich den Wert einer CCU SV

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    655 Aufrufe
    P
    Ist das noch aktuell? Die Zeile var idAnzahlTageMonat = "hm-rega.0.10382"/*eAnzahlTageMonat*/; ````aus der Funktion raus und zB nach ganz oben schreiben. Dann gilt sie für das ganze Skript, inkl. Funktion. Dann in die Zeile statt log('SV ' + idAnzahlTageMonat); log('SV ' + getState(idAnzahlTageMonat).val); Pix
  • Mit Türklingel TV umschalten

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    I
    Hallo homefesch, das script wird in Biobroker ausgeführt. Aktuell ist an dem HDMI (noch) nichts, geplant ist ein raspberry welches das Kamerabild streamt…
  • Abfrage ob eine Variable leer ist

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    3k Aufrufe
    paul53P
    @Fitti: TypeError: Cannot read property 'val' of null ` Diese Meldung zeigt, dass getState(id) null liefert, also zu dieser id keine Zustände (states) vorhanden sind. Es ist so die Prüfung möglich, ohne dass es zu der Fehlermeldung kommt: if (getState("javascript.0.meineVariable")) x = getState("javascript.0.meineVariable").val; Stattdessen wird ein Warning-Log erzeugt und die JS-Variable x wird nicht verändert (bleibt so wie sie deklariert wurde).
  • [gelöst] Registrierte Bewegung in einer bestimmten Zeit an Pushover schicken

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    A
    @nobody: Vielen Dank, das hat soweit funktioniert! Hier nochmal die Lösung: [image: bewegungsmelder2.jpg]~~![](</s><URL url=)http://www.a-flow.de/bilder/bewegungsmelder2.jpg" /> ! ```` [ { "id": "d5634222.be50f", "type": "ioBroker in", "z": "71a2a5f6.8bf87c", "name": "Bewegungsmelder-Front.MOTION", "topic": "hm-rpc.0.LEQ0988078.1.MOTION", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "x": 176, "y": 53, "wires": [ [ "60f1edfd.5f52a4" ] ] }, { "id": "60f1edfd.5f52a4", "type": "switch", "z": "71a2a5f6.8bf87c", "name": "Prüft, ob Bewegung stattgefunden hat", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 510, "y": 53, "wires": [ [ "cb9fb890.0116a8" ] ] }, { "id": "7c08c425.e50acc", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Bewegung an der Hausfront registriert!", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 964, "y": 53, "wires": [ [ "36000dca.323892", "d5eaa2a.f318b6" ] ] }, { "id": "36000dca.323892", "type": "pushover", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht senden", "device": "", "title": "Bewegung registriert!", "priority": "0", "sound": "pushover", "x": 1206, "y": 53, "wires": [] }, { "id": "d5eaa2a.f318b6", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1136, "y": 91, "wires": [] }, { "id": "3911cccf.0cfe04", "type": "inject", "z": "71a2a5f6.8bf87c", "name": "Tester", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "x": 268, "y": 98, "wires": [ [ "60f1edfd.5f52a4" ] ] }, { "id": "5ae98076.35458", "type": "ioBroker in", "z": "71a2a5f6.8bf87c", "name": "Bewegungsmelder-Parkplatz.MOTION", "topic": "hm-rpc.0.LEQ0988097.1.MOTION", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "x": 171, "y": 180, "wires": [ [ "fffa844.051c678" ] ] }, { "id": "fffa844.051c678", "type": "switch", "z": "71a2a5f6.8bf87c", "name": "Prüft, ob Bewegung stattgefunden hat", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 513, "y": 180, "wires": [ [ "8a95704e.108fe" ] ] }, { "id": "ca582c0a.c22dd", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Bewegung auf dem Parkplatz registriert!", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 969, "y": 179, "wires": [ [ "fe49114a.2a857", "ab4a6710.f59e18" ] ] }, { "id": "fe49114a.2a857", "type": "pushover", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht senden", "device": "", "title": "Bewegung registriert!", "priority": "0", "sound": "pushover", "x": 1211, "y": 179, "wires": [] }, { "id": "ab4a6710.f59e18", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1141, "y": 217, "wires": [] }, { "id": "27418c59.926714", "type": "inject", "z": "71a2a5f6.8bf87c", "name": "Tester", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "x": 271, "y": 225, "wires": [ [ "fffa844.051c678" ] ] }, { "id": "a12bc594.284ae8", "type": "ioBroker in", "z": "71a2a5f6.8bf87c", "name": "Bewegungsmelder-Stichstraße.MOTION", "topic": "hm-rpc.0.MEQ0246964.1.MOTION", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "x": 165, "y": 300, "wires": [ [ "eaffdb09.1b7bd8" ] ] }, { "id": "eaffdb09.1b7bd8", "type": "switch", "z": "71a2a5f6.8bf87c", "name": "Prüft, ob Bewegung stattgefunden hat", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 515, "y": 300, "wires": [ [ "53a78a93.35acb4" ] ] }, { "id": "67ed4203.0f017c", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Bewegung in der Stichstraße registriert!", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 971, "y": 347, "wires": [ [ "73d671e4.ddbbd", "b64d1a62.f86848" ] ] }, { "id": "73d671e4.ddbbd", "type": "pushover", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht senden", "device": "", "title": "Bewegung registriert!", "priority": "0", "sound": "pushover", "x": 1213, "y": 347, "wires": [] }, { "id": "b64d1a62.f86848", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1143, "y": 385, "wires": [] }, { "id": "57ced1e6.cd7ea", "type": "inject", "z": "71a2a5f6.8bf87c", "name": "Tester", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "x": 274, "y": 345, "wires": [ [ "eaffdb09.1b7bd8" ] ] }, { "id": "53a78a93.35acb4", "type": "time-range-switch", "z": "71a2a5f6.8bf87c", "name": "Zeituhr", "lat": "50.12", "lon": "8.07", "startTime": "sunrise", "endTime": "sunset", "x": 769, "y": 299, "wires": [ [ "607a888a.f1f0a8" ], [ "67ed4203.0f017c" ] ] }, { "id": "f00537f7.379438", "type": "debug", "z": "71a2a5f6.8bf87c", "name": "Debug", "active": true, "console": "true", "complete": "payload", "x": 1142, "y": 295, "wires": [] }, { "id": "607a888a.f1f0a8", "type": "change", "z": "71a2a5f6.8bf87c", "name": "Pushover Nachricht", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Zeitraum nicht aktiv", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 970, "y": 294, "wires": [ [ "f00537f7.379438" ] ] }, { "id": "8a95704e.108fe", "type": "time-range-switch", "z": "71a2a5f6.8bf87c", "name": "Zeituhr", "lat": "50.12", "lon": "8.07", "startTime": "sunrise", "endTime": "sunset", "x": 771, "y": 182, "wires": [ [], [ "ca582c0a.c22dd" ] ] }, { "id": "cb9fb890.0116a8", "type": "time-range-switch", "z": "71a2a5f6.8bf87c", "name": "Zeituhr", "lat": "50.12", "lon": "8.07", "startTime": "sunrise", "endTime": "sunset", "x": 766, "y": 54, "wires": [ [], [ "7c08c425.e50acc" ] ] } ]
  • Ladesteckdose abhängig von aktuellen Solarertrag einschalten

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    725 Aufrufe
    P
    Hallo thomassch, habe leider keine Zeit für das ganze Skript, aber ich würde das so angehen: Solarleistung überwachen und nach Hysterese eine Variable "Solarstrom_nutzen" einschalten oder verzögert ausschalten on(solarleistung, function (data) { if (data.state.val > 3kW) setState(Solarstrom_nutzen, true); if (data.state.val < 1kW && getState(Solarstrom_nutzen).val) setStateDelayed(Solarstrom_nutzen, false, 10 * 60 * 1000); // 10minuten } Dann Variable Solarstrom_nutzen überwachen und Schaltsteckdose oder/und andere Geräte/Anzeigen damit schalten on(idSolastrom_nutzen, idSchaltsteckdose); "Hysterese" einfach mal hier im Forum suchen. Paul53 hat dazu Spitzenbeispiele! Die Zeitverzögerung ist sinnvoll, kann auch noch verfeinert werden. Gruß Pix
  • OWL Intuition mit Node-RED einlesen

    Verschoben
    30
    5
    0 Stimmen
    30 Beiträge
    8k Aufrufe
    R
    Kaum verzweifelt, den Fehler glaube ich gefunden… Ich musste den js.controller unter "hosts" neu starten. Nun scheint alles wieder zu funktionieren. Gruss Ritschi
  • Hilfe Umstellen CCU2 Programm zum ioBroker Skript

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    Z
    Erstmal danke an Jey Cee, Pix und Paul53. Super mit den Beispielen komme ich schonmal ein ganzes Stück weiter Hatte mit der Erklärung von Jey Cee soweit weiter gemacht das ich bei einer if Variante war, die aber nicht funktioniert hat. Habe dann Pix Vorschlag umgesetzt, muss mir das von Paul53 noch genauer anschauen. Pix, hast natürlich recht, die Fernbedienung ist ein RPC Element (Ich muss auf Anwesend Kurz prüfen, da ich mit der Taste Short eine Toogle Funktion zwischen An und Aus realisiert habe). Allerdings verstehe ich gerade noch nicht den Punkt mit STATE, da ich ja PRESS_SHORT verwenden muss (denke ich zumindest, ansonsten Scheiss mich zusammen. Hihi) Erster Teil Funktioniert und auch die Funktion starteAktion. Zweite Subscription funktioniert nicht (denke weil ich da was falsches eingegeben habe, werde ich noch weiter probieren) ` > /* Programm Abwesend Kurz Ablösen des CCU2 Programms Mit Hilfe von Jey Cee, Pix und Paul53 */ // Abfrage der Abwesenheit Kurz: var idAbwesendKurzVariable = 'hm-rega.0.2330'; // System Variable CCU2 Abwesend Kurz // lange, ausführliche Schreibweise on({ id: idAbwesendKurzVariable, // Datenpunkt der Überwachung change: 'ne' // auf Änderung }, function (obj) { // den neuen Wert der Änderung checken if (obj.state.val === true) { // wenn neuer Wert true // aktuelle Abfrage der zweiten Variable - also nur prüfen var anwesenheit = getState("hm-rega.0.950"/Anwesenheit/).val; // zur besseren Übersicht in eine lokale Variable geschrieben if (anwesenheit === true) { // wenn Anwesenheit auch wahr ist starteAktion(); // Funktion aufrufen } } }); var idAbwesendKurzTaster = "hm-rpc.0.MEQ0670647.2.PRESS_SHORT" /Funk-Fernbedienung mit D. Abw.KurzAn/Aus:2.PRESS_SHORT/ /Abwesenheit kurz Taster/; // STATE muss mit rein beim Taster, ist wohl eher ein hm-rpc.0.***.STATE Datenpunkt // zweite subscription auf die Fernbedienung in kurzer Schreibweise (change: 'ne' ist Standard, es kann "===true" weggelassen werden und einzeilige Anweisungen nach if brauchen keine geschweiften Klammern) on(idAbwesendKurzTaster, function (obj) { if (obj.state.val && getState(idAbwesendKurzVariable).val) starteAktion(); }); // Ausführung function starteAktion () { setState("hm-rpc.0.MEQ0484756.1.STATE", false); // Taster Deckenlicht Arbeitszimmer setState("hm-rpc.0.NEQ0018993.2.SUBMIT","0.7,1,108000,20"); // weitere Aktionen einfügen } ` nochmals danke Gruß Zippolighter
  • [Erledigt] Scriptgesteuerte ausführen des MP3 Funkgongs mit Signalleuchte

    Verschoben
    3
    2
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    Z
    Super, hat so geklappt Danke Gruß Zippolighter
  • [Erledigt] Hilfe bei einem Script Counter und Kamera schwenken

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    Z
    Super so klappt es. Ganz herzlichen Dank für die Hilfe Pix Gruß Zippolighter
  • $ Selector für rpc.0 und .LOWBAT

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    982 Aufrufe
    F
    Das läuft prima. Super und Danke!! ! Hat denn keiner mal Lust mit das zu erklären? Das JS ist ja kein Problem - ich komme nur nicht dahinter, was Bluefox da geschaffen hat. ! Das ist total frustierend! ! Genau dieses Beispiel: Ich habe Stunden verbracht die Doku zu lesen und zu testen. Ich habe hierfür http://forum.iobroker.net/viewtopic.php?f=20&t=2329&p=30842&hilit=Servicemeldungen#p20332 dazu genommen. ! Dann stelle ich fest, dass meine CuxD Geräte Probleme machen - Also einen weiteren Filter. Dann sehe ich diese Beispiele auf der JS Adapter Seite und nichts funktioniert. ! Dann stellt man die Frage hier im Forum und bekommt eine ganz andere Lösung. Oft dann noch der Hinweis, das steht doch da so. :shock: :shock: :shock: ! Ich finde aber wirklich nirgends einen Hinweis, wann wie welcher Selektor welcher ist. Beispiel: bei "enum Name" soll ich von alleine darauf kommen, dass ich hier z.B. nur "function" eintrage. Habe ich sogar geschafft. Was ist aber ein commonAttr? Welche Dinger passen da rein, welche nicht? ! Wann nehme ich channel (so wie im genannten Servicemeldungen Skript) und wann nehme ich nun state (so wie jetzt total überraschend von pix in meinem Beispiel)? ! Ist ja nun nicht so, dass ich im Skripteprogrammieren neu bin. Das mache ich schon etliche Jahre mit Perl, Bash, Bat, SQL usw. ! Achso - warum will ich überhaupt diese Anpassungen… na weil bei mir meistens die Skripte, die es hier so funktionierend von anderen gibt, bei mir nicht laufen. Auch nicht auf einer nagelneuen Installation. Keine Ahnung, ob es an der Masse meiner Aktoren liegt oder nicht. Immer wieder nur rote Zeilen im loggging. ! Ich hatte schon mehrfach Leuten sogar Geld für eine 30-60 Minuten Schulung geboten. Aber nix, hat keiner Interesse. :evil: Muss ich halt blöd bleiben. Danke dennoch nochmal pix.
  • Raffstore script Beispiel

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    M
    @Fitti: Mich würde auch noch etwas mehr Details interessieren aus Eigennutz, was du exakt für ein Stoff und Motor hast. Gerne per PM. Suche nämlich sowas. 8-) Also du hast einen normalen HomeMatic Funk-RolladenAktor drannen, richtig? Und den kannst Du auch von der CCU z. B. steuern? Oder hast Du dazu noch einen Funktaster? Oder hast du den Unterputz RolladenAktor, wo du die Taster direkt anchließt? Sei es drum. Eigentlich müsste es doch so gehen, dass du immer nur auf bestimmte Positinen fährst. Den Rolladenaktor hast du entsprechend mit der Zeit programmiert, richtig? Also z. B. 0% ist der Store komplett offen, das Fenster ist vollkommen frei. Bei 100 % ist der Store vollkommen vor dem Fenster. Jetzt kann man ja diesen Store ankippen, auch wenn der Store z. B. nur das halbe Fenster verdeckt, richtig? Das willst du? Das ist durch eine Logik machbar: Man müsste also den aktuellen Wert erst auslesen und dann ein paar Prozent rauf oder runter rechnen. Also z. B. lese ich erst mal aus, dass der Store bei 43% steht (0.43). Jetzt musst du ausprobieren, wieviel % du benötigst, damit er einmal seine Blick-Position umdreht. Sagen wir 5%. Dann setzt du den Store auf den Wert 0.48 (48%) mit setState(xxx.. Jetzt sehe ich nur noch ein kleines Problem, nämlich ob der Store vorher geöffnet oder geschlossen wurde. Demnach müsstest Du was addieren oder abziehen. Bevor jetzt noch weitere Vorschläge kommen - ist das so ungefähr was bei Dir ist und die rein theoretische Lösung geht in die richtige Richtung? So long, Fitti ` Hallo Fitti genau so sollte es funktonieren einfach irgendwo mitten drinnen kurz mal umsteuern und dann weiter nach unten fahren Gruesse Mario
  • Heizungssteuerung

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    S
    ich denke grad für eine Heizungssteuerung wäre OCC sehr gut geeignet. Leider bring ich die alte Version nicht ans Laufen, und die neue Version verzögert sich - also ist Geduld angesagt.
  • Und oder Verknüpfung

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    7k Aufrufe
    HomoranH
    Habt ihr mal im JavaScript Adapter nachgesehen? Da gibt es jetzt die ersten Ansätze von blockly. Dies wird der Ersatz für die scriptGUI Gruß Rainer
  • 0 Stimmen
    8 Beiträge
    3k Aufrufe
    etvE
    ….nein gleich danach nicht, hat er auch so übernommen. Fehler war, dass die Datei nach dem Kopieren falsche Zugriffsrechte hatte und erst nach dem Ändern dieser ist es dann gegangen und anscheinend sind genau in dieser Zeit die letzten Fehler ausgeworfen worden... Aber nun klappt's perfekt! Danke nochmal für die rasche Hilfe!! Grüße Tom
  • Anderung in Hm rega überwachen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    900 Aufrufe
    paul53P
    Rechne besser die aktuelle Uhrzeit in ms um, dann kann man einfach substrahieren: schedule ("* * * * *",function(){ var act = getState("hm-rega.0.7761"/*Anwesenheit.string*/).ts; // letzte Aktualisierung var change = getState("hm-rega.0.7761"/*Anwesenheit.string*/).lc; var date =new Date(); date = date.getTime(); // ms seit 1.1.1970 setState ("javascript.0.hmpdetect.neu"/*hmpdetect.neu*/,act); log("act " +act + " change " +change + " date "+date ); var diff = (date - act) / 60000; // Differenz in Minuten });
  • Neuling hat probleme bei Script ausführen

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    M
    Hallo Pix mal einen Herzlichen Dank für deine Geduld und Hilfe hab das script ein wenig umbebaut ,leider funktioniert das mit dem Widget noch ned so richtig kommt nur eine kurze bestätigung ,also das script bleibt auf false hab sicher da irgendwo nen fehler drinnen ..vielleicht kannst du noch mal kurz drüber schauen Gruesse Mario66 createState('RolAlleHoch', false); /* besser createState('RolAlleHoch', { type: 'boolean', def: false }); */ on("javascript.0.RolAlleHoch", function (obj) { if (obj.state.val) { // kann so abgekürzt werden. newState = state, "===true" kann man weglassen setStateDelayed("hm-rpc.0.MEQ1309974.1.LEVEL"/*Jalousien/Wohnzimmer TV.LEVEL*/, 100); // Wert 100 setStateDelayed("hm-rpc.0.MEQ1310286.1.LEVEL"/*Jalousien/Wohnzimmer/Strasse.LEVEL*/, 100); // Wert 100 setStateDelayed("hm-rpc.0.NEQ0111918.1.LEVEL"/*Jalousien/Esszimmer.LEVEL*/, 100); // Wert 100 log('Alle Rollläden werden hochgefahren'); // optional - damit du siehst, wann das Skript greift. } }); on({id: /.MEQ1309974.1.LEVEL|.MEQ1310286.1.LEVEL|.NEQ0111918.1.LEVEL/, // Rolläden werden bei Bewegung abgefragt change: 'ne' }, function(obj) { if (getState("hm-rpc.0.MEQ1309974.1.LEVEL").val === 100 && getState("hm-rpc.0.MEQ1310286.1.LEVEL").val === 100 && getState("hm-rpc.0.NEQ0111918.1.LEVEL").val === 100) setState("javascript.0.RolAlleHoch", false); });
  • Hile node-red läuft 2mal ?

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

798

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge