Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.5k Posts

NEWS

  • Javascript für Beginners

    6
    0 Votes
    6 Posts
    392 Views
    HomoranH
    @skokarl Ah so Nein im Admin im Reiter Skripte wird das Skript erstellt.
  • [gelöst ]Name vom Objekt oberhalb

    javascript
    11
    1
    0 Votes
    11 Posts
    655 Views
    cashC
    @Asgothian Vielen Dank für die Erklärung und die Geduld @paul53 auch Dir vielen Dank. Deine Lösung funktionierte genauso. Keine Ahnung was ich da beim ersten Versuch falsch gemacht habe. Ich habe jetzt nochmal beide Sachen getestet und vorlagen verstanden. So sind beide Lösungen logisch. Hier also nochmal die beiden Lösungsmöglichkeiten: var id_Sonos_Coordinator = 'sonos.0.root.192_168_178_35.coordinator'/*coordinator*/; //Methode 1 var devid = id_Sonos_Coordinator.substring(0, id_Sonos_Coordinator.lastIndexOf('.')); var common_name1 = getObject(devid).common.name; log('Name Methode1: '+common_name1); //Methode 2 var split = id_Sonos_Coordinator.split('.'); split.length -- var id = split.join('.') var common_name = getObject(id).common.name; log('Name Methode2: ' +common_name);
  • [gelöst]Umrechnung Wasserdruck von Pascal in Bar

    4
    0 Votes
    4 Posts
    424 Views
    paul53P
    @webseb79 sagte: funktioniert bestens. Dann ersetze bitte in der Überschrift [Hilfe] durch [gelöst].
  • Java Script startet nicht

    13
    1
    0 Votes
    13 Posts
    1k Views
    DirkKD
    Das Problem war das den Upload in den Instanzen gesucht hab, sorry
  • Ist Javascript eigentlich Javascript?

    javascript
    9
    0 Votes
    9 Posts
    1k Views
    T
    @AlCalzone Da ich so ein Halbwissender bin gerne die Bitte, dass falls du über was halbgares von mir stolperst, lass es mich gerne wissen. Man will ja lernen :point_up: :relaxed:
  • Latenzzeit beim Schreiben eines Zustandes

    14
    0 Votes
    14 Posts
    993 Views
    A
    Ich habe redis installiert. Nach dem ersten Test sah es wirklich super aus. Antwortzeit nach ca. 10ms. Jetzt zwei Stunden später ist die Zeit auf ca. 35ms angestiegen. Werde morgen mal das geasmte System neu starten und dann berichten. @Homoran die SSD ist direkt am SATA Anschluss dran.
  • Über scriptEnabled triggern verboten. Aber wie richtig?

    37
    0 Votes
    37 Posts
    3k Views
    liv-in-skyL
    @Homoran sagte in Über scriptEnabled triggern verboten. Aber wie richtig?: @liv-in-sky Dann wirst du um das If wohl doch nicht rumkommen ;-) Also wäre ein weiterer State ("mehrere_anwesend") notwendig, der durch WasAuchImmer aktiviert wird und in den 10 Scripten berücksichtigt wird die aktivierung dieses states ist nicht das problem (handyanwesenheit, , alexa oder ein wifischalter direkt am eingasng (wenn besuch kommt), ... ich wollte nur einen guten überblick behalten - hatte eben noch die idee, einen eigene js-adapter für diese scripts zu errichten und diesen adapter ein und auszuschalten ich nehme an, das bringt mir auch nicht viel
  • Hilfe bei getEnum

    3
    0 Votes
    3 Posts
    393 Views
    D
    Hi BuZZy, danke erstmal für die Antwort. Ich möchte in meiner Visualisierung für meine Fenstersensoren einen Status anzeigen. Für die Visualisierung nutze ich das Material Theme von Uhla. Dort hat man die Möglichkeit sich States anzeigen zu lassen. Diese basieren aber auf numerischen Werten. Meine (Homematic) Fenstersensoren liefern aber "true" oder "false". Von daher wollte ich mir per Skript einen zusätzlichen Datenpunkt anlegen, welche dann für den korrespondierenden Fensterkontakt für True eine 1 anzeigt und für False eine 0. Damit ich das nicht für jeden Kontakt machen muss, wollte ich die Aufzählung auslesen, und den Code etwas generischer halten. Oder gibt es noch ne bessere Lösung. Bin für alle Vorschläge offen :-) Danke und Gruß Danyo
  • Daten aus einer Website mit Javascript

    Moved
    138
    0 Votes
    138 Posts
    25k Views
    smartboartS
    @ArnoD said in Daten aus einer Website mit Javascript: Nachteil, kann aber zu dem Phänomen führen, das man z.B. einen Schalter in Vis auf ein=1 stellt, der von der zyklischen Abfrage mit dem Wert 0 von der Anlage überschrieben wird und dann vom Merker wieder auf 1 gesetzt wird. Sieht in Vis etwas komisch aus, würde aber funktionieren. Hi, habe es bei mir so schon laufen, weil ich ja auch automatisch regeniere wenn wir nicht zu Hause sind.. Funktionieren tut es.. Wird jedesmal getriggert? ja, habe ich oben ja geschrieben, aber der Befehl wird ja bei den if ( && ) Bedingungen abgeblockt und stört somit nicht die Anlage..Das Abrufen der States erfolgt ja nur innerhalb IObroker... Und mit dem Button zum starten wird es nicht komisch aussehen, da wir ja mit dem eigens dazu angelegten AussenEigriff :-) State Starten und der wird ja nur einmal true und nach einer Sekunde wieder false gesetzt. und da das Signal zum regenerieren nur durchgeht wenn es nicht 1 ist, ist das auch für eine eventuelle Statusanzeige ausgeschlossen. Theoretisch zumindest...
  • ON liefert unregelmäßig den Status ohne echten Change

    javascript
    6
    2
    0 Votes
    6 Posts
    732 Views
    E
    Ach jo. Danke Euch, jetzt hab ich es auch verstanden :-)
  • [Hilfe]: javascript Variablen Übergabe. Globales Script??

    5
    0 Votes
    5 Posts
    769 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
    583 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
    2k 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
    916 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
    228 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
    528 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
    351 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
    265 Views
    paul53P
    Suche im Forum nach require('request').

775

Online

32.5k

Users

81.6k

Topics

1.3m

Posts