Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 49.1k Posts

NEWS

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

    5
    0 Votes
    5 Posts
    834 Views
    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 Votes
    13 Posts
    616 Views
    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 Votes
    36 Posts
    3k Views
    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 Votes
    31 Posts
    3k Views
    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 Votes
    13 Posts
    1k Views
    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 Votes
    5 Posts
    1k Views
    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 Votes
    3 Posts
    239 Views
    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 Votes
    6 Posts
    544 Views
    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 Votes
    5 Posts
    376 Views
    S
    https://forum.iobroker.net/topic/1671/vorlage-anwesenheitssimulation-script
  • [gelöst] URL abfragen Ergebnis in Objekt schreiben

    javascript
    2
    0 Votes
    2 Posts
    289 Views
    paul53P
    Suche im Forum nach require('request').
  • getstate() in getstate() möglich?

    5
    0 Votes
    5 Posts
    369 Views
    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

    Solved javascript
    7
    0 Votes
    7 Posts
    496 Views
    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 Votes
    27 Posts
    2k Views
    M
    @paul53, habe ich nochmal angepasst
  • Javascript variable in vis nutzen

    Unsolved
    2
    0 Votes
    2 Posts
    458 Views
    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 Votes
    9 Posts
    974 Views
    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 Votes
    5 Posts
    379 Views
    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 Votes
    5 Posts
    348 Views
    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 Votes
    7 Posts
    529 Views
    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 Votes
    5 Posts
    339 Views
    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 Votes
    9 Posts
    657 Views
    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).

277

Online

32.7k

Users

82.5k

Topics

1.3m

Posts