Skip to content

Skripten / Logik

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

16.5k Themen 213.5k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    Pedder007P
    ich denke bei 403 ist es das eher nicht., habs trotzdem probiert, aber gleiche Fehlermeldung. Ich hatte gerade mal parallel Gemini gefragt und dabei ist herausgekommen, dass es evtl. sein könnte, das der Provider den (2.ten) Zugang nicht freigibt, weil er mit der selben IP bereits einen aktiven Zugang sieht (bei mir läuft aktuell auch noch der dasWetter-Adapter) Ich habe zum zweiten Account (andere Mailadresse) auch bisher keine Bestätigungsmail bekommen!?
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Themen
    79k Beiträge
    haselchenH
    @Fibricus Passt Du den Threadtitel noch bitte an ( auch wenn gelöst). Mit „Denk ich falsch?“ kann kein User was anfangen .
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    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
  • Pushover wenn Xiaomi Staubsauger fertig

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    334 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
    855 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
    1k 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
    532 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
    216 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
    716 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
    602 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
    718 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
    255 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
    310 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).
  • Erstes Skript Zeitschaltuhr läuft nicht.

    Verschoben
    3
    2
    0 Stimmen
    3 Beiträge
    558 Aufrufe
    S
    :roll: Jetzt gehts… Vielen Dank für deine Hilfe
  • Countdown

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    832 Aufrufe
    L
    Hab's jetzt rausgefunden, so z.B. Waschmaschine_Status = 2 heißt bei mir das sie noch läuft. [image: 2716_restzeit_wama.jpg]
  • [GELÖST] Javascript von einer ext. Seite Einbinden in ioBroker

    Verschoben
    14
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    T
    Guten Morgen, vielen Dank für die schnelle Beantwortung! Ich finde es immer wieder Super das du es auch erklärst was man falsch gemacht hat. Nur so kann ich es Lernen. Schönen Tag und Gruß, Tom

290

Online

32.6k

Benutzer

82.3k

Themen

1.3m

Beiträge