Skip to content

Skripten / Logik

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

16.4k Themen 211.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    A
    @psrelax Da vermute ich das es an evcc liegt. Nach dem Laden setzt evcc die Lade/Entladeleistung der Batterie wieder auf feste Werte. Das führt gleich zu zwei Problemen. Meine Standardeinstellung wird ignoriert und überschrieben und es wird nicht berücksichtigt ob die Lade/Entladeleistung vorher bereits auf 0W war. Es ist auch generell ein Problem das ständig zu ändern, da dies die interne SSD von E3DC belastet. Ich verwende diese Funktion nur für den Notstrom SOC und da auch nur in der Nacht um das entladen zu verhindern wenn CC aus irgendeinem Grund (Backup) neu gestartet wird.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    paul53P
    @CKassiopaia sagte: Vergleichbar mit dem import in Python oder dem include bei C. Man kann Node-Module per require importieren. Man kann außerdem oft benötigte Funktionen unter der Gruppe "global" erstellen, die allerdings nicht direkt aus Blockly aufgerufen werden können. Globale Skripte werden in alle anderen Skripte kopiert und dort ausgeführt.
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • WRGB flackert

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    114 Aufrufe
    Niemand hat geantwortet
  • [JS] Readfile cached ?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    409 Aufrufe
    snadorS
    Hi, ich muss das Thema nochmal hochholen, denn auch ich habe den Effekt. Speichere ich eine JSON Datei im Adapter, dann wird diese korrekt in der Instanz abgelegt, also unter /iobroker-data/files/adaptername.0/. Ich kann mit readfile (aus der conn.js / wird z.B. im VIS Adapter verwendet) die JSON Datei auch lesen aber dann greift der Cache :-) Egal ob ich die Datei ändere / umbenenne oder sogar lösche - ich kann die Datei immer erfolgreich lesen. Nicht mal ein Adapter Neustart ändert das. Erst wenn ich ioBroker stoppe / starte bekomme ich beim lesen einen neuen State / Ergebnis. Hat jemand eine Idee? Ich weis nicht so recht wo ich weiter machen soll… Danke!
  • Installation Tradfri

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    439 Aufrufe
    R
    @Homoran: Und warum unter node red? ` Siehste, das hab ich gar nicht gesehen, weil ich immer die aktiven Themen durchgehe! :lol: Ich denke mal, dass du das zum richtigen Thema verschieben kannst, du weißt ja, wie das geht! :D Enrico
  • Datenübertragung mit SFTP

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    149 Aufrufe
    Niemand hat geantwortet
  • Node Red Module installieren

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    978 Aufrufe
    Niemand hat geantwortet
  • Meldung für Tür-/Fenstersensor von Xiaomi nach X Zeit - Blockly

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    S
    Auf Änderung triggern und vor den Start des timeouts ein Stop Timeouts.so klappt es bei mir Gesendet von iPad mit Tapatalk
  • Spotify Premium Adapter klick Button mit Javascript

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    566 Aufrufe
    N
    Habs herausgefunden. EInfach mit setState setState("spotify-premium.0.getDevices"/*refresh device list*/,true) Zweiteres hab ich Nicht mehr vorhandene Playlisten löschen den Haken nicht gesetzt. Nach dem setzten scheint bei allem den State "Play this Playlist" vorhanden zu sein.
  • Log File schreiben aus Node Red Function

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    R
    Also node.warn und node.error schreiben auch ins ioBroker-Log. [image: 3999_log.png] Normaler Weise kannst du mit node.log eigene loggings und nr-metriken loggen. Das muss in der /opt/iobroker/node_modules/iobroker.node-red/settings.js konfiguriert werden. Siehe: https://nodered.org/docs/user-guide/logging In der Standard Node-Red Version geht das auch problemlos. Wo der die Konsolen-Ausgabe beim iobroker-node-red hinleitet, habe ich noch nicht rausgefunden. Falls das für die wichtig ist, stelle doch mal ne Anfrage auf GitHub
  • (Gelöst) Mit Blockly auf enthaltenen Text reagieren

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    854 Aufrufe
    W
    kein Problem. Helfe gerne ;-)
  • (Gelöst) Skript für Status bei Raum Temperatur änderung

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    330 Aufrufe
    R
    Danke für die Schnelle antworten. Die Änderung mit den mittleren Teil hat funktioniert, da habe ich wohl zu Kompliziert gedacht.
  • Title in TopBar

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    132 Aufrufe
    Niemand hat geantwortet
  • Node Red Persistence Funktion einschalten

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    6k Aufrufe
    R
    @Garf: … Wenn ich mir jetzt vorstelle wieviele Schreib- und Lesezyklen da hinzukommen, wird sich die Lebensdauer einer SD-Karte enorm verkürzen. Wäre es deshalb nicht sinnvoller einer diese Varianten zu verwenden? ` Da hast du absolut recht. Das Thema ist recht komplex. Falls du da tiefer einsteigen willst: https://nodered.org/docs/api/context/ https://nodered.org/docs/api/context/st … filesystem @Garf: Wobei ich mir dann die Frage stelle wie man dies dann in einem change-Node beim Setzen einer flow- oder globale Variablen macht. ` Das ist ganz clever gemacht. Siehe hier: https://discourse.nodered.org/t/a-guide … xt/4115/45 @Garf: Ein Sache konnte ich bisher noch nicht nachvollziehen:… ` Die Dateien werden nur gebildet, wenn du innerhalb eines function-nodes den node.context benutzt. Gebildet werden sie dann automatisch. [image: 3999_persistent_1.png] @Garf: Du solltest dein Wissen mal in einem Buch niederschreiben. ` So schnell, wie du lernst, wäre das ein alter Hut für dich, wenn es erscheint;-)
  • NUC/ioBroker mit Schalter neustarten

    Verschoben
    3
    3
    0 Stimmen
    3 Beiträge
    410 Aufrufe
    S
    Ja, ist aktiviert. 16940_image_011.jpg
  • Zwei Strings verbinden

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    539 Aufrufe
    H
    Genauso funktioniert es ! Danke :D
  • [Frage] Baustein "Ausführen im Intervall"

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    177 Aufrufe
    Niemand hat geantwortet
  • Rolladen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    325 Aufrufe
    L
    Welcher Aktor steuert denn das Rollo? Ich habe jetzt das shutter + jqui Dialog für die Shellys genommen… Wie soll denn deine Vis aussehen? Hast du dich auf Metro festgelegt?
  • [Vorlage] Rolladensteuerung (ein bisschen aufwendig)

    Verschoben
    1
    1
    0 Stimmen
    1 Beiträge
    403 Aufrufe
    Niemand hat geantwortet
  • [Blockly] Intervall bei Minusgraden schalten

    Verschoben
    3
    2
    0 Stimmen
    3 Beiträge
    638 Aufrufe
    S
    @Xyolyp: Ich sehe leider nicht direkt wo das Problem in dem Blockly ist, allerdings wäre mein Vorschlag nicht festgelegt eine halbe Stunde zu heizen, sondern so lange bis die Temperatur (0°C) erreicht ist. Evtl könntest du auch um häufiges ein- und ausschalten zu vermeiden die Heizung bei -1°C einschalten und bei +2°C ausschalten. Dann ist es immer in etwa 0°C warm und du musst dich nicht mit Timern rumplagen. ` Danke dir Xyolyp, Vielleicht muss ich noch dazu sagen, dass die Temperatur von meinem Außensensor im Garten erfasst wird. Nicht die Wassertemperatur selbst. Die Heizung wird sehr schnell warm und verbraucht ca. 40W. Sie muss nicht rund um die Uhr bei Minusgraden laufen. Das reicht immer nur eine Zeit lang damit das Wasser nicht einfriert. Ich wollte dies auch mal mit dem Intervall testen aber irgendwie habe ich einen Fehler drin… Grüße, Jens
  • 0 Stimmen
    18 Beiträge
    6k Aufrufe
    G
    @Garf: Mir auch nicht, deshalb habe ich mir deinen Flow mal genauer angesehen. Du hast einige Dinge da drin, die überhaupt keine Funktion haben. Aus dem gesamten Strang mit dem json-Node kommt kein Ergebnis heraus. ` Ich möchte es mal wie unsere Politker halten. Was interessiert mich mein Geschwätz von gestern. Kurzum meine Bewertung ist falsch, der Fehler lag auf meiner Seite. Nachdem mich rewenode auf den richtigen Weg gebracht hat, habe ich meinen Fehler erkannt und korrigiert. Zu meiner Entschuldigung schiebe ich die Schuld mal auf die inject-Node Ersatzvornahme für das MQTT-Input-Node. Als Wiedergutmachung hier die gewünschte Funktion: @Der_LuLe: Wie kann ich das umstellen das es mit 2 MQTT-Werten arbeitet. Also: "Rücklauf+10" > "Vorlauf" dann Aus, sonst An. ` ! ```` [{"id":"4a6fddc5.f5f2ac","type":"json","z":"de87f48f.fcaa78","name":"","property":"payload","action":"","pretty":false,"x":270,"y":960,"wires":[["15c68f96.25799"]]},{"id":"8706c33.a5797c","type":"debug","z":"de87f48f.fcaa78","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","x":710,"y":1040,"wires":[]},{"id":"f3cfb437.1faf6","type":"inject","z":"de87f48f.fcaa78","name":"VT aus MQTT","topic":"","payload":"{"Time":"2019-01-01T19:39:30","AM2301":{"Temperature":22.7,"Humidity":57.5},"TempUnit":"C"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":960,"wires":[["4a6fddc5.f5f2ac"]]},{"id":"33238960.049676","type":"inject","z":"de87f48f.fcaa78","name":"RT aus MQTT","topic":"","payload":"{"Time":"2019-01-01T19:39:30","AM2301":{"Temperature":19.7,"Humidity":57.5},"TempUnit":"C"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":1020,"wires":[["2ae5b151.4f6ea6"]]},{"id":"2ae5b151.4f6ea6","type":"json","z":"de87f48f.fcaa78","name":"","property":"payload","action":"","pretty":false,"x":270,"y":1020,"wires":[["752c058f.78feb4"]]},{"id":"15c68f96.25799","type":"change","z":"de87f48f.fcaa78","name":"VT_Temp_Istwert","rules":[{"t":"set","p":"VT_Temp","pt":"flow","to":"payload.AM2301.Temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":960,"wires":[["62a72741.bd956"]]},{"id":"752c058f.78feb4","type":"change","z":"de87f48f.fcaa78","name":"RT_Temp_Istwert","rules":[{"t":"set","p":"RT_Temp","pt":"flow","to":"payload.AM2301.Temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":1020,"wires":[["62a72741.bd956"]]},{"id":"62a72741.bd956","type":"function","z":"de87f48f.fcaa78","name":"Temp aus MQTT","func":"var dt = flow.get("SW_dt"); // Vorgabe Temperaturdiffernz VT zu RT\nvar VT = flow.get("VT_Temp"); //Messwert Vorlauftemperatur\nvar RT = flow.get("RT_Temp"); //Messwert Ruecklauftemperatur\n// Wertevergleich\n\nnode.send({payload: {"VT_Temp": VT,\n "RT_Temp": RT,\n "SW_dt": dt,\n "RT + dt": (RT+dt)}});\nif ((RT+dt) > VT) {\nmsg.payload = false; // Boolean Wert\n//msg.payload = 0; //Integerwert/Binaerwert\n}\nelse\n{\nmsg.payload = true; // Boolean Wert\n//msg.payload = 1; //Integerwert/Binaerwert\n}\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":988,"wires":[["8706c33.a5797c"]]},{"id":"6d590582.38d554","type":"inject","z":"de87f48f.fcaa78","name":"SW Temperatudiffernz VL<-->RL","topic":"","payload":"10","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":168,"y":1080,"wires":[["9672b859.1c6458"]]},{"id":"9672b859.1c6458","type":"change","z":"de87f48f.fcaa78","name":"SW Temp_Differenz","rules":[{"t":"set","p":"SW_dt","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":1080,"wires":[[]]}] Ich habe es zum besseren Verständnis versucht so einfach wie möglich zu halten. Die ersten beiden inject-Nodes musst Du durch deine MQTT-Input Nodes ersetzen und im dritten inject Node kannst Du die gewünschte Temperaturdifferenz einstellen. Im Moment stehen dort die gewünschten 10K. An dem Strang kannst Du dann auch jederzeit ein Dashboard numeric Input Node anschließen.
  • Einschalthelligkeit Homematic Dimmer HM-LC-Dim1TPBU-FM zeitgesteuert festlegen

    Verschoben
    18
    0 Stimmen
    18 Beiträge
    2k Aufrufe
    J
    Naja, es gibt einige Haken in den Programmen. Das ist aber auch sehr von den anderen aktuellen Einstellungen der Kanäle abhängig. Wenn Du allerdings die empfohlenen Kanaleinstellungen übernommen hast, dann verursachen Deine Programme Fehlschaltungen. Lange Erklärungen und Verbesserungen erspare ich mir aber weil Du ja doch eine Umsetzung per JavaSkript wünscht. Leider kann ich Dir bei der reinen Java-Programmierung nicht helfen, ich selbst nutze nur Blockly.

533

Online

32.5k

Benutzer

81.6k

Themen

1.3m

Beiträge