Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.9k Beiträge

NEWS

  • Script Anfängerfragen, u.a. SetInterval

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • (beantwortet) JS-variable mit sich selbst aktualisieren?

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    ruhr70R
    Nachtrag :-) In History sehe ich den Eintrag nicht. Im Rickshaw wird die Linie aber gezeichnet und wenn ich mit der Maus auf den letzten Datenpunkt gehe steht dort auch die letzte Zeit :-) Danke!!!
  • Object erstellen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    BluefoxB
    @nobse: Kann mir jemand hier auf die Sprünge helfen? mit on("hm-rega.0.2775", function(obj) {… erstelle ich ja ein obj bei änderung von "hm-rega.0.2775" wie erstelle ich ein obj egal ob sich was geändert hat vielen Dank ` on({id:"hm-rega.0.2775", change: "any"}, function(obj) {...
  • Meine Probleme beim Scripting

    Verschoben
    21
    0 Stimmen
    21 Beiträge
    6k Aufrufe
    derAugeD
    Super ! Ausgabe von SayIt auf Browser gestellt und es geht var idSayIt = "sayit.0.tts.text"; // Hier die entsprechende SayIt Text ID var idButton = "hm-rpc.0.LEQ0492793.1.MOTION"; // Bewegung Terasse.MOTION var lastSay = null; // Bei Bewegung wird folgender Text gesprochen subscribe({id: idButton, val: true}, function (obj) { if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) { lastSay = (new Date()).getTime(); setState (idSayIt, "de;40;Bewegung auf der Terasse festgestellt"); } }); var idSayIt = "sayit.0.tts.text"; // Hier die entsprechende SayIt Text ID var idButton = "hm-rpc.0.KEQ1092089.1.MOTION"; //*Bewegung innen.MOTION*/ var lastSay = null; // Bei Bewegung wird folgender Text gesprochen subscribe({id: idButton, val: true}, function (obj) { if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) { lastSay = (new Date()).getTime(); setState (idSayIt, "de;40;Bewegung im Flur festgestellt"); } }); LOG: sayit.0 2015-03-16 20:18:42 info sayit.0 Copied file '/mnt/ioBroker/iobroker.Pi2/node_modules/iobroker.sayit/say.mp3' to '/mnt/ioBroker/iobroker.Pi2/node_modules/iobroker.sayit/../../cache/4278c2eec25384afdd977b2bc3e03831.mp3' sayit.0 2015-03-16 20:18:42 info sayit.0 saying: de;40;Bewegung auf der Terasse festgestellt sayit.0 2015-03-16 20:18:25 info sayit.0 saying: de;40;Bewegung im Flur festgestellt
  • (gelöst) Auf Änderung hm-rega reagieren?

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    ruhr70R
    @ruhr70: on("hm-rega.0.11123.STATE", function(obj) { if (obj.newState.val === true) { ```` ` Ich bin das Forum nun Thread für Thread durchgegangen und in einem Screenshot Fündig geworden (da hilft dann leider die Suche auch nicht). Offensichtlich darf bei hm.rega Variablen das .STATE nicht dahinter. Warum habe ich zwar nicht verstanden, aber so funktioniert es ;-) on("hm-rega.0.11123", function(obj) { if (obj.newState.val === true) {
  • (beantwortet) on/schedule ne:true (frage)

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    BluefoxB
    @iben: Werde mir erst mal so behelfen: on('hue.0.Philips hue.Hue Lamp 2.on', function (obj) { a = getState("hue.0.Philips hue.Hue Lamp 2.on"); log("EVENT ERKANNT Lampenstatus :"+a.val,"info"); if (a.val === true) { log("EVENT ERKANNT Lampenstatus nur bei an:"+a.val,"info"); } }); ```` ` Ich mache normalerweise so: on('hue.0.Philips hue.Hue Lamp 2.on', function (obj) { if (obj.newState.val === true || obj.newState.val === "true") { log("EVENT ERKANNT Lampenstatus nur bei an:"+a.val,"info"); } });
  • Einbinden gemeinsam genutzter Komponenten

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    H
    var ON = true, OFF = false; var hue_id = { "Gang:Deckenlampe":"hue.0.Philips hue.Gang", "Büro:Schreibtisch":"hue.0.Philips hue.Schreibtisch", "Büro:Deckenlampe":"hue.0.Philips hue.Büro", "Büro:Leselampe":"hue.0.Philips hue.Leselampe", "Schlafzimmer:Bett":"hue.0.Philips hue.Schlafzimmer" }; var hue_group = { "Gang":{ "bulbs":[ [hue_id['Gang:Deckenlampe'],0] ], "preset":0 }, "Büro":{ "bulbs":[ [hue_id['Büro:Deckenlampe'],0], [hue_id['Büro:Schreibtisch'],-64] ], "preset":0 }, "Leselampe":{ "bulbs":[ [hue_id['Büro:Leselampe'],0] ], "preset":0 }, "Schlafzimmer":{ "bulbs":[ [hue_id['Schlafzimmer:Bett'],0] ], "preset":0 } }; var hue_preset = { "72deg 100%":{"bri":254,"colormode":"hs","hue":13122,"sat":212}, "72deg 75%":{"bri":192,"colormode":"hs","hue":13653,"sat":212}, "Antique":{"bri":190,"colormode":"ct","ct":497}, "Beruhigen":{"bri":145,"colormode":"ct","ct":463}, "Fluorescent":{"bri":254,"colormode":"ct","ct":153}, "Halogen":{"bri":254,"colormode":"ct","ct":299}, "Konzentrieren":{"bri":254,"colormode":"ct","ct":234}, "Lesegeschwindigkeit":{"bri":241,"colormode":"ct","ct":343}, "Nacht 50%":{"bri":127,"colormode":"hs","hue":65535,"sat":254}, "Nacht 75%":{"bri":192,"colormode":"hs","hue":65535,"sat":254}, "Regenerieren":{"bri":204,"colormode":"ct","ct":153}, "Schwarzlicht":{"bri":50,"colormode":"hs","hue":48000,"sat":254}, "Standard 100%":{"bri":254,"colormode":"hs","hue":14922,"sat":145}, "Standard 75%":{"bri":192,"colormode":"hs","hue":14922,"sat":145} }; function setHuePreset(preset, group) { for (var n = 0; n < group.bulbs.length; n++) { var id_bulb = group.bulbs[n][0]; var level = preset["bri"] + group.bulbs[n][1]; if (level < 0) { level = 0; } if (level > 254) { level = 254; } setState(id_bulb+'.on', ON); setState(id_bulb+'.bri', level); switch(preset.colormode) { case "hs": setState(id_bulb+'.colormode', 'hs'); setState(id_bulb+'.hue', preset.hue); setState(id_bulb+'.sat', preset.sat); break; case "ct": setState(id_bulb+'.colormode', 'ct'); setState(id_bulb+'.ct', preset.ct); break; default: setState(id_bulb+'.colormode', 'xy'); // TODO: Colormode from xy array } } } Dies ist der Code den ich per eval in mehrere Skripte einbinde da ich, wie vorher schon geschrieben, Geräte-/Funktionsgruppen zur besseren Übersicht voneinander trenne. hue_id dient nur der Vereinfachung. hue_group entstand eigentlich nur da ich in meinem Büro eine Deckenlampe und eine Schreibtischlampe habe und diese in der Regel gleich eingestellt werden, aber die Schreibtischlampe 25% dunkler sein muss, damit beide gleich hell wirken. hue_preset enthält die Werte die ich direkt von der Bridge per Paw (Mac Applikation) auslese und in einzelnen Dateien speichere. Damit kann ich Einstellungen die ich mit diversen Apps mache und mir gefallen, dauerhaft sichern. Darüber lasse ich ein Ruby Skript laufen welches alle Dateien ausliest, den kompletten Hash ausgibt und dabei nicht benötigtes weglässt. Es funktioniert alles so wie ich es möchte, allerdings habe ich einen kleinen Haken bei dem Hue-Adapter festgestellt. Dazu werde ich aber die Frage im passenden Adapter-Bereich des Forums stellen um nicht vom Thema abzuschweifen.
  • On/subscribe wird nur einmal ausgeführt

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    3k Aufrufe
    BluefoxB
    @HarlekinX: val:true funktioniert ebenfalls. Es kann ja so einfach sein :-) ` Übrigens ich habe readme.md für "on" und "schedule" erweitert. https://github.com/ioBroker/ioBroker.ja ... some-state https://github.com/ioBroker/ioBroker.ja ... t#schedule
  • Frage zum Script

    Verschoben
    14
    1
    0 Stimmen
    14 Beiträge
    4k Aufrufe
    B
    Danke - irgendwann hab ichs raus … ;)
  • (beantwortet) Variable anlege und abfragen (frage)

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    I
    Suppi, danke.

744

Online

32.6k

Benutzer

82.1k

Themen

1.3m

Beiträge