Skip to content

Skripten / Logik

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

16.4k Themen 211.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    M
    Hatte jetzt keine Meldungen mehr gesehen (irgendwann kamen keine Fehler mehr), aber ich habe den Fix trotzdem mal gemacht... Vielen Dank für die schnelle Antwort!
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    AsgothianA
    @klixy23 sagte in Trigger werden im Script nicht ausgelöst: Wie kann ich das Problem weiter analysieren? Wie sieht das hier bei Dir aus:[image: 1763831819942-screenshot-2025-11-22-at-18.16.57.png] A.
  • 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
  • Blockly: Abfrage Steckerleiste in Abhängigkeit von Uhrzeit

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    1k Aufrufe
    rantanplanR
    @Tanja37: Ja perfekt Jungs! Habt vielen Dank! Habe heute viel gelernt. Danke für Eure Zeit. ` Dann bitte noch ein [gelöst] in den Betreff Deines ersten Beitrags. Danke.
  • Heizungssteuerung mit Anwesenheitserkennung wo ist der Fehler?

    Verschoben
    5
    3
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    Q
    Die Einrichtung sollte mittlerweile kein Problem mehr sein. Läuft bei mir sehr gut und ich hab hab das Script für mich persönlich erweitert
  • Blockly: Snapshot von Kamera speichern

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    997 Aufrufe
    MatzebhvM
    Moin, bei meiner Cam habe ich das so gelöst: sudo wget –output-document /opt/ipcam/alarm.jpg 'http://192.168.178.30:81/snapshot.cgi?u ... d=xxxxxxxx' Gruß Matze
  • Pushover wenn Xiaomi Staubsauger fertig

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    311 Aufrufe
    H
    Habs hinbekommen. Der Staubsauger meldet gar nicht "Charging(8)", sondern nur eine (8). Der Wert wird in der Objektkonfiguration umgesetzt. Jetzt sieht es so aus und es funktioniert :D : [image: 6880_unbenannt-2.jpg] Gruß Olli
  • *gelöst* Blockly Benachrichtungen Türklingel bei Abwesenheit

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    793 Aufrufe
    DutchmanD
    Nö du musst den timeout ja erst stoppen Dan einen neuen starten :-) –----------------------- Send from mobile device Das schöne ios hat Auto Korrektur zum k**** Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
  • [gelöst]Variablen Übergabe aus MODBUS an Homematic

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    4k Aufrufe
    M
    habs gerade gemerkt - Ich probiere es weiter… :D EDIT: funzt... danke!
  • [Gelöst] Blockly schaltet Hue nicht aus

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    940 Aufrufe
    H
    So, nun habe ich es mit ein wenig Experimentieren hinbekommen: [image: 5736_screenshot_2018-04-14_12.09.08.jpg] Mein Fehler war, dass der Aktualisierungszeitraum zu groß war. Schönes Wochenende Euch Allen!
  • Blockly - Status von Variablen auf Homematic umsetzen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    517 Aufrufe
    surfer09S
    Ohje den Screenshot hatte ich eben vergessen 8-) . Ich habe gerade gesehen, dass die Homematic den Text "ist offen" / "ist geschlossen" selbst umsetzt, je nachdem ob der Zustand wahr oder falsch ist. Im IO-Broker habe ich nämlich nur Zugriff auf "true" oder "false". Bedeutet das, dass ich die Umsetzung dann auf der CCU2 lassen muss? Ich könnte dann im Blockly nur sagen: Wenn Kellertür true, setze Variable Kellertür auf wahr (die Homematic würde daraus dann "zu" machen). Vielleicht denke ich gerade auch zu kompliziert? :D 4867_kellert_r.jpg 4867_kellert_r.jpg 4867_kellert_r.jpg 4867_io-broker-kellertuer.jpg
  • Scriptfehler in einem nicht existierenden Script?

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    207 Aufrufe
    Niemand hat geantwortet
  • Blockly Skript, Steckdose schalten

    Verschoben
    7
    1
    0 Stimmen
    7 Beiträge
    3k Aufrufe
    D
    Habe ich mir doch gedacht :) Da kann ich dir konkret nicht helfen, da ich mich mit den Wetter-Adaptern nicht beschäftigt habe bisher (bin auch erst seit einigen Wochen mit ioBroker am arbeiten). Rein theoretisch gehe ich aber davon aus, dass die Wetter Adapter auch irgendwo unter Objekte das aktuelle Datum speichern werden. Dann kannst du in Blockly unter "Trigger" einen Block auswählen (Name weiß ich gerade nicht), der deinen Code aufruft sobald der Wetter-Wert aktualisiert wird. Dann kannst du mit einer einfachen "kleiner als Temperatur" Abfrage festlegen, dass die Rolläden dann auf bzw. zu gehen (wahrscheinlich auch per Objekt, je nach dem wie du sie schon in ioBroker eingebunden hast). Gruß Thomas
  • Funktion erstellen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    708 Aufrufe
    J
    Hallo, vielen dank Paul und Schubi. Ich habe es mit einem ODER Node gelöst sowie der Schubi vorgeschlagen hat.
  • Blockly - Wenn Objekt 5 Minuten false ist dann…

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    BarnyXXB
    Top Danke! werde ich am Wochenende mal ausprobieren.
  • Alexa Reiceiver+AVR+TV ein/ausschalten?

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    2k Aufrufe
    M
    ok, mal schauen ob sich da was machen lässt. Mal schauen ob jemand einen alten im Freundeskreis hat oder ich kaufe einen dot ;)
  • Teil von script wird nicht ausgeführt.

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    574 Aufrufe
    DutchmanD
    der letzte teil befindet sich ausserhalb des trigger Bausteins wird also nur bei script start übergeben. Du musst also auch diese befehl in einem trigger integrieren dan wird's laufen
  • Frage zur Astrofunktion

    Gesperrt Verschoben Gelöst javascript
    20
    0 Stimmen
    20 Beiträge
    4k Aufrufe
    X
    Hallo zusammen, ich nutze auch seit einer Weile die Astro Funktion um zwei Objekte ("Hell" [ja/nein] und "Dunkel" [ja/nein]) zu ändern. Entsprechend wird bei mir die Beleuchtung & Rollladensteuerung geschaltet. Zu Debugging-Zwecken sende ich außerdem zusätzlich noch Telegram Messages an den jeweiligen Events. Siehe: [image: 5044_unbenannt.png] /** * Beschreibe diese Funktion … */ function update_uhrzeit_hell_dunkel() { setState("javascript.0.Umwelt_Dunkel_Uhrzeit"/*Umwelt_Dunkel_Uhrzeit*/, formatDate(getDateObject(getAstroDate("dusk", undefined, 0)), "hh:mm"), true); setState("javascript.0.Umwelt_Hell_Uhrzeit"/*Umwelt_Hell_Uhrzeit*/, formatDate(getDateObject(getAstroDate("dawn", undefined, 0)), "hh:mm"), true); } /** * Beschreibe diese Funktion … */ function alle_Zeiten_ausgeben() { console.log(getAstroDate("goldenHour", undefined, 0)); console.log(getAstroDate("sunsetStart", undefined, 0)); console.log(getAstroDate("sunset", undefined, 0)); console.log(getAstroDate("dusk", undefined, 0)); console.log(getAstroDate("nauticalDusk", undefined, 0)); console.log(getAstroDate("night", undefined, 0)); console.log(getAstroDate("nadir", undefined, 0)); console.log(getAstroDate("nightEnd", undefined, 0)); console.log(getAstroDate("nauticalDawn", undefined, 0)); console.log(getAstroDate("dawn", undefined, 0)); console.log(getAstroDate("sunrise", undefined, 0)); console.log(getAstroDate("sunriseEnd", undefined, 0)); console.log(getAstroDate("goldenHourEnd", undefined, 0)); } schedule({astro: "nadir", shift: 0}, function () { update_uhrzeit_hell_dunkel(); }); schedule({astro: "sunset", shift: 0}, function () { setState("javascript.0.Umwelt_Dunkel"/*Umwelt_Dunkel*/, true, true); sendTo("telegram.0", "send", { text: 'Umwelt Dunkel ja' }); }); schedule({astro: "dusk", shift: 0}, function () { setState("javascript.0.Umwelt_Hell"/*Umwelt_Hell*/, false, true); sendTo("telegram.0", "send", { text: 'Umwelt Hell nein' }); }); schedule({astro: "dawn", shift: 0}, function () { setState("javascript.0.Umwelt_Hell"/*Umwelt_Hell*/, true, true); sendTo("telegram.0", "send", { text: 'Umwelt Hell ja' }); }); schedule({astro: "sunriseEnd", shift: 0}, function () { setState("javascript.0.Umwelt_Dunkel"/*Umwelt_Dunkel*/, false, true); sendTo("telegram.0", "send", { text: 'Umwelt Dunkel nein' }); }); Leider ist mir jetzt aufgefallen dass immer 2x das jeweilige Event ausgelöst wird bei der Astro-Funktion. Sprich die Objekte 2x aktualisiert & 2x die Telegram Messages geschickt. Teilweise auch um einige Minuten versetzt… Ist das ansonsten auch noch jemandem aufgefallen? Bei mir ist es ein Problem, da zb. wenn es Nacht ist, die Rollläden runter gehen. Wenn diese aber noch offen bleiben sollen stoppe ich manuell direkt am Aktor. Wenige Minuten später wird aber die Astro Funktion nochmal ausgelöst und sie schließen sich wieder... Genauso verhält es sich mit der "Abendbeleuchtung" Hoffe auf Feedback.
  • Anfängerfrage - CCU Variable mit Wert beschreiben

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    671 Aufrufe
    DutchmanD
    Steht doch auf Github : https://github.com/ioBroker/ioBroker.ja … tes-change trigger erstellen, dan einen update block nehmen und das object der ccu mit dem "wert von" updaten
  • [Gelöst]Gelöschtes globales Skript wird ausgeführt

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    245 Aufrufe
    A
    Ein Neustart von ioBroker hat geholfen.
  • Funktionen für den hue Adapter

    Verschoben
    37
    0 Stimmen
    37 Beiträge
    12k Aufrufe
    M
    ich bin anscheinend zu dov. ich habe script angepasst so ! // –---------- ANFANG der individuellen Konfiguration ------------ ! // die eigenen Lampen in Gruppen sortiert (die Farbverläufe und Effekte werden nach Gruppen aktiviert) ! var lampen ={ ! "wohnzimmer": // Lampengruppe ! [ ! "Philips_hue.Lampe2", ! "Philips_hue.Lampe1", ! "Philips_hue.Lampe3", ! "Philips_hue.Sonne" ! ] ! }; ! var hueSzenenApapterPfad = "hue.szene."; // wo sollen die Datenpunkte in den ioBroker Objekten angelegt werden ! // je Lampengruppe werden die Datenpunkte: ! // .szene -> Änderung der Szene per Datenpunkt, z.B. über VIS oder im Script per szeneStart(lampenGruppe,szene,bri); ! // .bri -> Änderung der Helligkeit per Datenpunkt (0-254) ! // .sat -> Änderung der Farbsättigung per Datenpunkt ())0-254) ! // .bri_inc -> Erhöhung/Verminderung der Helligkeit per Datenpunkt (positiver Wert = Heller, negativer Wert = dunkler) ! // .sat_inc -> Erhöhung/Verminderung der Sättigung per Datenpunkt (positiver Wert = mehr Farbe, negativer Wert = blasser) ! // angelegt ! // z.B. unter: javascript.0.hue.szene.arbeitszimmer.szene (Javascfript Instanz 0, Pfad = "hue.szene.") ! // globaler Parameter: Zufällige Zeit zwischen den Wechsel zwischen zwei Farben, je Lampe, in der aktivierten Szene in ms ! // (wenn keine individuelle Zeit in der Szene definiert ist) ! var delayMin = 1000; // minimale Zeit in ms einer Lampe, um in die nächste Farbe zu wechseln ! var delayMax = 3000; // maximale Zeit in ms einer Lampe, um in die nächste Farbe zu wechseln ! // ------------ ENDE der individuellen Konfiguration ------------ ! // ------------------------------------------------------------------------- ! // Script: Logik & Szenen - ab hier muss in der Regel nichts geändert werden ! // ------------------------------------------------------------------------- ! var szenen = { ! "beispiel": ! { ! "description": "Beispielszene", // optional: Beschreibung der Szene ! "delayMin": 2000, // optional (ohne werden die globalen Einstellungen verwendet) ! "delayMax": 9000, // optional (ohne werden die globalen Einstellungen verwendet) ! "hueMin": 0, // niedrigste Farbe im Verlauf ! "hueMax": 50000 // höchste Farbe im Verlauf ! }, ! "kamin": ! { ! "description": "roter Farbverlauf", ! "hueMin": 0, ! "hueMax": 10000 ! }, ! "wald": ! { ! "description": "grüner Farbverlauf", ! "hueMin": 20000, ! "hueMax": 27000 ! }, ! "sonne": ! { ! "description": "gelb/oranger Farbverlauf", ! "hueMin": 10000, ! "hueMax": 17000 ! }, ! "blau": ! { ! "description": "Energie, blauer Farbverlauf", ! "hueMin": 44000, ! "hueMax": 48000 ! }, ! "strobo": ! { ! "description": "Stroboskop", ! "ct": 153, ! "delayMin": 500, ! "delayMax": 800 ! }, ! "feuer": ! { ! "description": "pulsierende Farben", ! "delayMin": 200, ! "delayMax": 600, ! "hueMin": 0, ! "hueMax": 17000 ! }, ! "regenbogen": ! { ! "description": "das gesamte Farbspektrum", ! "delayMin": 1000, ! "delayMax": 8000, ! "hueMin": 0, ! "hueMax": 65355 ! }, ! "love": ! { ! "description": "langsam wechselnder Farbverlauf im lila/violetten Bereich, bis zu den Endpunkten blau und rot", ! "delayMin": 5000, ! "delayMax": 8000, ! "hueMin": 46920, ! "hueMax": 65355 ! } ! }; ! // ##### Script Variablen ##### ! var timer = {}; ! var nextDelay = {}; ! var szeneAktiv = []; ! var szene = []; ! // ##### Script Funktionen ##### ! function rand(min, max) { ! return Math.floor(Math.random() * (max - min + 1)) + min; ! } ! function dpAnlegen() { ! for (var lampenGruppe in lampen) { ! createState(hueSzenenApapterPfad + lampenGruppe + ".szene","aus"); ! createState(hueSzenenApapterPfad + lampenGruppe + ".infoAktiveSzene","keine"); ! createState(hueSzenenApapterPfad + lampenGruppe + ".bri",254); ! createState(hueSzenenApapterPfad + lampenGruppe + ".bri_inc",0); ! createState(hueSzenenApapterPfad + lampenGruppe + ".sat",254); ! createState(hueSzenenApapterPfad + lampenGruppe + ".sat_inc",0); ! log(hueSzenenApapterPfad + lampenGruppe + " wurde angelegt","info"); ! } ! } ! function restoreSzenen() { ! for (var lampenGruppe in lampen) { ! var aktiveSzene = getState(hueSzenenApapterPfad + lampenGruppe + ".szene").val; ! var bri = getState(hueSzenenApapterPfad + lampenGruppe + ".bri").val; ! if (aktiveSzene != "aus") { ! log("im der Gruppe: " + lampenGruppe + " wurde die Szene: " + aktiveSzene + " wieder aktiviert."); ! setState(hueSzenenApapterPfad + lampenGruppe + ".infoAktiveSzene",aktiveSzene); ! szeneStart(lampenGruppe,aktiveSzene,bri); ! } ! } ! } ! function varsAnlegen() { ! // Script-Variablen für jede Lampengruppe anlagen ! for (var lampenGruppe in lampen) { ! timer[lampenGruppe] = []; ! nextDelay[lampenGruppe] = []; ! szeneAktiv[lampenGruppe] = false; ! szene[lampenGruppe] = null; ! // Script-Variablen für jede Lampe in jeder Lampengruppe anlegen ! for (var i = 0; i < lampen[lampenGruppe].length; i++) { // timer und die nächste Delayzeit für jede Lampe zurückstellen ! timer[lampenGruppe] = null; ! nextDelay[lampenGruppe] = 0; ! } ! } ! } ! function szenenwechsel (lampenGruppe,lampe,delay) { ! delay = Math.floor(delay / 100); // der zufällige Wert für die nächste Lichtfarbe wird auch als transitiontime verwendet (dazu wird das delay durch 100 geteilt) ! //log("aktive Szene: hueMin: " + szenen[szene[lampenGruppe]]["hueMin"] + " hueMax: " + szenen[szene[lampenGruppe]]["hueMax"]); ! var hue = rand(szenen[szene[lampenGruppe]].hueMin,szenen[szene[lampenGruppe]].hueMax); ! var bri = getState(hueSzenenApapterPfad + lampenGruppe+".bri").val; ! var sat = getState(hueSzenenApapterPfad + lampenGruppe+".sat").val; ! var command = '{"on":true,"hue":' + hue + ',"sat":' + sat + ',"bri":' + bri + ',"transitiontime":' + delay + ',"colormode":"hs"}'; ! //log ("Lampe: " + lampen[lampenGruppe][lampe] + " # command: " + command); ! if (bri == 0) command = '{"on":false,"bri":0}'; ! setState(lampen[lampenGruppe][lampe] + ".command", command); ! } ! function stroboskop(lampenGruppe,lampe) { ! var command = '{"on":true,"ct":153,"bri":254,"transitiontime":0,"colormode":"ct"}'; ! setState(lampen[lampenGruppe][lampe] + ".command", command); ! command = '{"on":false,"transitiontime":0}'; ! setState(lampen[lampenGruppe][lampe] + ".command", command); ! } ! function berechneDelay (lampenGruppe,lampe){ ! // globale Delay-Einstellungen übernehmen ! var delayMinTemp = delayMin; ! var delayMaxTemp = delayMax; ! // globale Delay-Einstellungen überschreiben, wenn in der Szene ein eingener Delay definiert ist ! if (szenen[szene[lampenGruppe]].delayMin) delayMinTemp = szenen[szene[lampenGruppe]].delayMin; ! if (szenen[szene[lampenGruppe]].delayMax) delayMaxTemp = szenen[szene[lampenGruppe]].delayMax; ! nextDelay[lampenGruppe][lampe] = rand(delayMinTemp,delayMaxTemp); ! } ! function szeneTimer(lampenGruppe,lampe) { ! var delay = nextDelay[lampenGruppe][lampe] || 0; ! var aktuelleSzene = szene[lampenGruppe]; ! //log("gesetztes Delay: " + delay); ! if (timer[lampenGruppe][lampe]) clearTimeout(timer[lampenGruppe][lampe]); ! timer[lampenGruppe][lampe] = setTimeout(function() { ! timer[lampenGruppe][lampe] = null; ! berechneDelay(lampenGruppe,lampe); ! switch (aktuelleSzene) { ! case "strobo": ! stroboskop(lampenGruppe,lampe); ! break; ! default: ! szenenwechsel(lampenGruppe,lampe,nextDelay[lampenGruppe][lampe]); ! break; ! } ! //log("Delay = " + nextDelay[lampenGruppe][lampe] + " # Lampe: " + lampen[lampenGruppe][lampe]); ! szeneTimer(lampenGruppe,lampe); // ruft den Timer nach Ablauf wieder auf ! },delay); ! } ! function check254(check) { ! if (check !== 0) if (!check) check = 254; ! check = parseInt(check); ! if (check > 254) check =254; ! if (check <= 0 ) check = 0; ! return check; ! } ! function setBri(lampenGruppe,aktiveSzene,bri) { ! if (szenen[aktiveSzene].bri) bri = szenen[aktiveSzene].bri; ! bri = check254(bri); ! setState(hueSzenenApapterPfad + lampenGruppe+".bri", bri); ! } ! function setSat(lampenGruppe,aktiveSzene,sat) { ! if (szenen[aktiveSzene].sat) sat = szenen[aktiveSzene].sat; ! sat = check254(sat); ! setState(hueSzenenApapterPfad + lampenGruppe+".sat", sat); ! } ! function szeneStart(lampenGruppe,aktiveSzene,bri,sat) { ! if (!szenen[aktiveSzene]) { // undefinierte Szenen abfangen ! log("# hue Szenen Script: undefinierte Szene wurde versucht aufzurufen: " + aktiveSzene,"error"); ! return; ! } ! szene[lampenGruppe] = aktiveSzene; ! setBri(lampenGruppe,aktiveSzene,bri); ! setSat(lampenGruppe,aktiveSzene,sat); ! if (!szeneAktiv[lampenGruppe]) { ! szeneAktiv[lampenGruppe] = true; ! for (var i = 0; i < lampen[lampenGruppe].length; i++) { // für alle Lampen den timer starten ! nextDelay[lampenGruppe] = 0; ! szeneTimer(lampenGruppe,i); ! } ! } ! } ! function szeneStop(lampenGruppe) { // alle aktiven timer löschen ! for (var i = 0; i < lampen[lampenGruppe].length; i++) { ! clearTimeout(timer[lampenGruppe]); ! log("Timer: " + lampen[lampenGruppe] + " gestoppt"); ! } ! szeneAktiv[lampenGruppe] = false; ! szene[lampenGruppe] = null; ! } ! function lampenAus(lampenGruppe) { ! for (var i = 0; i < lampen[lampenGruppe].length; i++) { ! setState(lampen[lampenGruppe]+".command",'{"on":false}'); ! } ! } ! function setBriSat(com,wert,lampenGruppe) { ! if (wert != check254(wert)) { ! wert = check254(wert); ! setState(hueSzenenApapterPfad + lampenGruppe + "." + com, wert); //korrigiert bri/sat und ruft diese on() Funktion direkt wieder auf ! } else { ! //log("Lampengruppe: " + lampenGruppe + " # " + com + ": " + wert + " empfangen","warn"); ! if (szeneAktiv[lampenGruppe]) { // wenn die Szene in der Gruppe aktiv ist: ! for (var i = 0; i < lampen[lampenGruppe].length; i++) { // für alle Lampen der Gruppe ! setState(lampen[lampenGruppe] + "." + com, wert); // die Helligkeit/Saturation direkt ändern ! //log(com + ": " + wert + " # " + lampen[lampenGruppe] + " gesetzt","warn"); ! } ! } ! } ! } ! function changeBriSat (com, wert, lampenGruppe) { ! com = com.replace("inc", ""); ! var alterWert = getState(hueSzenenApapterPfad + lampenGruppe + "." + com).val; ! wert = parseInt(wert) + alterWert; ! setState(hueSzenenApapterPfad + lampenGruppe + "." + com, wert); //setzt bri/sat neu. Dies ruft die on() Funktion direkt wieder auf, diesmal mit bri/sat ! } ! // ##### Überwachte Datenpunkte ##### ! // Änderung der Helligkeit (.bri) oder Farbsättigung (.sat) während der Laufzeit über einen Datenpunkt ! var reg = new RegExp("^javascript\.\d+\." + hueSzenenApapterPfad.replace('.', '\.') + ".\.(sat|bri)"); ! on({"id":reg , "change": "ne"}, function (obj) { ! var com = obj.id.split('.').pop(); ! var str = obj.id.replace(/.(bri|sat)$/, ""); ! var reg2 = new RegExp("^javascript\.\d+\."+ hueSzenenApapterPfad.replace('.', '\.')); ! var lampenGruppe = str.replace(reg2, ""); ! var wert = obj.newState.val; ! setBriSat (com, wert, lampenGruppe); ! }); ! // Änderung der Helligkeit oder Farbsättignung als adaptiver Wert (.bri_inc, .sat_inc) ! var reg = new RegExp("^javascript\.\d+\." + hueSzenenApapterPfad.replace('.', '\.') + ".\.(sat_inc|bri_inc)"); ! on({"id":reg , "change": "any"}, function (obj) { ! var com = obj.id.split('.').pop(); ! var str = obj.id.replace(/.(sat_inc|bri_inc)$/, ""); ! var reg2 = new RegExp("^javascript\.\d+\."+ hueSzenenApapterPfad.replace('.', '\.')); ! var lampenGruppe = str.replace(reg2, ""); ! var wert = obj.newState.val; ! changeBriSat (com, wert, lampenGruppe); ! }); ! // Änderung einer Szene während der Laufzeit, z.B. über VIS ! var reg = new RegExp("^javascript\.\d+\." + hueSzenenApapterPfad.replace('.', '\.') + ".*\.szene"); ! on(reg , function (obj) { ! var str = obj.id.replace(/.szene$/, ""); ! var reg2 = new RegExp("^javascript\.\d+\."+ hueSzenenApapterPfad.replace('.', '\.')); ! var lampenGruppe = str.replace(reg2, ""); ! var neueSzene = obj.newState.val; ! log("Lampengruppe: " + lampenGruppe + " # Szene: " + neueSzene + " empfangen"); ! switch (neueSzene) { ! case "aus": ! szeneStop(lampenGruppe); ! lampenAus(lampenGruppe); ! log(lampenGruppe + " Szene deaktiviert"); ! break; ! case "stop": ! szeneStop(lampenGruppe); ! log(lampenGruppe + " Szene angehalten"); ! break; ! default: ! if (szenen[neueSzene]) { ! // TODO: bri nur ermitteln, wenn in der Szene kein eigener bri festgelegt ist ! var bri = getState(hueSzenenApapterPfad + lampenGruppe+".bri").val; ! bri = check254(bri); ! if (bri == 0) bri = 254; ! szeneStart(lampenGruppe,neueSzene,bri); ! setState(hueSzenenApapterPfad + lampenGruppe+".infoAktiveSzene", neueSzene); ! log(lampenGruppe + " Szene: " + neueSzene + " gestartet"); ! break; ! } ! log("### unbekannte Szene: " + neueSzene,"error"); ! break; ! } ! }); ! // ##### Scriptstart ##### ! dpAnlegen(); // je einen Datenpunkt pro Lampengruppe anlegen ! varsAnlegen(); // die für das Script notwendigen Variablen erstellen ! // warte bis alle States und Objekte angelegt werden. ! // 500ms und dann starte main(); ! function main() { ! // ##### Scriptstart main() ##### ! restoreSzenen(); // aktiviert zuletzt eingestellte Szenen ! } ! setTimeout(main, 500);_______ ___________wird nur folgendes zu sehen unter Objekte ich habe bestimmt was falsch gemacht oder nicht verstanden.___________ 6680_bildschirmfoto_2018-04-11_um_18.35.12.png
  • Unterschied "steuere Objekt" und "aktualisiere Objekt"

    Verschoben
    22
    0 Stimmen
    22 Beiträge
    5k Aufrufe
    S
    Mittlerweile hat sich etwas veraendert mit den Web-Ansichten meiner Objekte. Die version 3.3.5 vom admin-Interface scheint die Updates der Objekte jetzt richtig anzuzeigen. Ich hatte seit der Installation von 3.3.5 keinen Fall mehr wo die Web-Werte offensichtlich anders waren als die die die Skripte gesehen haben. Bei 3.3.3 schien das Problem dagegen noch da zu sein.
  • Verständnisfrage javascript on()

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    298 Aufrufe
    paul53P
    Auf Datenpunkte "javascript.N.name", die der Instanz von Javascript zugeordnet sind, kann mit getState(id) und setState(id, val) mittels der verkürzten Schreibweise (ohne "javascript.N.") zugegriffen werden, nicht jedoch mit on(id, callback) oder getObject(id).

673

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge