Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 49.1k Beiträge

NEWS

  • Tasmota Taster und NSPanel Relais

    10
    0 Stimmen
    10 Beiträge
    942 Aufrufe
    V
    @marc-berg Irgendwie hätte ich da auch selber drauf kommen können. Es funktioniert. Vielen lieben Dank und schönen Wochenanfang an dich! Gruß Andy
  • Errormeldungen abfangen

    13
    0 Stimmen
    13 Beiträge
    422 Aufrufe
    liv-in-skyL
    @homoran hatte ich schon mal woanders erwähnt: es könnte sein, dass nach einem error eines scriptes und sogar nach dem stoppen des scriptes teile davon noch aktiv bleiben - sowas, wie ein zombie-script - startet man das script dann nochmal, läuft das parallel(doppelt/evtl. dreifach...) . passiert das öfters, kann es schlimmer werden BIS man den javascript adapter oder den iob neustartet - das könnte erklären, warum es jetzt erstmal keine fehler mehr gibt is nur so eine vermutung und ein versuch zur erklärung
  • Probleme mit JS Script nach JS-Adapter Update > 7.9.0

    31
    0 Stimmen
    31 Beiträge
    3k Aufrufe
    Z
    @mcm57 Nein nehme ich nicht persönlich. Ich lerne dadurch ja dazu. Ich habe nur zwei reine JS Scripte. Der Rest ist mit Blockly erstellt worden und da kann ich Änderungen leichter vornehmen. Ihr habt mir sehr weitergeholfen. Vielen Dank dafür. Es läuft wieder
  • Cron Job alle 140 sek

    28
    0 Stimmen
    28 Beiträge
    2k Aufrufe
    F
    @felsdrache Manchmal ist man ja blind wenn die Lösung auf der Hand liegt. Meine Lösung ich lasse mein Hauptskript durchlaufen und beende es am Ende. Mit einem zweiten Skript überwache ich das erste und starte es eine Sekunde nach Beendigung. Das müsste doch funktionieren
  • Guntamatic Biostar Pelletheizung auslesen

    2
    0 Stimmen
    2 Beiträge
    406 Aufrufe
    E
    @goerdy Hi :) Das ist wirklich interessant Hast du deinen Code in der Zwischenzeit geändert? Oder hast du einen Adapter gefunden? Bist du mit deiner Heizung zufrieden? :) Danke!!!
  • echart - Zeit über Script einstellen

    2
    2
    0 Stimmen
    2 Beiträge
    210 Aufrufe
    M
    @spassbremse https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/system-effektprog./echartschange https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/system-effektprog./echartschangeselect
  • SMA Wechselrichter in ioBroker einbinden

    7
    0 Stimmen
    7 Beiträge
    652 Aufrufe
    D
    @arteck sagte in SMA Wechselrichter in ioBroker einbinden: kannst du dir die Parameter sparen.. haben ehh keine wirkung Danke Dir - hab die ehrlich gesagt auch nie näher angeschaut / überprüft ;) @arteck sagte in SMA Wechselrichter in ioBroker einbinden: ich hätte da noch prognosebasiertes Laden und tibber Steuerung https://github.com/arteck/SMA_forecast_charging/tree/master/SUNNY_TRIPOWER _10.0_SE Interessantes Projekt - Haben zwar kein Tibber und Co., werde mir die Skripte aber mal die Tage anschauen.
  • Grafana Heatmap für Autofahrten

    javascript
    6
    0 Stimmen
    6 Beiträge
    629 Aufrufe
    M
    @haus-automatisierung Ich hab es mal versucht. mit der neusten Version gibt es keine Fehlermeldung mehr, aber es wird nichts in die Influxdb geschrieben. Ich vermute, dass der Parameter "--data-binary" von dem curl Kommando nicht richtig "übersetzt" wurde.
  • Klassen Import mit jQuery möglich?

    9
    0 Stimmen
    9 Beiträge
    569 Aufrufe
    haus-automatisierungH
    @wolfgangfb sagte in Klassen Import mit jQuery möglich?: Besonders nervend ist, dass bei jeder Änderung einer zu importierenden Datei der JS Adapter neu gestartet werden muss weil sonst die Änderungen nicht übernommen werde, gibt es da eine Abhilfe? Naja - das Vorgehen ist ja so auch irgendwo dokumentiert oder empfohlen. Eigentlich müsste es aber reichen, das entsprechende Script neuzustarten (dann wird ja das require() erneut ausgeführt). Seit Version v7.11.1 gibt es defaultDataDir in der Sandbox. Das zeigt auf /opt/iobroker/iobroker-data/ (oder wo auch immer der ioBroker läuft). Damit könnte man den Pfad leichter zusammenbauen. Aber wie gesagt: Alles, was Du da versuchst, ist nicht empfohlen oder offiziell unterstützt. Warum die Klassen nicht als eigenes Script in global ablegen und dann verwenden?
  • Wie kann ich in TypeScript "Variablen zusammenfassen"

    9
    0 Stimmen
    9 Beiträge
    769 Aufrufe
    M
    @haus-automatisierung ja da hab ich wohl noch viel zu lernen :)
  • Sonnenwinkel berechnen

    17
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    P
    @bahnuhr Die Leistung je Strang bekomme ich schon jetzt mittels Modbus vom Wechselrichter und kann in den Objekten abgeholt werden. Wie bekommt man die Daten von Azimuth in VIS und kann diese dann im Halbkreis darstellen.
  • Regenbogen Script

    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    leovandavartL
    @asgothian okay weiß ich erst mal bescheid
  • Scheduling / Timing in Java Script

    7
    0 Stimmen
    7 Beiträge
    510 Aufrufe
    O
    @paul53 , hat geklappt. Danke. Ich musste noch ein paar Variablen umbauen und mit Denkfehlern kämpfen, aber jetzt funktioniert alles so wie es soll. Gruß
  • Husqvarna - Entfernung zur Ladestation

    1
    0 Stimmen
    1 Beiträge
    149 Aufrufe
    Niemand hat geantwortet
  • Zerlegen eines JSON mit bestätigen Werten?

    4
    0 Stimmen
    4 Beiträge
    324 Aufrufe
    hg6806H
    Danke euch. Hier funktioniert es: //Datenpunkt mit MQTT-Informationen im json-Format auslesen json = (function () { try {return JSON.parse(getState("mqtt.0.home.OpenMQTTGateway_ESP32_BLE.BTtoMQTT.A4C1381BD71A").val);} catch(e) {return {};}})(); //json auslesen und Datenpunkte für Temperatur, Luftfeuchte und Batterie setState("0_userdata.0.OpenMQTTGateway_BLE.A4C1381BD71A.Temperature", getAttr(json, 'tempc'),true); setState("0_userdata.0.OpenMQTTGateway_BLE.A4C1381BD71A.Humidity", getAttr(json, 'hum'),true); setState("0_userdata.0.OpenMQTTGateway_BLE.A4C1381BD71A.Battery", getAttr(json, 'batt')); setState("0_userdata.0.OpenMQTTGateway_BLE.A4C1381BD71A.RSSI", getAttr(json, 'rssi')); setState("0_userdata.0.OpenMQTTGateway_BLE.A4C1381BD71A.Volt", getAttr(json, 'volt')); //Log Ausgabe als return der Funktion return "MQTT MI_A4C1381BD71A aktualisiert"; Aber hier leider nicht: //Datenpunkt mit MQTT-Informationen im json-Format auslesen json = (function () { try {return JSON.parse(getState("mqtt.0.home.OpenMQTTGateway_ESP32_BLE.BTtoMQTT.3F59C86390D1").val);} catch(e) {return {};}})(); //json auslesen und Datenpunkte für Temperatur, Luftfeuchte und Batterie setState("0_userdata.0.OpenMQTTGateway_BLE.3F59C86390D1.Temperature", getAttr(json, 'tempc'),true); setState("0_userdata.0.OpenMQTTGateway_BLE.3F59C86390D1.Humidity", getAttr(json, 'hum'),true); setState("0_userdata.0.OpenMQTTGateway_BLE.3F59C86390D1.Battery", getAttr(json, 'batt')); setState("0_userdata.0.OpenMQTTGateway_BLE.3F59C86390D1.RSSI", getAttr(json, 'rssi')); //Log Ausgabe als return der Funktion return "MQTT MI_3F59C86390D1 aktualisiert"; da kommt dann jeweils ein {"ack":true} EDIT: Manchmal kommt beim letzteren ein Wert, manchmal das "{"ack":true}"
  • Modbus <-> ioBr <-> Homematic

    2
    0 Stimmen
    2 Beiträge
    122 Aufrufe
    paul53P
    @stef76fd Bau eine Sperre ein: on(id, function(dp) { if(dp.state.c != scriptName) { // Wert weiter geben } }); Mit der Variablen scriptName funktioniert es nur, wenn die Trigger alle im gleichen Skript sind.
  • Regex Vereinfachung gesucht

    9
    0 Stimmen
    9 Beiträge
    438 Aufrufe
    W
    @fastfoot sagte in Regex Vereinfachung gesucht: @wolfgangfb sagte in Regex Vereinfachung gesucht: Ich möchte die führeden Nullen aber nur ganz vorne wegbekommen, 20 Uhr und 5 Sekunden sieht meiner Meinung nach als "20:0:5" nicht wie eine Zeit aus, während 5 Minuten 7 Sekunden meiner Meinung nach durchaus wie 5:07 aussehen können. sieht für mich aus wie 5Std 7Min. :-) In dem Fall werden die Sekunden runtergezählt, da sieht man dann schon, dass es keine 5 Stunden sind. ich formatiere grundsätzlich ss:mm:ss ich nehme an Du meinst hh:mm:ss dann sieht das auch iuntereinander geschrieben richtig aus. Aber sei's drum: log(formatDate(sec,'hh:mm:ss').replace(/^(0+:|0)+/,'')) Super, das ist die Lösung, die ich gesucht habe.
  • On event/trigger in JavaScript Klasse verwenden

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    678 Aufrufe
    W
    @csuser Das Thema ist zwar schon ziemlich alt, weil ich aber selbst vor diesem Problem stand hier die Lösung wie man Trigger in einer Klasse realisiert: Man muss das in eine Methode auslagern (die man aber im constructor ausführen kann) class MyClass{ constructor(){ this.SetUpTrigger(); } SetUpTrigger(){ on("javascript.0.Bla.Blub", function(obj){ console.log(obj.id)}); } } let Class = new MyClass();
  • XLSX-Daten als Datenpunkt im ioBroker

    18
    2
    0 Stimmen
    18 Beiträge
    519 Aufrufe
    OliverIOO
    @miniturtle75 Das hört sich nach einem berechtigungsprpblem an. Die Datei muss für den Benutzer iobroker lesbar sein. Prüfen kannst du das am besten in dem du auf der Konsole mit Sudo auf den Benutzer iobroker wechselst und schaust ob die Datei sichtbar ist Wenn nicht musst du im Mount die Berechtigungen anzupassen https://wiki.ubuntuusers.de/mount/
  • JS mit Visual Studio Code debuggen

    11
    0 Stimmen
    11 Beiträge
    801 Aufrufe
    OliverIOO
    @wolfgangfb Für solche Fälle baue ich mir einfach für die iobroker spezifischen Befehle die man verwendet entsprechende dummy Befehle, die einfach statisch ein entsprechendes Ergebnis zurückgibt. Diese könnte man dann beliebig komplex bauen (bspw für getState) Damit kann man dann ganz gut entwickeln und debuggen. Der letzte integrations schritt dann im JavaScript Adapter kann man dann noch entsprechende log Befehle einbauen um zu prüfen ob man in den dummy Funktionen alle Fälle abgedeckt und getestet hat

516

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge