Skip to content

JavaScript

2.5k Topics 49.7k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • [gelöst] Funktionsunterschied

    Moved
    3
    0 Votes
    3 Posts
    146 Views
    Ben1983B
    @paul53 OK, danke
  • Datenpunkt erstellen und im Anschluss sofort nutzen

    12
    1
    0 Votes
    12 Posts
    2k Views
    BananaJoeB
    @grrfield sagte in Datenpunkt erstellen und im Anschluss sofort nutzen: if(!existsState("javascript.0.Testumgebung.Test2")) runScript(); Da das Neustarten nur beim ersten Anlegen der Datenpunkte passiert, stört es nicht weiter. Cool, Skripte können sich selbst neu starten. Wieder was gelernt.
  • gelöst: exec geht nicht?

    6
    0 Votes
    6 Posts
    215 Views
    Thomas BraunT
    @derrapf Klar, da hat der User ja auch die Rechte.
  • Script Ladesteuerung PV Wallbox

    3
    0 Votes
    3 Posts
    417 Views
    N
    @glasfaser Habe das nun geändert. War das der einzige Fehler? Bei Goingelectric (da ist das angepasste her) habe ich nach was einfachem geschaut aber nix gefunden. Das genannte scheint ja noch komplizierter zu sein. schedule("*/30 * * * * *", function () { if (getState("modbus.0.coils.400_Ladefreigabe").val == false) { setState("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, true); setStateDelayed("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, true, 3000, false); } // Aktuellen Ladestrom in Variable schreiben Ladestrom_verfuegbar = 0; Ladestrom_verfuegbar = getState("modbus.1.inputRegisters.52_Ladestrom").val; Aktueller_Ladestrom = getState("modbus.0.inputRegisters.100_Strom").val; // Den neuen LS kennen wir noch nicht -> 0 Neuer_Ladestrom = 0; if (Ladestrom_verfuegbar <= 1610) { if (Ladestrom_verfuegbar >= 1000 && Ladestrom_verfuegbar <= 1610) { // 6A ist Minimum, und da wir immer ein bisschen übrig haben wollen, gehen wir bis unter die Grenze von 7A hoch (1610W) Neuer_Ladestrom = 6; } else if (false) { } } else if (Ladestrom_verfuegbar >= 1611 && Ladestrom_verfuegbar <= 1840) { Neuer_Ladestrom = 7; } else if (Ladestrom_verfuegbar >= 1841 && Ladestrom_verfuegbar <= 2070) { Neuer_Ladestrom = 8; } else if (Ladestrom_verfuegbar >= 2071 && Ladestrom_verfuegbar <= 2300) { Neuer_Ladestrom = 9; } else if (Ladestrom_verfuegbar >= 2301 && Ladestrom_verfuegbar <= 2530) { Neuer_Ladestrom = 10; } else if (Ladestrom_verfuegbar >= 2531 && Ladestrom_verfuegbar <= 2760) { Neuer_Ladestrom = 11; } else if (Ladestrom_verfuegbar >= 2761 && Ladestrom_verfuegbar <= 2990) { Neuer_Ladestrom = 12; } else if (Ladestrom_verfuegbar >= 2991 && Ladestrom_verfuegbar <= 3220) { Neuer_Ladestrom = 13; } else if (Ladestrom_verfuegbar >= 3221 && Ladestrom_verfuegbar <= 3450) { Neuer_Ladestrom = 14; } else if (Ladestrom_verfuegbar >= 3451 && Ladestrom_verfuegbar <= 3680) { Neuer_Ladestrom = 15; } else if (Ladestrom_verfuegbar >= 3681 && Ladestrom_verfuegbar <= 3910) { Neuer_Ladestrom = 16; } else if (Ladestrom_verfuegbar >= 3911 && Ladestrom_verfuegbar <= 4140) { Neuer_Ladestrom = 17; } else if (Ladestrom_verfuegbar >= 4141 && Ladestrom_verfuegbar <= 4370) { Neuer_Ladestrom = 18; } else if (Ladestrom_verfuegbar >= 4371 && Ladestrom_verfuegbar <= 4600) { Neuer_Ladestrom = 19; } else if (Ladestrom_verfuegbar >= 4601) { Neuer_Ladestrom = 20; } // Jetzt wissen wir den neuen Ladestrom! Alt=neu? if (Aktueller_Ladestrom != Neuer_Ladestrom) { // Oh, was Neues! Gleich an PV_Ladestrom geben! console.log((['Ladestrom verändert, wird von ',Aktueller_Ladestrom,' verändert auf ',Neuer_Ladestrom].join(''))); setState("modbus.0.holdingRegisters.300_Ladestromstaerke", Neuer_Ladestrom); } else { // Nix Neues, nix zu tun console.log((['Ladestrom gleichgeblieben, bleibt bei ',Aktueller_Ladestrom,' (neu wäre ',Neuer_Ladestrom,' gewesen)'].join(''))); } } else { // Minimalerzeugung nicht erreicht, also wird nicht nach PV-Überschuss geladen! if (getState("modbus.0.coils.400_Ladefreigabe").val == true) { setState("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, false); setStateDelayed("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, false, 3000, false); } } } else { // Wir sind nicht im AUTO Modus des Ladereglers, nix zu tun } } else { // Wechselrichter schläft, nix zu tun. } });
  • Array funktioniert nicht [gelöst]

    3
    0 Votes
    3 Posts
    314 Views
    lws.najaL
    @paul53 Ich habe es nun gelöst dennoch danke für die Antwort. Hier die Lösung für die es benötigen. 'javascript.0.variables.Zeit_v_2'/*Zeit v 2*/ var Zeit_v_2 = 0; var max = 4; var zeit = [ 300000, 60000, 60000, 60000, 120000]; var interval = setInterval(counter, zeit[Zeit_v_2]); function counter() { if(Zeit_v_2 <= max) Zeit_v_2++; else Zeit_v_2 = 0; setState('javascript.0.variables.Zeit_v_2', Zeit_v_2, false); clearInterval(interval); interval = setInterval(counter, zeit[Zeit_v_2]); }
  • Scheduler: Übersicht

    4
    0 Votes
    4 Posts
    226 Views
    D
    Habs hinbekommen. Geht ja ganz einfach: schedule.pattern liefert die Uhrzeit. Gruss Ralf
  • Zeitpunkt eines Datenpunktes überwachen / Batteriekontrolle

    3
    0 Votes
    3 Posts
    279 Views
    S
    Moin, vielen Dank! Ich habe das in der Form mal ins Script eingebaut, ein Test mit einer Minute anstatt 24 Stunden hat prima geklappt. Werde das mal weiter beobachten, ob das so für mich funktioniert. Sonst melde ich mich hier nochmal.
  • JSON Datei lokal speichern

    Unsolved
    5
    0 Votes
    5 Posts
    3k Views
    U
    @oliverio Ja, das scheint zu klappen. Und war unkomplizierter, als ich es mir vorgestellt habe. Vielen Dank!
  • [gelöst] Überwachen und schalten

    24
    0 Votes
    24 Posts
    2k Views
    O
    @paul53 said in Überwachen und schalten: Paul, vielen Dank für eine so tolle Hilfe
  • HTML Tabelle für alle Schedules in den Scripten

    template
    52
    2
    1 Votes
    52 Posts
    5k Views
    Agria4800A
    @liv-in-sky: hat nun geklappt, funktioniert
  • Skript löschen wegen ungültiger ID nicht möglich

    3
    0 Votes
    3 Posts
    484 Views
    F
    @falke69 Danke für Deine Antwort und ich habe ganz vergessen zu antworten. Leider hat alles nicht funktioniert und ich habe ein älteres Backup wieder eingespielt und entsprechend angepasst. Gruß Christian
  • (gelöst) Cannot redeclare block-scoped variable

    8
    0 Votes
    8 Posts
    1k Views
    ice987I
    @alcalzone Vielen Dank für deine Rückmeldung. Evtl. könnte dies ja in zukünftigen Versionen behoben werden.
  • [Problem] HmIP-SPI per ioBroker deaktivieren

    6
    0 Votes
    6 Posts
    629 Views
    paul53P
    @aiko sagte: Die Probleme tauchen nicht mehr auf. Dann ändere bitte in der Überschrift des ersten Beitrags [Problem] in [gelöst].
  • Script für Solvis Max + SolvisRemote

    Moved javascript template
    6
    0 Votes
    6 Posts
    3k Views
    tvtotalT
    @peak3d [image: 1617633496064-69d25932-a053-4e25-bed8-66b997739707-grafik.png] Habe Dein script importiert, leider zeigt das script registered 0 subscriptions and 0 schedules an nach dem starten Was muss ich hier noch einstellen ? [image: 1617633769327-bca0b1af-75a6-41ab-abee-f6357a3cadd4-grafik.png] Datenpunkte wurden angelegt
  • simple-ssh wird nicht ausgefühert

    3
    0 Votes
    3 Posts
    352 Views
    T
    @mcu Ja Updates habe ich gemacht. Am Zielgerät nichts geändert.
  • Hilfe bei Script -Fehler no existing Object

    javascript heating climate
    3
    0 Votes
    3 Posts
    262 Views
    ChaotC
    @mcu Danke für die Antwort. Das Script liegt tatsächlich in der Instanz 1 die ich zum Testen nutze. Aber deine Idee mit dem Neustart der Instanz hat was gebracht. Scheinbar hat sich da irgendwas aufgehängt.
  • Warnemeldungen in der LOG

    3
    0 Votes
    3 Posts
    406 Views
    heinhanH
    @paul53 Klappt alles nicht. Es scheint am Adapter zu liegen, hier die LOG dazu: weatherunderground.0 2021-04-02 10:43:45.936 error (8878) No forecast data found in response weatherunderground.0 2021-04-02 10:43:43.246 error (8878) Wunderground reported an error: --/Error: options.uri is a required argument Habe das mal an GitHup weitergeleitet. Schöne Ostertage.
  • Schedule mit Bedingung

    3
    0 Votes
    3 Posts
    301 Views
    O
    @paul53 besten Dank ok, ich dachte/ hatte gehofft man kann, den Minutentakt wo die Bedingung (ist es Tag) geprüft wird, vermeiden und nur am Tage jede Minute die Funktion ausführen. Nachtrag: Ich hab gerade gesehen das ein Scripte selbst unter Objekte scriptEnable mit true false ein bzw. ausgeschaltet werden können. Würde es da nicht Sinn machen zum Event goldenHourEnd das Script auf True zu setzen und wenn sunsetStart erreicht ist wieder auf False? Dann triggert der nicht sinnlos jede minute durch die Nacht um festzustellen das er nicht die Funktion doch nicht aufrufen muss.
  • gelöst-suche hilfe bei tabelle mit scroll im tbody

    javascript
    25
    0 Votes
    25 Posts
    2k Views
    liv-in-skyL
    @oliverio wollt mich eh noch bedanken - konnte einiges umsetzen - auch nth-child konnte ich gut gebrauchen https://github.com/liv-in-sky/sonoff-iobroker-script
  • [Neu] Diverse async-Funktionen im JavaScript-Adapter

    javascript
    39
    3
    6 Votes
    39 Posts
    10k Views
    P
    @fastfoot sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter: @pittini sagte in [Neu] Diverse async-Funktionen im JavaScript-Adapter: Hm, ok, danke, ich ging davon aus das @Mic schon weis was er schreibt. wusste er :-) Seine state values fangen im Beispiel bei 1 an oder anders ausgedrückt: Wenn du deinen Wert prüfen willst, nimm if (stateObject && stateObject.val == Awtrix[x]) { Du hattest recht. Hab ich das zum testen grad so gemacht, das klappt auch: if (stateObject && typeof stateObject.val != "undefined") { Danke.

436

Online

33.0k

Users

83.4k

Topics

1.3m

Posts