Skip to content

Skripten / Logik

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

16.6k Topics 214.0k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    R
    So, um das Dashboard lauffähig zu bekommen musste ich jedes Panel einmal im edit Mode öffnen und dann zurück zum Dashboard gehen. Aktuell habe ich nur noch das Problem mit den Errormeldungen bei Scriptstart, siehe oben. Vermutl. werden deshalb auch nicht alle DPs gefüllt und die Anzeigen im Dashboard bleiben leer. [image: 1773687452158-ac9b5652-b3e5-42b3-881e-a27a27c2cfea-grafik.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    Murphy 0M
    @berny-k Aktuell 330 Watt vom Akku und 9,59 Watt dazu von der Messstelle. 20 Watt von der Messstelle ist mein Ziel. 339,59 - 20 =319,59 aufgerundet ergibt 320 output vom Akku. Also die Formel ergibt immer den neuen Wert für Input oder output. Bisserl tricky ist es nur wegen den Werten die plus oder minus sein können. Gott sei dank ist die Mathematik seit ich aktiv index/sequentielle Datenbanken programmiert habe gleich geblieben 🤪😁 Das war ind der Zeit von 1983 bis 1993. 😉
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • 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
    598 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
    976 Views
    W
    kein Problem. Helfe gerne ;-)
  • (Gelöst) Skript für Status bei Raum Temperatur änderung

    Moved
    4
    1
    0 Votes
    4 Posts
    361 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
    194 Views
    No one has replied
  • Rolladen

    Moved
    3
    0 Votes
    3 Posts
    326 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
    419 Views
    No one has replied
  • [Blockly] Intervall bei Minusgraden schalten

    Moved
    3
    2
    0 Votes
    3 Posts
    694 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":[[]]}] 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.
  • 0 Votes
    18 Posts
    2k Views
    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.
  • Node-Red genauso gut wie scripten?

    Moved
    8
    0 Votes
    8 Posts
    2k Views
    M
    Die Hoffnung bei Node Red ohne Javascript und Programmieren auszukommen, ist trügerisch. Man hat zwar ein grafisches Interface, aber man muss sich ziemlich intensiv mit den teilweise komplexen Funktionen der vorhanden Nodes auseinandersetzen und da ist man vom Know How Aufbau ganz schnell bei dem Aufwand, den man für das Lernen von Javascript hat.
  • Timer nur bei bestimmtem Wert starten

    Moved
    11
    1
    0 Votes
    11 Posts
    639 Views
    R
    @Graf Ja, nimm einfach einen JSON-node. Kannst du auch nehmen, wenn du nicht sicher bist, ob die Quelle ein JSON-String oder -Object ist. Die Substringerei ist ätzig und fehleranfällig.
  • Adapter Start und Stop Schleife

    Moved
    3
    1
    0 Votes
    3 Posts
    361 Views
    D
    Danke HC-Yami, das waren die erscheidenden Stichpunkte. Die zwei if-Abfragen baue ich auch noch ein um das ganze perfekt zu machen. Muss dazu mich aber erstmal mit java script beschäftigen, bin eher der Blockly Type ;) [image: 16158_chrome_2019-01-02_23-29-26.jpg] Gruß Dare
  • Objekt import Fehler: Invalid ID: null

    Moved
    1
    0 Votes
    1 Posts
    214 Views
    No one has replied

704

Online

32.7k

Users

82.5k

Topics

1.3m

Posts