Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 49.1k Beiträge

NEWS

  • require(....path_to_json)-Frage

    6
    0 Stimmen
    6 Beiträge
    493 Aufrufe
    Dominic ReberD
    @unclesam Danke für die Antwort, dann schreib ichs direkt ins skript rein.
  • ARRAY auswerten

    3
    0 Stimmen
    3 Beiträge
    396 Aufrufe
    OliverIOO
    @pat oder noch kürzer: Every prüft ob alle Elemente eine Bedingung erfüllen und gibt dann true oder false aus. [1,2,3,4,5,6,7,8,9,10].every(el => el >= 10 ) https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/every Es gibt dann noch some, welches prüft, ob mindestens ein Element eine Bedingung erfüllt.
  • KNX MDT Dimmer javascript zur einbindung in alexa

    1
    0 Stimmen
    1 Beiträge
    237 Aufrufe
    Niemand hat geantwortet
  • Selector für Objekt vom type adapter

    6
    1
    0 Stimmen
    6 Beiträge
    593 Aufrufe
    apollon77A
    @scrounger Mach doch mal :-) Möglich ist es sicher
  • Kann ScriptEngine Adapter nicht installieren

    21
    0 Stimmen
    21 Beiträge
    1k Aufrufe
    drdeocD
    @homoran Naja, Dank der Anleitung vom Thomas oben. Habe node12 installier.
  • Skript lässt Javascript Adapter neustarten...

    2
    0 Stimmen
    2 Beiträge
    265 Aufrufe
    Dominic ReberD
    @dominic-reber Kann ich irgendwie das funktionierende Skript wo hinkopieren und aus dem IoBroker-Javascript-Script starten?
  • Vorlage: Pulsecounter (stall.biz) per JSON auslesen

    javascript monitoring template
    3
    1
    1 Stimmen
    3 Beiträge
    884 Aufrufe
    G
    @crunchip @crunchip said in Vorlage: Pulsecounter (stall.biz) per JSON auslesen: @GrillKoenig sagte in Vorlage: Pulsecounter (stall.biz) per JSON auslesen: Da ich noch nichts vergleichbares hier im Forum gefunden habe Was meinst du mit vergleichbares? Ein universelles JavaScript, welches diese Daten 1:1 übernimmt, ohne das man die Datenpunkte manuell zuweisen muss Ich hol mir die Daten direkt mittels Adapter. Stimmt, den wiffi-wz gibt es ebenfalls. Der arbeitet aber nicht mit meinem "Gradmesser" zusammen. Das Script hier oben benötigt dafür nur die IP und eine Anpassung des Prefix. Ich hätte also vielleicht nicht konkret auf den Pulsecounter eingehen sollen, sondern auf das "allgemeine JSON Format" der Produkte von stall.biz. ;) Grüße Kai
  • Javascript: Zeittrigger löst nicht/manchmal aus

    3
    4
    0 Stimmen
    3 Beiträge
    181 Aufrufe
    C
    @csuser Habe das Problem lösen können. Da der Pi einen Tag vorher aufgesetzt wurde, war die Uhrzeit 1 Stunde hinterher. Daraufhin habe ich wie oben beschrieben die Zeitzone des Pi´s aktuallisiert. Wie sich herausgestellt hat wurde die Zeit im IOBroker nicht aktuallisiert. Nach einem Reboot stimmt auch die Zeit des IOBrokers und die Trigger lösen entsprechend aus.
  • javascript subscribe mit parameter

    9
    0 Stimmen
    9 Beiträge
    860 Aufrufe
    I
    Hi @ll, wo das nenne ich mal schnelle Reaktion und gleich so viele. Auf die Idee in der anonymen Funktion einfach meine Funktion aufzurufen hätte ich auch selber kommen können :disappointed:. Das ich über obj ja auch an den state dran kommen wir mir nicht so bewusst (muss in meinen anderen Skripten schauen ob ich das da auch verwenden kann). Ich mache das jetzt erstmal so. function window_change(thermostat, value){ for (let i of thermostat){ setState(i +'.mode',value); } } on({ id: 'maxcul.0.NEQ1152113.isOpen', change: 'any' }, function (obj) { window_change(['maxcul.0.NEQ1255028'],(obj.state.val?6:0)) }); Vielleicht ändere ich das noch mal so dass es automatisch durch die enums erzeugt wird jedoch glaube ich das eine Änderung (neues Thermostat oder Fenstersensor) nicht so häufig passiert. vielen dank noch mal für die vielen hilfreichen antworten. Gruß Arne
  • [gelöst] Selektor Definition mit functions= geht nicht

    javascript
    3
    4
    0 Stimmen
    3 Beiträge
    192 Aufrufe
    M
    @paul53 sagte in Selektor Definition mit functions= geht nicht: var Sel = $('hue-extended.0.*.on(functions=light)'); Beide Varianten funktionieren. Vielen Dank.
  • Min. und Max Wert

    4
    1
    0 Stimmen
    4 Beiträge
    311 Aufrufe
    B
    @bloop Hab mich jetzt weiter gespielt und das Problem gefunden: Bei den Datapoints muss der Datenbankname vorgestellt werden. sendTo('sql.0', 'query', 'SELECT * FROM iobroker.datapoints WHERE name = \'' + id + '\'', GetResults); sowohl in der SQLAbfrage als auch im GetResults sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum); sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum); Ab und zu hilft ne Nacht drüber schlafen auch :grin: @fastfoot Herzlichen Dank nochmal!
  • Senden und Empfangen per USB an Arduino

    1
    1
    0 Stimmen
    1 Beiträge
    386 Aufrufe
    Niemand hat geantwortet
  • javascripte generieren

    javascript
    10
    0 Stimmen
    10 Beiträge
    788 Aufrufe
    GoerschG
    @UncleSam :) ... und bezüglich Speicher und Geschwindigkeit brauchen wir uns keine sorgen zu machen ... 12 Monate später: äh, ich brauch da noch mal x Vcores in meiner VM und ein bisschen mehr RAM wäre auch gut ... oh, der Server ist am Limit ... ja, dann muss ich doch mal Anfangen über meine Code nachzudenken ... Mir ist eine andere Idee gekommen. Ich lass den javascript Code extern generieren und mach dann Copy&Paste. Das sollte erst mal gehen.
  • Befehl auf anderen Server absetzten

    6
    0 Stimmen
    6 Beiträge
    523 Aufrufe
    H
    @mickym Danke war schon am verzweifeln.
  • [Skript]Covid 19: 7 Tage Werte aller Landkreise

    56
    1
    4 Stimmen
    56 Beiträge
    8k Aufrufe
    FeuersturmF
    @novregen Ja. Ich hab bei mir auch die Version " 21.12.2020 - Fix: Aufruf von setSchedules() aus main() entfernt - Ampel angepasst" im Einsatz. Du findest das aktuelle Skript im ersten Beitrag.
  • Meine Skriptesammlung

    14
    0 Stimmen
    14 Beiträge
    3k Aufrufe
    A
    @lschulze said in Meine Skriptesammlung: IKEA E1744 SYMFOISK Hallo, Dein Skript bildet eigentlich genau das ab, was ich möchte. Habe mir also die Symfonisk Remote geholt und eingebunden. Insgesamt entspricht meine Konfiguration auch Deiner, also Homematic, Shelly, Zigbee, Chromecast. Habe nun Dein Skript genommen und die Objekte entsprechend angepasst. Das Skript wird gestartet und laut Log gibt es auch keinen Fehler: javascript.0 2021-01-23 17:55:48.399 info (29768) script.js.Media.Chromecast_: registered 5 subscriptions and 0 schedules Allerdings passiert überhaupt nichts, wenn ich etwas an der Remote mache. Habe ich etwas vergessen? Ich bin mit Skripten nicht betraut, nur mit ein wenig Blockly. Wenn Du mir weiterhelfen könntest, wäre das klasse!
  • math library median average

    javascript
    2
    0 Stimmen
    2 Beiträge
    243 Aufrufe
    UncleSamU
    @hanss Alle Module findest du unter npmjs.com. Hier das erste, was ich gefunden habe: https://www.npmjs.com/package/taira
  • [gelöst] JSON-Tabelle in Datenobjekte auflösen (Javascript)

    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    KalaNagHTDK
    Hier nochmal das gesamte Thema auf einen Blick: Mein Adapter liefert im Objekt 'mqtt.0.espaltherma.ATTR' folgenden JSON-String: [{"Outdoor air temp.(R1T)":"11.500000","Discharge pipe temp.":"35.000000","Heat exchanger mid-temp.":"8.500000","INV primary current (A)":"1.300000","Voltage (N-phase) (V)":"238.000000","INV frequency (rps)":"12.000000","Fan 2 (step)":"68.000000","Expansion valve (pls)":"207.000000","BUH Step1":"OFF","BUH Step2":"OFF","Leaving water temp. before BUH (R1T)":"25.700000","Leaving water temp. after BUH (R2T)":"26.000000","Refrig. Temp. liquid side (R3T)":"25.700000","Inlet water temp.(R4T)":"23.800000","DHW tank temp. (R5T)":"45.800000","Ext. indoor ambient sensor (R6T)":"10.700000","Flow sensor (l/min)":"14.300000","Water pressure":"0.000000","Water pump signal (0:max-100:stop)":"49.000000","Pressure Sensor":"16.100000"}] Ich will daraus einzelne Objekte machen, die ich weiter verwenden kann. Die Experten @paul53 und @fasfoot haben die entscheidenden Hinweise gegeben. Sehr wichtig war die Erkenntnis, dass das oben gezeigte JSON-Objekt keine Zahlen sondern Strings liefert. Hier als Beispiel das funktionierende Script mit zwei Daten aus dem JSON-String. Es werden die Objekte "Vorlauf" und "Rücklauf" mit ihren jeweiligen Temperaturwerten erzeugt und im Verzeichnis "0_userdata.0" abgelegt: const idJson = 'mqtt.0.espaltherma.ATTR'; const path = '0_userdata.0.'; on(idJson, function(dp){ let obj = JSON.parse(dp.state.val)[0]; let id = path + 'Vorlauf'; if(existsState(id)) setState(id, parseFloat(obj['Leaving water temp. before BUH (R1T)']), true); else createState(id, parseFloat(obj['Leaving water temp. before BUH (R1T)']), {type: 'number', name: 'Vorlauf', role: 'value', unit: '°C'}); id = path + 'Rücklauf'; if(existsState(id)) setState(id, parseFloat(obj['Inlet water temp.(R4T)']), true); else createState(id, parseFloat(obj['Inlet water temp.(R4T)']), {type: 'number', name: 'Rücklauf', role: 'value', unit: '°C'}); })
  • JavaScript beenden mittels anderem Skript?

    12
    2
    0 Stimmen
    12 Beiträge
    915 Aufrufe
    H
    @paul53 das funktioniert mega, vielen Dank! :)
  • [gelöst]Wie sende ich aus JavaScript einen HTTP Befehl

    10
    0 Stimmen
    10 Beiträge
    825 Aufrufe
    S
    @amg_666 Mache ich

486

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge