Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.3k Beiträge

NEWS

  • [Hilfe]: javascript Variablen Übergabe. Globales Script??

    5
    0 Stimmen
    5 Beiträge
    762 Aufrufe
    paul53P
    @htrecksler sagte: Mir persönlich helfen immer konkrete Beispiele. Das einzige von mir verwendete globale Skript: function runden(wert, stellen) { return Math.round(wert * Math.pow(10, stellen)) / Math.pow(10, stellen); }
  • Astrofunktion bei veränderlicher Position

    13
    0 Stimmen
    13 Beiträge
    577 Aufrufe
    HomoranH
    @Kastenfrosch77 sagte in Astrofunktion bei veränderlicher Position: node: v11.10.0 node 11 ist nicht gut! das ist noch eine Entwicklerversion und wird nicht von ioBroker unterstützt. node 8.15x oder mit dem neuen Controller darf es auch node 10.x sein
  • [gelöst] Könnte mir bitte jemand bei dem Script helfen?

    36
    1
    0 Stimmen
    36 Beiträge
    2k Aufrufe
    W
    Oh Man(n), tretet mich, schlagt mich ...habe bei der ganzen Testerei vergessen den Filter zu löschen :sweat: Sorry, danke für die Info! Demnach sind beide Xiaomi's (sind allerdings noch nicht alle, der Rest ist noch unterwegs) auch vorhanden. Nur dieser TFK "zigbee.0.00158d0002d4382e.opened" wird allerdings vom Script nicht erkannt, das ist doch merkwürdig. { "desc": "", "from": "system.adapter.admin.0", "ts": 1552230559828, "common": { "name": "Fenster", "smartName": false, "color": false, "members": [ "hm-rpc.2.0000D569A4A7B0.1", "hm-rpc.2.0000D8A997965A.1", "hm-rpc.2.0007D8A99FC4AV.1", "hm-rpc.2.0007D8A99FC624.1", "zigbee.0.00158d0002d48243.opened", "zigbee.0.00158d0002d4382e.opened" ] }, "native": { "Name": "Fenster", "TypeName": "ENUM", "EnumInfo": "" }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "_id": "enum.functions.Fenster", "type": "enum" } Edit: Habe den TFK im Zigbee-Adapter auch schon gelöscht und neu angelegt.
  • [Gelöst] Auf Sonnenstand reagieren mit beschreibbarer Variable

    31
    0 Stimmen
    31 Beiträge
    2k Aufrufe
    paul53P
    @webseb79 sagte: Ich glaube wir hätten die ganze Sache schon viel früher lösen können mit deinem Vorschlag. Das Sonnenstandsskript musste auch für den richtigen Datenpunkttyp korrigiert werden.
  • Alle 10min Meldung im Telegram "Bitte wähle einen Button" aus Script

    13
    1
    0 Stimmen
    13 Beiträge
    912 Aufrufe
    A
    Ich habe Tado Heizungsregler an 4 Heizkörper. Hier mal der Code : '{"time":{"start":"00:00","end":"23:59","mode":"hours","interval":1},"period":{"days":1}}'/* -- do not edit following lines - START -- { "expert": true, "debug": false, "verbose": false } -- do not edit previous lines - END --*/ // tado Script für ioBroker // Version 0.1 // // Anleitung: // 1. Pro Thermostat muss ein Script erstellt und individuell konfiguriert werden! // 2. Eindeutigen Raumname im Konfig-Bereich des Scripts für das Thermostat angeben. Bei mehreren Thermostaten in einem Raum bitte unterschiedliche Raumnamen verwenden. // 3. Über folgende URL (Nutzername und Passwort in der URL angeben) per WEbbrowser die HomeID ermitteln und in dem Konfigurations-Teil des Scripts eintragen: // https://my.tado.com/api/v2/me?username=USERNAME&password=PASSWORT // 4. Über folgende URL (HOME ID, Nutzername und Passwort in der URL angeben) per Webbrowser die ZoneID ermitteln und in dem Konfigurations-Teil des Scripts eintragen: // https://my.tado.com/api/v2/homes/HOMEID/zones/2/state?username=USERNAME&password=PASSWORT // - Die "2" im Link steht für ZoneID 2, in meinem Fall war das das Thermostat im Wohnzimmer // - am besten unterschiedliche Temperaturen in den Räumen per App einstellen und dann verschiedene Zahlen im Link durchprobieren // // // Quellen die bei der Scripterstellung geholfen haben: // http://wirres.net/article/articleview/10326/1/6/ // http://blog.scphillips.com/posts/2017/01/the-tado-api-v2/ schedule("*/10 * * * *", function () { // Zeiteinstellung: Script aktualisiert alle 10 Min die Werte. Bei geringeren Abfrageintervallen kann es zu Verbindungsabbrüchen kommen und alle Geräte müssen neugestartet werden! //[b]Konfiguration:[/b] var Raumname = 'Badezimmer'; // Der hier angegebene Raumname dient zur Benennung des erzeugten Channel Objekts in ioBroker var ZoneID = "****************"; // Zonennummer des Raums (muss über API URL ermittelt werden, siehe Anleitung) var HomeID = "***************"; // HomeID (muss über API URL ermittelt werden, siehe Anleitung) var Username = "*************; // tado Username (E-Mail Adresse) var Password = "************"; // tado Passwort (Sonderzeichen müssen entsprechend umgewandelt werden, z.B. # = %23) // SCRIPTBEGINN - AB HIER NICHTS VERÄNDERN ! var url = "https://my.tado.com/api/v2/homes/"+HomeID+"/zones/"+ZoneID+"/state?username="+Username+"&password="+Password; // API URL //läd die Json herunter var request = require("request"); request(url, function (error, response, body) { //parst die Json var json = JSON.parse(body); //Datenpunkterstellung: createState("tado." + Raumname + ".temperature", 0, false, {type: "number", name: "temperature", desc: "Eingestellte Temperatur", role: "value.temperature", unit: "°C", read: true, write: true}); createState("tado." + Raumname + ".power", "OFF", false, {type: "string", name: "power", desc: "Aufheizen", read: true, write: true}); createState("tado." + Raumname + ".inside_temperature", 0, false, {type: "number", name: "inside_temperature", desc: "Gemessene (Raum-)Temperatur", role: "value.temperature", unit: "°C", read: true, write: true}); createState("tado." + Raumname + ".humidity", 0, false, {type: "number", name: "humidity", desc: "Luftfeuchtigkeit", role: "value.humidity", unit: "%", min: 0, max: 100, read: true, write: true}); createState("tado." + Raumname + ".heatingpower", 0, false, {type: "number", name: "heatingpower", desc: "Heizkraft", unit: "%", min: 0, max: 100, read: true, write: true}); //Datenabfrage: //Temperatur: setState("javascript.0.tado."+Raumname+".temperature", json.setting.temperature.celsius); log('tado Temperatur '+Raumname+': ' + json.setting.temperature.celsius); //Power: setState("javascript.0.tado."+Raumname+".power", json.setting.power); log('tado Power-Setting '+Raumname+': ' + json.setting.power); //Humidity: setState("javascript.0.tado."+Raumname+".humidity", json.sensorDataPoints.humidity.percentage); log('tado Humidity '+Raumname+': ' + json.sensorDataPoints.humidity.percentage); //Inside Temperature: setState("javascript.0.tado."+Raumname+".inside_temperature", json.sensorDataPoints.insideTemperature.celsius); log('tado Inside Temperature '+Raumname+': ' + json.sensorDataPoints.insideTemperature.celsius); //Heating Power: setState("javascript.0.tado."+Raumname+".heatingpower", json.activityDataPoints.heatingPower.percentage); log('tado Heating Power '+Raumname+': ' + json.activityDataPoints.heatingPower.percentage); }); });
  • UWZ Script für Europa / Österreich

    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    NashraN
    @muckel sagte in UWZ Script für Europa / Österreich: Danke, danke, danke! :-) Bitte, aber das Ganze scheint nicht mehr zu funktionieren, sie hier Link Text
  • Auf Änderung von Timastamp reagieren

    3
    0 Stimmen
    3 Beiträge
    226 Aufrufe
    a200A
    @paul53 sagte in Auf Änderung von Timastamp reagieren: on({id: von}, function () { ... }); Vielen Dank! Aber es ist logisch, der Status ändert sich ja nicht... Danke, das geht jetzt!
  • Fenster Zählen Script Erweiterung

    6
    0 Stimmen
    6 Beiträge
    527 Aufrufe
    F
    Da haben sich die Antworten überschnitten. Mann, dass mir das nicht selbst aufgefallen ist. Ich werde es mal weiter umsetzen und Reporten. Danke
  • Zufällig schalten mit Javascript (nicht Blockly)

    5
    0 Stimmen
    5 Beiträge
    349 Aufrufe
    S
    https://forum.iobroker.net/topic/1671/vorlage-anwesenheitssimulation-script
  • [gelöst] URL abfragen Ergebnis in Objekt schreiben

    javascript
    2
    0 Stimmen
    2 Beiträge
    259 Aufrufe
    paul53P
    Suche im Forum nach require('request').
  • getstate() in getstate() möglich?

    5
    0 Stimmen
    5 Beiträge
    340 Aufrufe
    padrinoP
    Super, danke! Damit und anschauen, was blockly so "in code" ist, konnte ich mir das basteln var serial = getState('alexa2.0.History.serialNumber').val; var vol = getState('alexa2.0.Echo-Devices.' + serial + '.Player.volume').val; var ausgabe = ['Die Lautstärke für dieses Gerät ist ', vol ,' Prozent.'].join(''); setState((['alexa2.0.Echo-Devices.', serial ,'.Commands.speak'].join('')), ausgabe); freu
  • [Gelöst]Fehler Skript für CCU2

    Gelöst javascript
    7
    0 Stimmen
    7 Beiträge
    449 Aufrufe
    sigi234S
    @paul53 DANKE! Gelöst...... Nur zur Verständnis, der parseFloat macht dies: The parseFloat() function parses a string and returns a floating point number. Dann importiert der HM Adapter die Sys-Variable von der CCU2 nicht Richtig? Diese ist ja als ZAHL eingestellt.
  • Skript zur Steuerung Aussenlicht mit Bewegungsmelder und Tastern

    javascript
    27
    0 Stimmen
    27 Beiträge
    2k Aufrufe
    M
    @paul53, habe ich nochmal angepasst
  • Javascript variable in vis nutzen

    Ungelöst
    2
    0 Stimmen
    2 Beiträge
    443 Aufrufe
    K
    @Kastenfrosch77 Habe vergessen zu erwähnen das das Dialogfenster mit vis Widgets aufgebaut ist. Falls ich in den Widgets Javascript-Variablen anstatt Datenpunkt-Id's benutzen kann könnte ich mir den temporären Datenpunkt sparen.
  • Script wird mehrfach ausgeführt

    9
    0 Stimmen
    9 Beiträge
    830 Aufrufe
    A
    Moin bin schin etwas weiter gekommen. Habe jetzt eine Java Variable genommen, damit läuft die IF Abfrage in Script B. Jedoch muss ich die Variable trotzdem in Script C zurücksetzten. setTimeout(function() {CAN_OUT_Help_0x13x;}, 100); funktioniert in Script B leider nicht. Jetzt habe ich das nächste Problem. Es werden ja insgesamt drei Zustände durch Script A verändert. Leider wird nur die erste übernommen, obwohl die Zustände bereits seit ca 200ms gespeichert sind. [image: 1551649006001-07b30bf2-e620-4fd0-b01b-a05b0f546258-grafik.png]
  • [Erledigt] falsches Datum

    javascript
    5
    2
    0 Stimmen
    5 Beiträge
    346 Aufrufe
    NegaleinN
    @rantanplan sagte in falsches Datum: @Negalein Bitte nimm das Tag "Template" aus Deinem Beitrag. Es geht um eine Frage und ist keine Vorlage. Danke! Erledigt! Muss ich irrtümlich erwischt haben.
  • [gelöst] HM Tastereingang als Trigger auslesen

    javascript
    5
    1
    0 Stimmen
    5 Beiträge
    321 Aufrufe
    M
    @paul53 sagte in HM Tastereingang als Trigger auslesen: on({id: idTaster1}, function() { // triggert bei jeder Aktualisierung (Wertänderung nicht erforderlich) Paul, das wars - ich bin zu doof... danke
  • [gelöst]Anfänger braucht Hilfe in einem Script bei json auflösen

    7
    1
    0 Stimmen
    7 Beiträge
    507 Aufrufe
    T
    @paul53 sagte in Anfänger braucht Hilfe in einem Script bei json auflösen: Es muss beim Ereignis als erstes Zeichen ein Leerzeichen eingefügt werden, damit der Vergleich funktioniert. Beispiel: if(Term1 == " Restmüll") restmuell = Term2; Danke!! Das war´s
  • Trigger verzögern

    javascript
    5
    0 Stimmen
    5 Beiträge
    328 Aufrufe
    AsgothianA
    Das ist so zu erwarten. Jeder trigger startet einen timeout. Was du machen musst ist da eine Ebene zwischen zu legen, nach diesem Muster: var timeout =null; function func_Variable_Heizprogramm () { If (timeout==null) timeout=setTimeout... Weiter unten in der Funktion die den timeout ausführt muss dann timeout=null; Dann sollte es gehen. A.
  • Denon Script funktioniert nicht

    9
    0 Stimmen
    9 Beiträge
    515 Aufrufe
    paul53P
    @Homoran sagte: Wenn du im gleichen Blockly noch unabhängige Blöcke hast schon Man kann eine Variable mit dem Bezeichner value an mehreren Stellen im gleichen Blockly verwenden, allerdings kann man nirgends den Wert auswerten, der mit dem Befehl setze value auf Wert von ... gesetzt wurde Dieser Befehl ist ein NOP (no operation).

721

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge