Skip to content

Skripten / Logik

16.6k Topics 214.3k Posts

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

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Topics
    49k Posts
    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.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    HumidorH
    @paul53 Danke, du triggerst eine Funktion Alarm1, die selbstständig alle 5min ausgeführt wird, außer der Trigger stoppt diese. [image: 1775796578011-bildschirmfoto-2026-04-10-um-06.49.28.png]
  • Hilfe für Skripterstellung mit Node-RED

    954 13k
    954 Topics
    13k Posts
    F
    Hallo ich habe ein Problem mit Nodered und Alexa Echo. Ich habe in Nodered die Wemo Emulation installiert und eine Wemo Steckdose emuliert um an einer Zigbeesteckdosenleiste einen Platz der Leiste zu schalten. "node-red-contrib-wemo-emulator" Das klappt auch wunderbar leider nicht länger als ein zwei Tage. Wenn ich dann den Echo der mit der emulierten Steckdose verbunden ist neu starte geht es wieder. Leider ist das sehr nervig. Hat schon mal jemand gehabt? Durch die Forumssuche habe ich leider nicht gefunden. Gruss Achim
  • Homematic sprechenden Name verwenden

    Moved
    3
    1
    0 Votes
    3 Posts
    252 Views
    M
    OK eric, hast recht, die Benamung kommt schon aus HM raus. Blöd, dass man dort jeden Channel einzeln benamen muss..
  • WRGB flackert

    Moved
    1
    1
    0 Votes
    1 Posts
    115 Views
    No one has replied
  • [JS] Readfile cached ?

    Moved
    4
    0 Votes
    4 Posts
    482 Views
    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

    Moved
    4
    0 Votes
    4 Posts
    461 Views
    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

    Moved
    1
    0 Votes
    1 Posts
    163 Views
    No one has replied
  • Node Red Module installieren

    Moved
    1
    0 Votes
    1 Posts
    986 Views
    No one has replied
  • Meldung für Tür-/Fenstersensor von Xiaomi nach X Zeit - Blockly

    Moved
    5
    0 Votes
    5 Posts
    1k Views
    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

    Moved
    2
    0 Votes
    2 Posts
    606 Views
    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

    Moved
    2
    0 Votes
    2 Posts
    1k Views
    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

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    W
    kein Problem. Helfe gerne ;-)
  • (Gelöst) Skript für Status bei Raum Temperatur änderung

    Moved
    4
    1
    0 Votes
    4 Posts
    372 Views
    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

    Moved
    1
    0 Votes
    1 Posts
    143 Views
    No one has replied
  • Node Red Persistence Funktion einschalten

    Moved
    5
    0 Votes
    5 Posts
    6k Views
    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

    Moved
    3
    3
    0 Votes
    3 Posts
    423 Views
    S
    Ja, ist aktiviert. 16940_image_011.jpg
  • Zwei Strings verbinden

    Moved
    3
    0 Votes
    3 Posts
    575 Views
    H
    Genauso funktioniert es ! Danke :D
  • [Frage] Baustein "Ausführen im Intervall"

    Moved
    1
    1
    0 Votes
    1 Posts
    196 Views
    No one has replied
  • Rolladen

    Moved
    3
    0 Votes
    3 Posts
    327 Views
    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)

    Moved
    1
    1
    0 Votes
    1 Posts
    425 Views
    No one has replied
  • [Blockly] Intervall bei Minusgraden schalten

    Moved
    3
    2
    0 Votes
    3 Posts
    706 Views
    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 Votes
    18 Posts
    6k Views
    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":[object Object]}] 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.

562

Online

32.8k

Users

82.7k

Topics

1.3m

Posts