Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.6k Beiträge

NEWS

  • Skript lässt Javascript Adapter neustarten...

    2
    0 Stimmen
    2 Beiträge
    249 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
    837 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
    174 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
    792 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
    185 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
    304 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
    360 Aufrufe
    Niemand hat geantwortet
  • javascripte generieren

    javascript
    10
    0 Stimmen
    10 Beiträge
    706 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
    455 Aufrufe
    H
    @mickym Danke war schon am verzweifeln.
  • [Skript]Covid 19: 7 Tage Werte aller Landkreise

    56
    1
    5 Stimmen
    56 Beiträge
    7k 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
    222 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
    K
    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
    807 Aufrufe
    H
    @paul53 das funktioniert mega, vielen Dank! :)
  • [gelöst]Wie sende ich aus JavaScript einen HTTP Befehl

    10
    0 Stimmen
    10 Beiträge
    798 Aufrufe
    S
    @amg_666 Mache ich
  • [Suche] Javascript das eine Tabelle im JSON ausgibt

    39
    0 Stimmen
    39 Beiträge
    3k Aufrufe
    liv-in-skyL
    @quorle warum baust du die anleitung nicht nach ? da scheint doch alles drin zu sein es gibt auch noch ein script für offene fenster im forum sorry - eigentlich habe ich nicht vor, dass alles nochmal nachzubauen - ich nutze es eh nicht - ich habe dir bis zur liste geholfen - mir wird das jetzt etwas zu viel. vielleicht findet sich jmd anders
  • ioBroker Szenen vs Alexa Routinen vs Hue Szenen

    1
    0 Stimmen
    1 Beiträge
    209 Aufrufe
    Niemand hat geantwortet
  • DoorBird API: Update Schedule mit Javascript

    2
    1
    0 Stimmen
    2 Beiträge
    207 Aufrufe
    SchmakusS
    Keine Doorbird Anwender hier?
  • Problem mit getState()

    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    T
    @psims Ich würde, um Fehler in Zukunft auszuschließen(späteres editieren), folgende Variante bevorzugen: // Setze Alarmzustand aktiv STATE_ALARM_ZUSTAND = true; setState('0_userdata.0.Alarmanlage.Alarm_Zustand', STATE_ALARM_ZUSTAND); Desweiteren würde ich innerhalb des If Blocks nur die Variable verändern und hinter diesem den State setzten.
  • [Gelöst]Alias mit Script erstellen - Button

    blockly communication javascript
    21
    0 Stimmen
    21 Beiträge
    811 Aufrufe
    WszeneW
    @paul53 OK danke Dir So funktioniert es Da werde ich jetzt erstmal all meine Aliase die als Button sind neu anlegen

734

Online

32.5k

Benutzer

81.7k

Themen

1.3m

Beiträge