Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    maxclaudiM
    @Daniel-8 sagte: Ich logge gerade die Variable pass mit. Irgendwie schaltet die so ziemlich oft am Tag. In der früh ist das ja noch ok. Aber ab ca. 10 Uhr hat der Akku eigentlich genug SOC das der Speicher nicht in den Bypass schalten muss. Ich bin mir auch nicht sicher ob der Wirklich schaltet oder das nur ein Anzeigefehler ist. Hat jemand ein ähnliches Verhalten. Ich habe einen 800Pro 0 = Bypass aus 2 = Bypass ein Die Zahl dazwischen ist nur eine addierte Zahl, das ich sehe wie oft er geschalten hat @Daniel-8, habe dich nicht vergessen, habe nur gerade viel Arbeit. Nebenher ist ein neues, verbessertes Skript in Arbeit und zu 80 % fertig. Ich wundere mich sehr, dass dir bei so vielen Aufrufen des Threads bisher niemand geantwortet hat. Kurz zum Thema: pass (Info) zeigt bei dir viele Schaltvorgänge des Bypass. Auffällig ist zudem, dass hier anscheinend der passMode gespiegelt wird. Statt der reinen Info 0/1 siehst du 0/2 (was normalerweise der echte Set Key für den Bypass-Modus passMode wäre). Das kann aber durchaus so sein und zusätzlich an bestimmten Tagen auftreten. Der Bypass schaltet am Anfang öfter ein und aus, weil die Batterien bei 100 % SoC nicht sofort dauerhaft stabil auf diesem Wert bleiben. Das BMS gönnt den Batterien gegen Ende "Ruhephasen", wodurch sie abkühlen. Nach der Ladung bzw. in der Ruhephase sinkt die Spannung leicht wieder ab (das nennt man auch Sackspannung). Dann wird gewartet und der Bypass wieder aufgehoben, damit die Batterien noch einmal „langsam“ nachgeladen werden. Dies wiederholt sich ein paar Mal, bis die Batterien letzten Endes als wirklich voll gelten. Das wird von der Firmware und dem BMS anhand diverser Parameter festgestellt – wie z. B. minVol, maxVol oder der Differenz dazwischen (Zelldrift), Temperatur usw. So bestimmt das BMS den Gesundheitszustand (State of Health) und den echten „Full“-Status. Dass die Firmware hier bei wechselhafter Bewölkung (fluktuierende PV-Leistung) oder wechselnden Lasten etwas „nervös“ reagiert, ist ein bekanntes Verhalten bei Solar-Firmware-Logiken. Bei mir funktionierte das mit allen Zendure-Geräten bisher immer zufriedenstellend. Große Ausnahme war und ist das automatische Abschalten des Bypass. Deshalb lasse ich den Bypass zwar automatisch einschalten, aber das Ausschalten erledige ich manuell bzw. per Skript. Dazu nutze ich: Astronomischer Sonnenuntergang + Versatz von -x Min. Ab dann wird geprüft, ob die PV-Leistung für x Min. unter x Watt liegt. Wenn ja, setze ich Bypass auf „immer aus“ (passMode: 1). In der Nacht schalte ich dann wieder auf passMode: 0 (Bypass auf Automatik). Leider ist (zumindest Stand heute, 28.04.2026) das Umschalten des Bypass-Modus im offiziellen zenSDK (noch?) nicht vorgesehen. Bei der Verwendung eines 1600AC+ stört mich das weniger, da ich selbst entscheide, wann geladen/entladen wird und keine PV-DC-Anschlüsse vorhanden sind. Aber bei Systemen mit direkten PV-Modul-Anschlüssen ist das natürlich.... nicht ideal. Jetzt war's mal wieder doch nicht so "kurz zum Thema", sorry.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    HomoranH
    @Berlon sagte: wieso gibt es bei true und false kleiner und größer? Zusätzlich zu der Info von @paul53 Binär ist false=0 und true=1. EDIT: @asgothian war schneller und genauer
  • Hilfe für Skripterstellung mit Node-RED

    956 13k
    956 Themen
    13k Beiträge
    S
    Hallo Zusammen, ich bin gerade am überlegen, wie ich folgende Aufgabe umsetzen könnte: Ein true an einer (Trigger)Node lässt einen Zähler laufen und setzt einen eigenen Ausgang auf true. Ein false der Trigger Node stoppt den Zähler setzt diesen aber nicht auf false. Ein true lässt den Zähler einfach weiterlaufen... Nach Ablauf der Zeit im Zähler wird der Ausgang des Zählers auf false gesetzt. Mehr soll nicht passieren. Ein separater Eingang am Zähler setzt diesen auf 0 zurück. Was ich damit anfangen möchte: Die Laufzeit der Poolpumpe wird auf eine Mindestlaufzeit von bspw. 4h überwacht -kann aber manuell bedient bei Bedarf länger laufen. Ein Trigger um 00:01Uhr setzt die Laufzeit zurück. Die Zählernode gilt hier als "Anforderung Pumpe wegen Mindestlaufzeit unterschritten". Ich habe noch keine brauchbaren Ideen, wie ich dass sauber und mit wenig Aufwand umsetzen könnte... Vielen Dank und VG Torsten
  • Hue Dimmer v2 Skript

    1
    1
    0 Stimmen
    1 Beiträge
    202 Aufrufe
    Niemand hat geantwortet
  • Hue mit letztem Helligkeitswert starten

    5
    0 Stimmen
    5 Beiträge
    433 Aufrufe
    F
    @foxriver76 das wars - danke!
  • Blockly Abfrage von wert nur ein Teil ausreichend?

    3
    0 Stimmen
    3 Beiträge
    293 Aufrufe
    S
    @thomas-braun ich hatte es eben zufällig gefunden und es funktioniert. zuer erklärung: es soll ein licht am carport eingeschaltet werden wenn entweder ich oder meine frau in der nähe sind bzw im wlan angemeldet. Musste nur raus finden wie ich die adressabfrage (da wir in einer doppelhaushälfte leben und die erkennung manchmal statt 3a nur die 3 erkennt) eingrenze. Habs nun rausgefunden wie er nur n teil der adresse abfragt. (Dazu dann noch 2 straßen die direkt an der ecke sind und über die wir mit dem auto reinfahren. [image: 1620473597163-autolicht.jpg]
  • iobrocker per blockly updaten

    3
    0 Stimmen
    3 Beiträge
    321 Aufrufe
    S
    @crunchip danke für den tip. ich werde es mal testen. muss nur auf n update warten
  • Wert regelmäßig in neue Variable loggen

    javascript blockly
    30
    0 Stimmen
    30 Beiträge
    3k Aufrufe
    B
    @paul53 [image: 1620368994099-bildschirmfoto-2021-05-07-um-08.28.28.png] Hallo Paul53, ich nutze deinen Vorschlag zum Loggen eines Datenpunktes gem. Beitrag 6, klappt auch prima. Ich würde jedoch gerne den neu zu erstellenden Datenpunkt unter " 0.userdata" anlegen lassen. Ich habe mir schon einige Blockys angeschaut wo Datenpunkte über Blockly angelegt werden. Allerdings schaffe ich es nicht, den Inhalt entsprechend zu ändern. Über Hilfe würde ich mich sehr freuen. Gruß Baerny
  • Ledvance Farbtemperatur steuern

    3
    0 Stimmen
    3 Beiträge
    317 Aufrufe
    N
    Doch, ich! Hier wird dir geholfen: im Forum Nur auf deinen Anwendungsfall adaptieren…
  • [gelöst] Common Error Skript Fehler?

    8
    0 Stimmen
    8 Beiträge
    519 Aufrufe
    padrinoP
    Danke Euch 2, da lag wirklich was in common. 🤦‍♂️ Keine Ahnung, wo das her ist. Mein Hirn wird immer mehr ein Sieb. :(
  • Zeitplan-Trigger funktioniert nicht - Anfängerfehler?

    20
    3
    0 Stimmen
    20 Beiträge
    1k Aufrufe
    A
    @homoran Ich bin die Lokalisierung-Einstellung des Pi einmal durchgegangen und habe ihn neu gestartet. Jetzt ist die Zeit auch im Log ok und die Zeitsteuerung im Skript funktioniert auch. [image: 1620051107705-bildschirmfoto-2021-05-03-um-16.10.08-resized.png] Vielen Dank für die schnelle Hilfe!
  • Scripts retten (Windows Version)

    3
    0 Stimmen
    3 Beiträge
    370 Aufrufe
    D
    @sigi234 said in Scripts retten (Windows Version): @dasbrot hast du den Ordner iobroker-data wo gesichert? Ja ich habe das ganze Verzeichnis nebst iobroker-data kopiert. Leider hatte ich bisher mit Umkopieren in die neue Instalation keinen Erfolg lg Bernd
  • Export/Import

    1
    1 Stimmen
    1 Beiträge
    100 Aufrufe
    Niemand hat geantwortet
  • Scriptfehler

    6
    0 Stimmen
    6 Beiträge
    462 Aufrufe
    GlasfaserG
    @ps1304 sagte in Scriptfehler: Problem ist gelöst Dann setze das Thema auf [gelöst] Und beim nächsten mal , bitte den Code in </> CodeTags posten.
  • (statisches) Alexa Kommando ohne Cloud

    15
    2
    3 Stimmen
    15 Beiträge
    2k Aufrufe
    Christian WöhrleC
    @vikk88 jep, das war's! Danke!
  • Regenvorhersage mit Swiss-Weather-Adapter

    9
    0 Stimmen
    9 Beiträge
    761 Aufrufe
    B
    @danielos Ich sehe diese Frage erst jetzt. Evtl. hilft das ja noch: Der Swiss-Weather-Adapter liefert die Regenwarscheinlichkeit in % auch mit. Unter "24hForecast">hour[0-7]>values>pr" Du hast damit jeweils die Regenwarscheinlichkeit für die jeweils nächsten 3h (hour0 - 7) zur Verfügung. Noch wichtig: Der früheste Zeitpunkt um die Daten für den neuen Tag zu erhalten ist ab 0:00 Uhr. Es ist also erst ab 0:00 Uhr möglich, die Regenwahrscheinlichkeit für den neuen Tag auszuwerten. Das sollte aber bei deinem Use-Case (so wie ich ihn verstehe) reichen.
  • Toggle/Increment/Decrement

    2
    0 Stimmen
    2 Beiträge
    258 Aufrufe
    paul53P
    @tyrionwarmage Du kannst nicht einen Datenpunkt, der ein Kommando als String enthält mit einem booleschen Wert oder einer Zahl überschreiben. Das müssen 3 verschiedene Datenpunkte sein.
  • "Watchdog" fuer Sensoren in JS - "millis()" oderTimer gesucht

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    K
    Der Vollständigkeit halber: der user @canetti2 hat diesen Watchdog modifiziert und mutlisensorfähig gemacht. Wer also wissen will, wie man mit minimalen Aufwand viele Sensoren mit gleicher Timeoutzeit überwachen kann findet dort eine Lösung.
  • Daten an einen Webserver schicken

    8
    1
    0 Stimmen
    8 Beiträge
    679 Aufrufe
    OliverIOO
    @arteck sagte in Daten an einen Webserver schicken: @oliverio request ist aber depricated... deshalb axios.. ist auch im package von iobroker ja stimmt, ach axios ist schon mit drin? dann in Zukunft nur noch axios
  • gelöst-common.states in dp-object setzen

    javascript
    7
    1
    0 Stimmen
    7 Beiträge
    161 Aufrufe
    liv-in-skyL
    @paul53 so sieht z.b die nächste ebene aus - gibt es da eigentlich ein limit - also wenn z.b 100 objecte drin liegen gibt es 100 states ? [image: 1619697265375-image-4.png]
  • Kodi Script für älter Kodi Version(17.6)

    6
    0 Stimmen
    6 Beiträge
    477 Aufrufe
    OliverIOO
    @jj_1 sagte in Kodi Script für älter Kodi Version(17.6): @oliverio Da finde ich nur diese 3 [image: 1619642350412-screenshot-2021-04-28-223705.jpg] Und die andern über das Fragezeichen lassen sich nicht istallieren dann könnte es noch an den Abhängigkeiten zum iobroker liegen, das die älteren adapter mit deiner aktuellen iobroker version nicht zusammenarbeiten. Ein downgrade von iobroker wäre dann fällig aber nicht ratsam. hast du schon mal über die Steuerung per nodered nachgedacht evtl geht da was. https://flows.nodered.org/node/node-red-contrib-kodi
  • Blockly- Status Landroid Mäher über Datenpunkt

    4
    2
    0 Stimmen
    4 Beiträge
    154 Aufrufe
    dslraserD
    @noob1973 ich hatte mir im vergangenen Jahr für meinen Worx Mäher mal ein Blockly dafür gemacht und eben mal etwas "erneuert". Das Blockly legt die gewünschten Datenpunkte selbst an (und löscht sie bei false/falsch auch wieder). Eingestellt muß eigentlich nur das hier werden...: [image: 1619638412098-bildschirmfoto-2021-04-28-um-20.08.37.png] Wenn alles auf wahr/true steht, dann werden diese Datenpunkte eingestellt. [image: 1619638455969-bildschirmfoto-2021-04-28-um-19.20.53-resized.png] Ganz unten im Blockly ist noch ein Zeitplan. Falls Du den verwenden willst, dann musst Du die Zeiten für Dich anpassen. Vielleicht kannst Du das Blockly ja brauchen... meine verwendeten Adapter sind: Script Engine Version 4.10.15 Telegram Version 1.8.1 Send emails Version 1.0.9 Blockly Export Bitte das Blockly auf den eigenen Rechner downloaden und dort mit einem "richtigen" Editor öffnen und den gesamten Inhalt der Textdatei in die Zwischenablage kopieren und anschließend in ein neues leeres Blockly importieren. Nicht direkt im Browser öffnen und kopieren, dann kommt es oft zu Umlaute Fehlern im Blockly. Dieser Haken muß im Javascript Adapter drinn sein. [image: 1619638768504-bildschirmfoto-2021-04-28-um-21.38.53.png] Worx_Rasenmaeher.zip
  • zeitabhängig triggern: Scheduler oder zyklische Abfrage?

    3
    1
    0 Stimmen
    3 Beiträge
    278 Aufrufe
    _JOHN__
    @asgothian Danke für dein Feedback. Sofern ich deine Ausführung richtig verstehe bin ich ja bereits recht nah an deiner 2. Option dran. Ich lese die Werte für die Zeit bei Änderung ein halte den schedule an und erstelle ihn neu. Jedoch momentan noch mit einem mehrfach trigger, was ich dann wohl noch korrigieren werden. Ziel wäre so oder so am Ende das das Script nun einmal, nämlich bei Änderung der gewünschten Triggerzeit durchläuft.

590

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge