Weiter zum Inhalt

JavaScript

2.5k Themen 49.3k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Javascript editor - ende script fehlt ?

    javascript
    10
    1
    0 Stimmen
    10 Beiträge
    466 Aufrufe
    liv-in-skyL
    @HeliosFan also firefox hat ein viel größeres problem, bezogen auf den nachtrag - viele meldungen im log - firefox stoppt ganz - keine reaktion mehr die untere zeile scheint stabil zu sein - zumindest während des tests
  • Pumpenabschaltung läuft nicht - Anfängerfehler?

    Ungelöst
    5
    0 Stimmen
    5 Beiträge
    315 Aufrufe
    paul53P
    @erhard_stgt sagte in Pumpenabschaltung läuft nicht - Anfängerfehler?: ich dachte bisher, ich leg da einfach was an im Ordner vis.0 und fertig ist die Laube. Adapter verwalten ihre Datenpunkte selbst, also sollte man keine eigenen Datenpunkte im Namensraum von Instanzen erstellen. Wie das mit vis.0 ist, kann ich nicht beurteilen, denn das habe ich nie versucht. Problemlos ist die Erstellung eigener Datenpunkte unter javascript.N (N = 0, 1, ...), so wie man sie auch per Skript mit createState() erstellen kann. @erhard_stgt sagte in Pumpenabschaltung läuft nicht - Anfängerfehler?: wenn man mit so ziemlich kaum einer Ahnung startet... Um nicht ahnungslos zu bleiben, gibt es Dokus.
  • [gelöst] Mein erstes Skript in Java

    Gesperrt Gelöst
    6
    0 Stimmen
    6 Beiträge
    516 Aufrufe
    Dominik F.D
    Alles klar. Vielen Dank für die ausführliche und verständliche Antwort. Bin sehr begeistert von dem Forum hier
  • Datum im einem JSON String

    Ungelöst
    3
    0 Stimmen
    3 Beiträge
    321 Aufrufe
    MicM
    @fuchs1978 Auf Objekteigenschaften kannst du mit der Punkt-Notation oder der Klammer-Notation zugreifen. Die Punkt-Notation ist limitiert bezüglich der erlaubten Zeichen der Objektnamen. Also im Fall der Fälle, wie bei dir, besser mit der Klammernotation arbeiten. Siehe z.B. hier: https://codeburst.io/javascript-quickie-dot-notation-vs-bracket-notation-333641c0f781 P.S. @paul53 war schneller mit der Antwort :-)
  • Gelöst: Auslösung zwischen 17:00 und 21:00

    Gelöst javascript
    22
    0 Stimmen
    22 Beiträge
    1k Aufrufe
    M
    @Paul53: Du hattest geschrieben : [image: 1571677313027-unbenannt2.jpg] Hab noch ein "180" gefunden. [image: 1571677349311-unbenannt1.jpg] Ich bekomme bei den geänderten Script folgende WARN Meldung: [image: 1571676989714-unbenannt.jpg] Gruß Michael
  • Vbus Resol Lan Adapter Fehlermeldungen

    Ungelöst
    1
    0 Stimmen
    1 Beiträge
    296 Aufrufe
    Niemand hat geantwortet
  • Get JSON from exec in Function - Solved!

    Gelöst
    3
    0 Stimmen
    3 Beiträge
    377 Aufrufe
    I
    Hi @paul53 danke Dir für das Feedback. Dann kann ich das nicht so bauen wie ich es mir vorgestellt habe. Das Substr kürzt mir den eigentlichen Response des curl ein, da hier auch noch der Header mit zurückgegeben wird. Daher schneide ich den Teil bis der ersten { - also dem Begin des JSONs - ab. Ich habe es in der Zwischenzeit als Workarround so umgebaut, das ich mit einem 60s Trigger die Kamera auslese und dann mit dem Callback in einen State abspeichere. Wenn ich die Werte brauche, kann ich diese als JSON aus dem State lesen und den gewünschten Parameter extrahieren... /* ============================================================================= > Ließt alle Parameter einer Kamera aus und gibt sie als JSON zurück ==============================================================================*/ on({id: 'VIS.82.Ticker_60s', change: "ne"}, function (f) { console.log("Read UniFi Video Cam's"); // Kamera Flur auslesen var fCameraID = myVideoCamFlur; var fCommand = "curl -i --url 'https://" + myVideoServer + "/api/2.0/camera/" + fCameraID + "/?apiKey=" + myVideoAPIKey + "' --header 'Content-Type: application/json' --header 'Accept: application/json' --insecure -X GET"; exec(fCommand, function(err, response, errmsg) { if(err) { console.log("Fehler in der Abfrage: " + errmsg); } else { setState('VIS.82.UniFi-Video.Flur.ParameterSet', response.substr(response.search("{"),response.length-response.search("{"))); } }); // Kamera Garten auslesen fCameraID = myVideoCamGarten; fCommand = "curl -i --url 'https://" + myVideoServer + "/api/2.0/camera/" + fCameraID + "/?apiKey=" + myVideoAPIKey + "' --header 'Content-Type: application/json' --header 'Accept: application/json' --insecure -X GET"; exec(fCommand, function(err, response, errmsg) { if(err) { console.log("Fehler in der Abfrage: " + errmsg); } else { setState('VIS.82.UniFi-Video.Garten.ParameterSet', response.substr(response.search("{"),response.length-response.search("{"))); } }); }); Auslesen kann ich dann zum Beispiel ob die Kamera gerade mit Bewegungserkennung aufnimmt mit: JSON.parse(getState('VIS.82.UniFi-Video.Flur.ParameterSet').val).data[0].recordingSettings.motionRecordEnabled;
  • Timer, Countdown

    Gesperrt Gelöst javascript
    7
    0 Stimmen
    7 Beiträge
    661 Aufrufe
    M
    Danke Paul super!!!!!
  • lightify

    Ungelöst
    5
    0 Stimmen
    5 Beiträge
    388 Aufrufe
    Volker123V
    Hallo, es handelt sich hier nur um einen Ausschnitt des Codes. Ich weiß schon, dass den Variablen Werte zu gewiesen werden müssen. Hier das Beispiel für die Zuweisung der grünen Farbe: pole_gruen=getState("lightify.1.7800AE00AA3EB07C.g"/*g*/).val; es werden Zahlen zwischen eins und 255 zugewiesen. Die Zuweisung funktioniert auch, dies kann man im Codefenster durch console.log(pole_gruen); überprüfen. Die Zuweisung timeout= setTimeout(function () { setState("lightify.1.7800AE00AA3EB07C.b"/b/, pole_blau); }, 6000); timeout= setTimeout(function () { setState("lightify.1.7800AE00AA3EB07C.g"/g/, pole_gruen); }, 6000); Habe ich aus dem Objektbaum. Eigentlich sollte es funktionieren. Ich weiß nur leider nicht warum es nicht funktioniert. Volker
  • [Frage]Loglevel info nicht mehr Standard?

    Gesperrt Gelöst javascript monitoring
    4
    0 Stimmen
    4 Beiträge
    531 Aufrufe
    P
    Danke! Gruß Pix
  • console etc. unbekannt

    4
    0 Stimmen
    4 Beiträge
    571 Aufrufe
    BBTownB
    @ErazorVIP schon mal auf GitHub geschaut ob es hierzu bereits ein issue gibt auf das Du vorten könntest, oder ansonsten ein entsprechendes angelegt?
  • VIS Bindung - HTML Escapen?

    javascript
    1
    0 Stimmen
    1 Beiträge
    307 Aufrufe
    Niemand hat geantwortet
  • Syntax Check im Editor markiert korrekte Syntax

    javascript
    1
    0 Stimmen
    1 Beiträge
    143 Aufrufe
    Niemand hat geantwortet
  • Skript tatsächlicher Wert

    javascript
    7
    0 Stimmen
    7 Beiträge
    551 Aufrufe
    Jey CeeJ
    Ich hab hier mal aufgeräumt, war ganz schön Unordentlich hier
  • Wert eines Objekts aus html schreiben

    8
    0 Stimmen
    8 Beiträge
    903 Aufrufe
    M
    Dieser Eintrag wurde gelöscht
  • Hilfe bei Javaskript Device Counter

    javascript
    24
    0 Stimmen
    24 Beiträge
    3k Aufrufe
    Lenny.CBL
    @Adnim, ich denke das wird noch eine andere Baustelle sein.
  • Gelöst: Script Fehler

    javascript
    19
    2
    0 Stimmen
    19 Beiträge
    653 Aufrufe
    M
    Danke klappt toll :-)
  • Telegram - Ausgabe als Ergebnispopup

    4
    2
    0 Stimmen
    4 Beiträge
    443 Aufrufe
    dslraserD
    @mirK ich weiß es nicht mehr genau, entweder war es was mit dem inline keyboard oder answer calbackquery. hier steht auch noch was https://forum.iobroker.net/topic/12042/telegram-inline-keyboard-gelöst ansonsten suchen und lesen. Hier die api https://core.telegram.org/api
  • Json aus Rest Api URL von Solaranalge

    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    L
    Könntest du mir bitte helfen wo ich die Schleife einbauen muss? Ich denke ich habe es gefunden. Aber wenn du noch mal drüber schauen würdest wär ich dankbar. Hier der aktuelle Code: //...Teil der Funktion readJson(urlDevices, function(err,json) { if(!err) { myJson = json; var arr = myJson.result.items; for(let i = 0; i < arr.length; i++) { if(arr[i].tagValues) { let tags = arr[i].tagValues; if(tags.PowerIn) { log(tags.PowerIn.value); setState(idDPowerIn ,tags.PowerIn.value); } if(tags.PowerSelfSupplied) { log(tags.PowerSelfSupplied.value); setState(idDPowerSelfSupplied ,tags.PowerSelfSupplied.value); } //...usw //der alte Code var urlValues = 'http://192.168.xxx.xxx/rest/kiwigrid/eps/powerValues'; var urlDevices = 'http://192.168.xxx.xxx/rest/kiwigrid/wizard/devices'; var path = "solarwatt."; var request = require("request"); var myJson = {}; //Values var idpowerACOut = path + "powerACOut"; var idpowerConsumed = path + "powerConsumed"; var idpowerProduced = path + "powerProduced"; var idpowerIn = path + "powerIn"; var idpowerOut = path + "powerOut"; createState(idpowerACOut, 0, { name: 'powerACOut aus', desc: 'xxxx', type: 'number', role: 'value'}); createState(idpowerConsumed, 0, { name: 'Gesamtverbrauch', desc: 'xxxx', type: 'number', role: 'value'}); createState(idpowerProduced, 0, { name: 'powerProduced', desc: 'xxxx', type: 'number', role: 'value'}); createState(idpowerIn, 0, { name: 'powerIn', desc: 'xxxx', type: 'number', role: 'value'}); createState(idpowerOut, 0, { name: 'powerOut', desc: 'xxxx', type: 'number', role: 'value'}); //Devices var idDPowerIn = path + "PowerInD"; var idDPowerSelfSupplied = path + "PowerSelfSupplied"; var idDPowerConsumedFromStorage = path + "PowerConsumedFromStorage"; var idDStateOfCharge = path + "StateOfCharge"; var idDPowerConsumedFromGrid = path + "PowerConsumedFromGrid"; var idDPowerBuffered = path + "PowerBuffered"; var idDPowerConsumedFromProducers = path + "PowerConsumedFromProducers"; createState(idDPowerSelfSupplied, 0, { name: 'Eigenverbrauch', desc: 'xxxx', type: 'number', role: 'value' }); createState(idDPowerIn, 0, { name: 'Stromzukauf', desc: 'xxxx', type: 'number', role: 'value' }); createState(idDPowerConsumedFromStorage, 0, { name: 'Batterieversorgung', desc: 'xxxx', type: 'number', role: 'value' }); createState(idDStateOfCharge, 0, { name: 'Ladestand', desc: 'xxxx', type: 'number', role: 'value' }); createState(idDPowerConsumedFromGrid, 0, { name: 'Netzbezug', desc: 'xxxx', type: 'number', role: 'value' }); createState(idDPowerBuffered, 0, { name: 'Batterieaufladung', desc: 'xxxx', type: 'number', role: 'value' }); createState(idDPowerConsumedFromProducers, 0, { name: 'Eigenverbrauch', desc: 'xxxx', type: 'number', role: 'value' }); function parseJson(text) { if (text === "") return {}; try { json = JSON.parse(text); } catch (ex) { json = {};} if(!json) json = {}; return json; } function readJson(url, callback) { request(url, function (err, state, body){ if (body) { var json = parseJson(body); callback(null, json); } else { var error = "(" + err + ") ERROR bei Abfrage von: " + url; log(error, "warn"); callback(error, null);} });} function main() { readJson(urlValues, function(err,json) { if(!err) { myJson = json; log("powerACOut: " + myJson[0].powerACOut,"info"); log("powerConsumed: " + myJson[1].powerConsumed,"info"); log("powerProduced: " + myJson[1].powerProduced,"info"); log("powerIn: " + myJson[1].powerIn,"info"); log("powerOut: " + myJson[1].powerOut,"info"); setState(idpowerACOut ,parseInt(myJson[0].powerACOut)); setState(idpowerConsumed ,parseInt(myJson[1].powerConsumed)); setState(idpowerProduced ,parseInt(myJson[1].powerProduced)); setState(idpowerIn ,parseInt(myJson[1].powerIn)); setState(idpowerOut ,parseInt(myJson[1].powerOut)); } else { log("Error reading JSON from solarwatt. No data!","warn"); myJson = {}; } }); readJson(urlDevices, function(err,json) { if(!err) { myJson = json; log("PowerIn: " + myJson.result.items[2].tagValues.PowerIn.value,"info"); setState(idDPowerIn ,myJson.result.items[2].tagValues.PowerIn.value); log("PowerSelfSupplied: " + myJson.result.items[5].tagValues.PowerSelfSupplied.value,"info"); setState(idDPowerSelfSupplied ,myJson.result.items[5].tagValues.PowerSelfSupplied.value); log("PowerConsumedFromStorage: " + myJson.result.items[5].tagValues.PowerConsumedFromStorage.value,"info"); setState(idDPowerConsumedFromStorage ,myJson.result.items[5].tagValues.PowerConsumedFromStorage.value); log("StateOfCharge: " + myJson.result.items[10].tagValues.StateOfCharge.value,"info"); setState(idDStateOfCharge ,myJson.result.items[10].tagValues.StateOfCharge.value); log("PowerConsumedFromGrid: " + myJson.result.items[5].tagValues.PowerConsumedFromGrid.value,"info"); setState(idDPowerConsumedFromGrid ,myJson.result.items[5].tagValues.PowerConsumedFromGrid.value); log("PowerBuffered: " + myJson.result.items[5].tagValues.PowerBuffered.value,"info"); setState(idDPowerBuffered ,myJson.result.items[5].tagValues.PowerBuffered.value); log("PowerConsumedFromProducers: " + myJson.result.items[5].tagValues.PowerConsumedFromProducers.value,"info"); setState(idDPowerConsumedFromProducers ,myJson.result.items[5].tagValues.PowerConsumedFromProducers.value); } else { log("Error reading JSON from solarwatt. No data!","warn"); myJson = {}; } }); }
  • Unifi WLAN Script

    Gesperrt
    380
    4
    0 Stimmen
    380 Beiträge
    69k Aufrufe
    DutchmanD
    ich schließen diesen post jetzt mal sonst kommt alles noch durcheinander, bitte hier weitermachen : https://forum.iobroker.net/topic/25066/unifi-wlan-script-2-mit-anwesenheitskontrolle

574

Online

32.8k

Benutzer

82.9k

Themen

1.3m

Beiträge