Skip to content

JavaScript

2.5k Topics 49.8k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Gelöst: Datenpunkte kopieren

    3
    0 Votes
    3 Posts
    760 Views
    B
    Hey Danke! Das hat geholfen. Falls es jemand mal benötigt (ja es ist sicherlich nicht das Optimum, aber es hat mir gereicht ) : // Alle Beleuchtungsvariablen aus MODBUS-ADAPTER für Javascript erstellen //copyObjects('modbus.0.coils','javascript.0.variablen.beleuchtung'); // kopiert alle Datenpunktnamen eines Quellordners in einen Zielordner (mit Änderung des Types usw.) function copyObjects(source, destination){ var cacheSelector = $('state[id=' + source + '.*]'); cacheSelector.each(function(obj, i) { createState(destination + '.' + obj.replace(source + '.', ''), { name: getObject(obj).common.name, desc: '', type: 'boolean', role: 'switch', read: true, write: true, def: false } ); }); } Grüße Stephan
  • [gelöst] Online Zeit per TR-064 berechnen und anzeigen

    blockly
    23
    0 Votes
    23 Posts
    5k Views
    NegaleinN
    @paul53 sagte in [gelöst] Online Zeit per TR-064 berechnen und anzeigen: @Negalein sagte: DP wird nicht angelegt. Ist im Skript auch nicht vorgesehen. Lege ihn manuell im Reiter "Objekte" an: javascript.0 selektieren und Datenpunkt hinzufügen, Name: uptime.online-router, Typ: Zeichenkette Danke, funktioniert! Ich seh zwar nur wielange die Fritz mit dem Postrouter verbunden ist, aber das sind die Nachteile wenn mann vom Anbieter keinen vernünftigen Router bekommt und man was gescheites dahinter hängen muss.
  • [gelöst]js-typeof-befehl - was ist falsch daran?

    javascript
    5
    1
    0 Votes
    5 Posts
    362 Views
    liv-in-skyL
    @AlCalzone habe es mal so versucht - jetzt scheint es zu gehen - habe abfragen getrennt var cacheSelectorState = $('state[state.id=controll-own.0.*]'); cacheSelectorState.each(function (id, i) { var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; /* if(typeof val1 === "string" ) {*/ /*if( val1.indexOf('bespiel') == -1 && val1.indexOf('class') == -1) { && ! val1.includes('beispiel') && ! val1.includes('class') */ if( typeof val1 === "string") { zk = "setState('"+id+"', '"+val1+"');\n"; log(id + " -- " + val1 + " ----------- " + val1.includes('span')); if (val1.includes('span') || val1.includes('class')) {log("------------------------------------------------------------- span oder classn enthalten "+ id);} else { fs.appendFileSync(datei + "-controll-own0-" + logdate + "-"+ logtime + ".txt", zk);}} else { log("KEIN STRING " +id + " -- " + val1); fs.appendFileSync(datei + "-controll-own0-" + logdate + "-"+ logtime + ".txt", zk);} }; }); irgendwie habe ich da was falsches gemacht? f(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')
  • Best practise für Javascript

    5
    0 Votes
    5 Posts
    838 Views
    I
    Hi @paul53 said in Best practise für Javascript: RegExp für val: im Trigger funktioniert ? Leider nicht. Sehr schade eigentlich. Aber zumindest sind meine Skripte jetzt viel übersichtlicher. Gruß Arne
  • [gelöst] You are assigning a undefined to the

    javascript
    11
    2
    0 Votes
    11 Posts
    830 Views
    S
    @paul53 Hallo Paul, meine Frau fragt gerade ob Du eigentlich manchmal denkst was für Vollpfosten hier fragen .... Ich war eben noch am schreiben als Deine Antwort kam, und wollte Dich fragen ob es sowas wie Untervariablen in Javascript gibt. Ich hatte mir die Daten nochmal mit der http Adresse angesehen und da ist mir auch aufgefallen das Volume in der "root" ist, artist oder stationName aber nicht... Geht. Vielen lieben Dank.
  • [gelöst] mehrere Bedingungen

    Solved
    13
    0 Votes
    13 Posts
    726 Views
    S
    @paul53 on(/^javascript\.0\.sonos\.(stlauter|stleiser|wlauter|wleiser)$/, function(obj) { funktioniert perfekt. Vielen lieben Dank. Frag mich immer wieder wer sich so Schreibweisen ausgedacht hat, und wer sich das alles merken soll.
  • Frage zu Telegram Buttons

    Solved javascript
    6
    0 Votes
    6 Posts
    1k Views
    M
    danke für eure hilfe. habs nun doch mit blockly gelöst. infos dazu habe ich auch hier gefunden: https://www.youtube.com/watch?v=oPOxA8sTCxU
  • Letzte Aktualisierung auslesen

    3
    0 Votes
    3 Posts
    467 Views
    B
    👍 Danke.
  • script restartet java instanz -wie richtig ?

    javascript
    2
    0 Votes
    2 Posts
    196 Views
    liv-in-skyL
    hab mal client.destroy hinzu gefügt - schaut dann besser aus var net = require('net'); var client = new net.Socket(); client.connect(1234, '192.168.178.36', function() { // client.setEncoding('utf-8'); console.log(`sending to server: a.random.test`) client.write('\x53\x5a\x30\x30\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x01\x03\x01\xcf\x35'); //client.write('test'); client.destroy(); });
  • Frage zu Fensterskript

    19
    0 Votes
    19 Posts
    1k Views
    paul53P
    @martinschm sagte: Kann ich nicht eine Subscription auf die Objekte einer Aufzählung machen? Nein, außer mit einem Selector. Subscriben kann man nur Datenpunkte, Deine Aufzählungen enthalten aber Channels. Wie ich weiter oben schon mal geschrieben habe, kannst Du es mit einem veränderten Selector versuchen. $('channel[state.id=*.state](functions=fenster)').on(countOpenWindowsDoors); $('channel[state.id=*.state](functions=tueren)').on(countOpenWindowsDoors);
  • getObject();

    Moved javascript
    13
    0 Votes
    13 Posts
    2k Views
    M
    @paul53 sagte in getObject();: function listEnumDevices() { log("Liste der Fenster und Status:"); var windows = getObject('enum.functions.windowstatus').common.members; var txt = ''; for(let i = 0; i < windows.length; i++) { var Status = getState(windows[i]).val; log(windows[i] + " " + Status); if(Status) txt = txt + windows[i] + ',<br>'; } if(txt.length == 0) txt = 'Alle Fenster geschlossen'; setState('Datenpunkte.0.StatusWindowOpenText', txt, true ); } Super, vielen Dank!
  • Gelöst: IF Logik gesucht

    6
    0 Votes
    6 Posts
    643 Views
    paul53P
    @BigStephan sagte: Habs mit der verschachtelten IF Funktion hinbekommen! Dann markiere bitte das Thema in der Überschrift als [gelöst].
  • In Javascript Icon hinzufügen?

    5
    0 Votes
    5 Posts
    820 Views
    4
    @Glasfaser genau so... leider bin ich zu unversiert dies durchzuführen... Fande die Übersicht echt cool aber dafür fehlen mir einfach sämtliche Javascript Kenntnisse. Ich wollte jetzt auch nicht extra nur wegen dem Info Menu das Telegram Menu installieren.
  • Datenpunkte triggern sich gegenseitig

    4
    0 Votes
    4 Posts
    703 Views
    paul53P
    @Zeebo sagte: durch die Änderungen der anderen Datenpunkte diese ebenfalls triggern und somit findet das kein Ende. Das kann man mit fromNe in jedem Trigger verhindern. Hier für den ersten Trigger: const js = 'system.adapter.javascript.0'; on({id: dp_r, change: "ne", fromNe: js}, function (obj) {
  • Trigger (on id...) auf ganzen Datenpunktordner

    16
    0 Votes
    16 Posts
    2k Views
    B
    Also die Daten liegen so vor dass sie durch die Funktion umgewandelt werden. Das Objekt was die Funktion zurückliefert enthält die Daten (val.Stunde enthält den im iobroker Objekte eingetragenen Wert, Minute und Funktion sind auch enthalten). Muster dort ist: Stunde:10,Minute:30,Funktion:1 Es könnte natürlich sein dass die später nach der Wandlung enthaltenen Strings Probleme machen, aber eine Fehlermeldung gibt beim Anlegen des Schedule zumindest nicht (Int erwartet oder ähnliches). Die Arrays werden zu Anfang des Scripts genau so definiert wie Du weiter oben als Beispiel gezeigt hattest....das hier eben war nur der Auszug mit der ON Funktion.
  • Türsensor, Text2command und Telegram

    18
    0 Votes
    18 Posts
    2k Views
    B
    hab herausgefunden
  • Cannot find name 'require'

    3
    0 Votes
    3 Posts
    701 Views
    Michael RomanerM
    Danke für die Hilfe, d.h. der Editor hat den Bug. Script sollte aber laufen.
  • Wie im script für Objekte Variablen verwenden

    3
    0 Votes
    3 Posts
    538 Views
    cbundC
    @cash Danke. Genau das meinte ich. Habe gerade erst mit Javascript begonnen.
  • Pfadangabe zu einem NAS-Ordner unter Linux???

    1
    0 Votes
    1 Posts
    287 Views
    No one has replied
  • [Vorlage] Gartenbewässerung mit 3 Ventilen

    1
    0 Votes
    1 Posts
    207 Views
    No one has replied

371

Online

33.0k

Users

83.6k

Topics

1.3m

Posts