Weiter zum Inhalt

JavaScript

2.5k Themen 49.2k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard

    javascript monitoring
    36
    4
    4 Stimmen
    36 Beiträge
    993 Aufrufe
    crunchipC
    @RoddiEF habs angepasst, neue Version im ersten Beitrag
  • Klipper --> Telegram --> Snapshot

    1
    0 Stimmen
    1 Beiträge
    30 Aufrufe
    Niemand hat geantwortet
  • [Script] Viessmann Heizungs‑Ein/Aus‑Steuerung Viessmann‑API

    1
    0 Stimmen
    1 Beiträge
    19 Aufrufe
    Niemand hat geantwortet
  • Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

    234
    9 Stimmen
    234 Beiträge
    17k Aufrufe
    maxclaudiM
    @Daniel-8 sagte: Also habe ich das richtig interpretiert, das eine 8 Sekundenabfrage kein Problem darstellt Richtig. Es kann auch mit 6 Sek. gefahrlos getestet werden. Das Skript arbeitet mit einer Warteschlange (Queue). Das heißt, alle Anfragen (Watt lesen oder Werte schreiben) werden nacheinander abgearbeitet. Damit das stabil bleibt, müssen die Intervalle auf die Timeout-Zeit (2 Sek.) abgestimmt sein. Voraussetzung ist eine gute, stabile und nicht überlastete WLAN-Verbindung. Evtl. ein extra WLAN mit Access Point (AP) nur für Zendure-Gerät(e). Abfrage-Intervall (GET) const intervalGet = 8; Standard (Empfohlen): 8 Sekunden Technisches Minimum: 5 Sekunden @Daniel-8 sagte: und zwischen dem senden immer 5 Sekunden Pause sind? Richtig. Man kann zwar theoretisch schneller Befehle im ioBroker auslösen, aber das Skript lässt diese erst nach der eingestellten Pause, der Reihe nach, in die Warteschlange. Sende-Pause (POST) const minTimeBreakForSetDpSec = 5; Standard (Empfohlen): 5 Sekunden Technisches Minimum: 4 Sekunden Warum diese Mindestwerte? Stabilität. Die 2x-Timeout-Regel: Sobald Du einen Wert sendest (POST), schickt das Skript sofort eine Abfrage (GET) hinterher, um den Status zu aktualisieren. Im Fehlerfall (WLAN-Lag) dauert dieser Vorgang bis zu 4 Sekunden (2x 2 Sek. bei 2000ms Timeout). Die Sende-Pause muss also immer länger als diese 4 Sekunden sein, sonst stauen sich die Befehle in der Warteschlange.. Abfrage-Puffer: Das Abfrage-Intervall (GET) muss deutlich über dem Timeout liegen, damit das Skript Zeit hat, die Warteschlange nach einem Fehler sauber zu leeren. Wichtig: Bei schlechtem WLAN Wenn das WLAN nicht absolut stabil ist, sollte man die Zeiten nicht verringern, sondern eher erhöhen: intervalGet: auf 10–12 Sekunden minTimeBreak (Pause): auf 8 Sekunden Bei schlechtem Empfang laufen Anfragen evtl. oft in den 2-Sekunden-Timeout. Wenn man dann zu schnell neue Anfragen nachschiebt, "verstopft" die Kommunikation zum Zendure-Gerät komplett und der interne Prozessor (ESP) kommt nicht mehr hinterher. Könnte evtl. sogar die Kommunikation beenden. Nur so ist sichergestellt, dass über HTTP alles reibungslos funktioniert. Mir ist kein Weg bekannt, das auf andere Weise "sicherer" über HTTP zu gewährleisten. Mit den Standard-Einstellungen funktioniert es im Dauerbetrieb sehr zuverlässig.
  • Wie lege ich den datenpunkt an?

    15
    0 Stimmen
    15 Beiträge
    185 Aufrufe
    T
    @Chrunchy sagte: @paul53 sagte: @Chrunchy [sagte]: Funktion createState in der JavaScript-Script-Engine (ab js-controller 6/7) als veraltet (deprecated) betrachtet und durch setObjectNotExists oder extendObject ersetzt. Wie kommst du darauf? Hatt das hier (https://forum.iobroker.net/topic/75919/createstate-deprecated) so verstanden. Das eine ist Adapterentwicklung das andere Javascript-Adapter - ich benutze in beiden "extendObject" - für nicht Adapterentwickler ist createStates() aber besser.
  • Steuerung Laden Bosch EBikeAkku via MEROSS Steckdose

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    48 Aufrufe
    Niemand hat geantwortet
  • Omlet Hühnerstall webhook API

    36
    0 Stimmen
    36 Beiträge
    541 Aufrufe
    J
    Hi, aktuell was ich beobachtet habe, ja. Die Rückmeldung wollte ich erst geben, wenn ich den Futterautomat erhalten habe, der aber bisher noch nicht geliefert wurde. Auch diesen kann man mittels API einbinden. Sollte es bei der Einbindung Probleme geben, melde ih mich noch mal, ansonsten aber auch so.
  • Vorschlag zu globalen Scripten

    11
    0 Stimmen
    11 Beiträge
    297 Aufrufe
    OliverIOO
    @legro Das ist eigentlich eine Grundfunktion von Javaskript/node https://developer.mozilla.org/en-US/docs/Glossary/Just_In_Time_Compilation Da jedes Script in einer eigenen VM (nicht zu verwechseln mit einer VM bspw in proxmox) Ausgeführt wird, gibt es zwischen den Skripten keine Optimierung https://nodejs.org/api/vm.html
  • FritzDect - Extended

    5
    0 Stimmen
    5 Beiträge
    77 Aufrufe
    Ro75R
    Ich habe den Code bzgl. axios angepasst. Wie gesagt, unter JS-Adapter 8.x war es nicht nötig, unter 9.x bei mir schon. Ich habe wie gesagt, den Code jetzt etwas angepasst und nun geht es auch ohne das axios als zusätzliches NPM-Paket eingetragen werden muss. Ro75.
  • E3DC Hauskraftwerk steuern

    4k
    1
    3 Stimmen
    4k Beiträge
    2m Aufrufe
    Thomas BraunT
    @Dave69-CH Ja, in der Standardansicht. Ich fahre bei mir die Experteneinstellung, da sieht das etwas anders aus. j
  • clearSchedule löscht keine Schedules (mehr)

    3
    0 Stimmen
    3 Beiträge
    102 Aufrufe
    R
    https://github.com/ioBroker/ioBroker.javascript/issues/2164
  • wo sind Scripte gespeichert?

    javascript
    7
    0 Stimmen
    7 Beiträge
    98 Aufrufe
    etvE
    klar - passiert am ioBroker Raspi täglich, aber OC holt nur und schreibt nicht 😉
  • [Gelöst] setState in "Binding"

    7
    0 Stimmen
    7 Beiträge
    199 Aufrufe
    P
    @bahnuhr zur Erläuterung meines Vorgehens: Ausgehend von einer Navigation über ein ein Widget "Universal (Schalter, Taster, Nav & mehr)" aus inventwo design... [image: 1775024353201-navigation.png] ...wähle ich eine PDF-Datei eines Kalenders, dessen Dateiname mit Pfad dann in einen Datenpunkt geschrieben wird. [image: 1775024467571-objekt.png] Dieser Datenpunkt wird dann verwendet um die ausgewählte Datei in einem iFrame anzuzeigen. [image: 1775024571909-kalender24.png]
  • Navimow Steuerung ioBroker

    7
    3
    0 Stimmen
    7 Beiträge
    129 Aufrufe
    K
    Hallo Tombox 🙋‍♂️ Kannste mir wohl noch sagen welches Widget ich haben muss mit welchen Einstellungen für den Countdown in der IoBroker Vis
  • getState liefert anders Ergebnis als bei Objekt

    Ungelöst
    21
    0 Stimmen
    21 Beiträge
    214 Aufrufe
    OliverIOO
    @paul53 sagte: @OliverIO [sagte]: Meinung das das der Adapter machen muss. Als Javascript-Programmierer sollte man wissen, dass Arrays und Objekte referenziert werden. Das weiß ich schon, Aber mehrfaches lesen eines datenpunkts sollte konsistent auch den echten Inhalt des datenpunkts liefern, auch wenn man in die variable das zwischenzeitlich was reinschreibt. Die meisten Nutzer wissen ja nix vom caching, welches sich ja auch noch an und ausschalten lässt.
  • Shelly Verbrauchs-Historie für Tag, Woche, Monat, Jahr

    144
    1
    1 Stimmen
    144 Beiträge
    26k Aufrufe
    crunchipC
    @micklafisch sagte in Shelly Verbrauchs-Historie für Tag, Woche, Monat, Jahr: von daher die offene Frage ob ich hier etwas vielleicht übersehen habe ne, nichts übersehen, außer wenn du die Datenpunkte schon bereits irgendwo in eine Datenbank schreibst, diese zu mappen
  • Skript aufteilen möglich?

    20
    0 Stimmen
    20 Beiträge
    675 Aufrufe
    OliverIOO
    @ple Du könntest ein Service Script laufen lassen, das alles mit supabase macht, also anmelden, abrufen, schreiben etc. So wie @ticaki oben vorgeschlagen hat horcht dieses Skript dann auf bestimmte befehlsworte, führt die jeweilige Aktion aus und gibt die Daten zurück, ohne das sichnjedes einzelne Skripte um die supabase Details kümmern muss. Klar kann man auch einzelne Programmatiken lokal ablegen und auch einbinden. Da gibt es hier im Forum Beispiele dazu. Müsste ich suchen wenn das das Ziel wäre. Dann könnte man noch ein öffentliches npm Paket machen, das finde ich nicht so optimal, theoretisch auch ein privates Paket, das habe ich noch nie ausprobiert. Wenn ich etwas umfangreicheres benötige, mit mehreren Dateien, dann würde ich lieber einen eigenen Adapter machen, da hat man dann alle Möglichkeiten.
  • [TypeSkript] Wetter.com Forecast/Vorhersage

    62
    4 Stimmen
    62 Beiträge
    3k Aufrufe
    nik82N
    @schimi So sorry, da hät ich natürlich selber drauf kommen können das ich den Datenpunkt auf 0 setze. Jetzt gehts wieder. Danke dir. :-)
  • [Vorlage] Denon HEOS Script

    Verschoben javascript template
    359
    1
    1 Stimmen
    359 Beiträge
    89k Aufrufe
    S
    Hi zusammen! Ich nutze einen Denon und mir fehlt der Ordner heos.0.sources.1028... Demnach kann ich die Favoriten auch nicht ansteuern. Mit dem Adapter soll das Skript aus dem ersten Post doch überflüssig sein, oder?
  • [Skript] Absolute Feuchte berechnen

    Verschoben
    741
    1
    2 Stimmen
    741 Beiträge
    243k Aufrufe
    C
    Ich bin grade total begeistert, hab die Version 0.6.8 grade kopiert, meine Werte eingefügt, und es läuft auf Anhieb! Alles was ich brauche :-) Hab in der Mietwohnung unten nach neuen Fenstern an den Kältebrücken leichte Schimmelprobleme, um dem zu begegnen gibt es jetzt a) eine Lüftungsanlage und b) in den Gefährdeten Bereichen eine kleine Heizung im Putz um die Temperatur dort über dem Taupunkt zu halten. Das Script liefert mir nun alle Werte die ich brauche, Mega!! Wem Schuld ich denn nun den Kaffee, ich mein... an dem Script schreiben mehrere?

354

Online

32.8k

Benutzer

82.7k

Themen

1.3m

Beiträge