Skip to content

Skripten / Logik

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

16.4k Themen 211.7k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    maxclaudiM
    @Mabbi sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro): @maxclaudi Da gebe ich Dir recht. Mir ist in den Blocklys einfach immer noch nicht klar, wann eine Variable local (z.B. in einer function) oder global ist. Deswegen trenne ich die aus Prinzip immer auf. [image: 1763750944410-f1602dcb-2b11-44b2-a1bf-8171d463aa10-grafik.png] Das Bild zeigt das js zum Blockly mit getrennten Variablen oder mit einer Variable. Beides taucht oben und somit global(?) auf. Ja. Alles, was du in Blockly als Variable ohne lokalen Blockscope anlegst, landet im generierten JS oben im Script und ist damit global innerhalb dieses Scripts. Nicht global systemweit – nur im eigenen Script. Ich habe mal irgendwo gelesen, dass nichts in js parallel laufen kann, aber mir widerstrebt es rein aus technischer Sicht, es so zu machen. Nenn es eine Berufskrankheit. JS läuft immer single-threaded, aber in der ioBroker-Sandbox ist fast alles asynchron. Es läuft also nicht parallel – es wird nur über die Event-Loop nacheinander abgearbeitet.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    Dr. BakteriusD
    @topsurfer sagte in PNG zum "blinken bringen", mittels Blockly-Pause ... (?): Den Blink- Rhythmus kann man aber nicht dort einstellen, oder? Nein, dafür braucht es dann eine andere Lösung.
  • 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
  • Temperatur Soll/Ist

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    3k Aufrufe
    R
    Hallo, ich wollte mal fragen ob sich meinen Flow mal jemand ansehen kann… irgendwie funktioniert zwar meine VERGLEICH Funktion aber sobald ich die variable von fest auf msg.payload ändere geht es nichtmehr. Ich denke ich mache etwas falsch mit der aufbereitung des signals zur verarbeitung im der VERGLEICH Funktion. Vielleicht kann mir jemand helfen. [{"id":"2e21ea7b.d1de16","type":"ioBroker in","name":"Heizen_Windfang_set","topic":"Heizen_Windfang_set","payloadType":"value","x":141,"y":936,"z":"943d2350.6bc2e","wires":[["50876867.af7898"]]},{"id":"c8b3e754.374c18","type":"ds18b20","name":"windfang","sensorid":"28-0000063a0c27","timer":"15","x":106,"y":853,"z":"943d2350.6bc2e","wires":[["b53a0cbe.4ac5f"]]},{"id":"3f122220.c0edde","type":"function","name":"Vergleich","func":"var ist = msg.payload.Temp_Windfang;\nvar soll = msg.payload.Soll_Windfang;\n//var ist = 11.12;\n//var soll = 20.34567;\nif (ist>soll)\n{msg.payload=1;\n}\nelse\n{msg.payload=0;\n}\nreturn msg;","outputs":1,"noerr":0,"x":592,"y":1000,"z":"943d2350.6bc2e","wires":[["b97addac.46852"]]},{"id":"243d02eb.dbc2fe","type":"debug","name":"","active":true,"console":"false","complete":"false","x":590,"y":937,"z":"943d2350.6bc2e","wires":[]},{"id":"b53a0cbe.4ac5f","type":"function","name":"Temp_Windfang","func":"var Temp_Windfang = msg.payload;\nmsg.payload=Temp_Windfang;\nreturn msg;","outputs":1,"noerr":0,"x":382,"y":854,"z":"943d2350.6bc2e","wires":[["c25a309f.3da5d","3f122220.c0edde"]]},{"id":"c25a309f.3da5d","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":592,"y":855,"z":"943d2350.6bc2e","wires":[]},{"id":"50876867.af7898","type":"function","name":"Soll_Windfang","func":"var Soll_Windfang = msg.payload;\nmsg.payload=Soll_Windfang;\nreturn msg;","outputs":1,"noerr":0,"x":374,"y":936,"z":"943d2350.6bc2e","wires":[["243d02eb.dbc2fe","3f122220.c0edde"]]},{"id":"b97addac.46852","type":"debug","name":"","active":true,"console":"false","complete":"false","x":583,"y":1060,"z":"943d2350.6bc2e","wires":[]},{"id":"1edc21f7.e123de","type":"inject","name":"","topic":"","payload":"20","payloadType":"string","repeat":"10","crontab":"","once":false,"x":100,"y":983,"z":"943d2350.6bc2e","wires":[["50876867.af7898"]]},{"id":"33779bdc.cc8864","type":"inject","name":"","topic":"","payload":"25","payloadType":"string","repeat":"15","crontab":"","once":false,"x":107,"y":891,"z":"943d2350.6bc2e","wires":[["b53a0cbe.4ac5f"]]}] danke TOBI
  • Typenbezeichnung auslesen

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    B
    Moin, Sorry, hatte die letzten Tage keine Zeit. Hab es jetzt ausprobiert wie Pix es beschrieben hat. Funktioniert super, Dankee :mrgreen:
  • Konsolen-Befehl per remote ssh abgeben

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    R
    Hallo fischi87 wie ich sehe ist das schon gelöst. aber ich antworte noch für die andere:-) -ja, Radio ist installiert auf einem anderem RPI. Du hast das mit ioBroker gelöst und bei mir läuft das auf der CCU Zentralle Gruss
  • [gelöst]per Ping SV steuern

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    3k Aufrufe
    paul53P
    @fischi87: Es wäre doch kein Problem das Skript einfach zu erweitern richtig? ` Kein Problem, wenn es zur Funktion passt.
  • Datensicherung

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    947 Aufrufe
    etvE
    ..OK, danke - von obiger Frage abgelenkt daran gar nicht gedacht, sorry….
  • Post an Meterhomeserver senden

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    V
    Morgen, noch keiner Zeit gehabt, das durchzulesen, keine Sorge, kommt Zeit, kommt Rat… Gesendet von meinem iPhone mit Tapatalk
  • Variable nach xx Minuten zurücksetzen

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    P
    Hallo, oder so: on({ id: idVariable, // Variable wird überwacht (idVariable muss natürlich im Skript oben deklariert werden) change: 'ne' }, function (obj) { if (obj.newState.val === true ) { // wenn Variable auf true gesetzt wird setStateDelayed(idVariable, false, 30 * 60 * 1000); // nach 30min zurücksetzen } }); oder noch kürzer müsste auch gehen (nicht probiert :roll: ) on({"javascript.0.Variable", // so gehts auch statt id val: true }, setStateDelayed("javascript.0.Variable", false, 30 * 60 * 1000); // nach 30min zurücksetzen ); Gruß, Pix 5373_img_4513.jpg
  • Anfänger sucht Einstieg

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    748 Aufrufe
    paul53P
    @mrrioes: Habe keine Erfahrungen mit Javascript und bekomme den Eindruck, dass es sich doch stärker von C unterscheidet als ich dachte. Ich lerne auch noch. Für C-Programmierer sollte https://wiki.selfhtml.org/wiki/JavaScript die nötigen Informationen liefern.
  • [gelöst]Bei mir funktioniert der functions-Selector nicht, wo ist mein Fehler?

    Verschoben
    11
    1
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    C
    Hi Norbert, ich sage mal nur: "lol". :lol: Der Restart meiner "Himbeere" hat das Problem auch gelöst. Einen Tag Problem wälzen in den Sand gesetzt, aber jetzt kann ich in Ruhe und zufrieden einschlafen. Danke Norbert und auch danke an vegetto Gruß Christoph
  • Scriptsuche / Alle Lichter in Gewerk oder Raum aus

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    859 Aufrufe
    Jey CeeJ
    Hi Michael, schau mal hier vorbei: http://forum.iobroker.de/viewtopic.php?t=535
  • WOL funktioniert nicht

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    689 Aufrufe
    M
    Ja hier lag der Fehler.. Hab die Zeile angepasst: on("javascript.0.IT.WOL_PC"/*IT.WOL_PC*/, function (obj) Jetzt passt es. Danke 4720_fen0.jpg 4720_fen1.jpg
  • Wert von Homematic Gerät bei Funktion abrufen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Subscribe erstellen

    Verschoben
    19
    0 Stimmen
    19 Beiträge
    3k Aufrufe
    B
    So, jetzt läuft es: hab den JavaScript Adapter neu installiert. Danach ist mir auch aufgefallen, das ich die JavaScript Version 1.0.8 anstatt 1.0.7 drauf habe. Danach stand zumindest in der Log: ` > javascript-0 Stop javascript script.js.Script1 javascript-0 script.js.Script1: registered 2 subscriptions and 0 schedules javascript-0 Start javascript script.js.Script1 ` Danach ging es immer noch nicht, weil er das Script sofort wieder beendet hat. Script komplett gelöscht und neu erstellt…. Taaattaaaaaa: > script.js.Script1: TVTrigger! So richtig nachvollziehbar ist es für mich immer noch nicht. Aber zumindest funktioniert es jetzt ;) Danke für die Hilfe…
  • Script zum Schalten eines HM Aktors zu verschiedenen Zeiten geht nicht…

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    etvE
    …ja so ist es! Ich hab es mit parseInt umgewandelt und die Hochkomma gelöscht und nun läuft es ohne Probleme, danke dir! Ja, JavaScript is noch nicht ganz meines :D Just 4 Info - noch zu JavaScript: Nach dem Aufhängen gestern von JavaScript sind mir die Prozesse im Raspi trotz JavaScript restart hängen geblieben..... ...hab ich heute gesehen, als die CPU Last auf 70% oben war :o Ich hab die Prozesse mit kill (aber mit -s 64! weil default kill ging nicht) verabschiedet und nun läuft's wieder rund! Was ich mich noch frage und im Forum noch nicht gefunden habe, wo ich die gesetzten schedules und subscriptions sehe - wird jedoch ein eigener Thread werden - das wird mehrere interessieren denke ich... --> der Link zum neuen Thread in dieser Frage: http://forum.iobroker.net/viewtopic.php … 798#p15334 Grüße etv
  • Scripte eines Bereichs zusammen fassen?

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    701 Aufrufe
    B
    Hallo etv, ich kann mich Jay Cee nur anschließen. Ich habe in meinen Scripten grundsätzlich den Auslöser von den eigentlichen Scripten getrennt. Damit meine ich, dass ich die Aktion selbst in einer separaten Funktion auslagere und einen Bereich für die Auslöser am Anfang stehen habe, die jeweils die Funktionen für die Aktion aufrufen. Das alles ist jeweils in einem Skript zusammengefasst. Klingt vielleicht erstmal komplizierter, als es ist. Mein Beispiel der Jalousiesteuerung sollte das deutlicher machen: Im Bereich "Jalousie Steuerung (Zeit)" wird das recht deutlich. http://forum.iobroker.net/viewtopic.php?f=21&t=1244 Viele Grüße Andreas
  • PING-Statusänderung an CCU-Systemvariable übergeben

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    3k Aufrufe
    A
    Na ja, dann mal noch viel Spaß. Unterstützung wirst du hier immer durch die Profis bekommen, dessen kannst du sicher sein. Ich finde ioBroker schon wirklich klasse, und habe großen Respekt an die Entwickler. CCU.IO war schon toll, aber ioBroker… Allerdings ist ioBroker wirklich nur was für Leute, die sich damit auch wirklich beschäftigen wollen. So "bequem" wie es einem in der Homematic WebUI gemacht wird ist es definitiv nicht. Aber dafür so richtig mächtig, und durch den vis auch sehr individuell.
  • Portierung CCU.IO

    Verschoben
    52
    0 Stimmen
    52 Beiträge
    6k Aufrufe
    D
    Hallo? Jemand da? Lasst mich bitte nicht hängen. Irgendwie hab ich den IOBroker kaputt upgedatet. Bevor ich jetzt alles platt mache würde ich gerne noch retten was zu retten ist… Ich hoffe jemand kann mir da helfen. Gruss Ralf
  • Verzögerung im Script einbauen

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    paul53P
    @stephan61: wie kann ich eine Verzögerung einbauen das erst wenn länger als 1 Minuten der Stromverbrauch unter 400 Watt ist die Anzeige Bügeleisen aus erscheint ` var verbrauch = parseFloat(data.newState.val), einaus = ""; if (verbrauch >= 400 ) { if (timer) { clearTimeout(timer); timer = null; } setState ("stromverbrauch.zustand-buegeleisen", '1' ); setState ("stromverbrauch.buegeleisen", verbrauch ); einaus = 'ein'; } else if (verbrauch <= 390 ) { var timer = setTimeout(function () { setState ("stromverbrauch.zustand-buegeleisen", '0' ); setState ("stromverbrauch.buegeleisen", verbrauch ); einaus = 'aus'; }, 60 * 1000); }
  • ACK für write-only Variablen (ON_TIME)?

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    878 Aufrufe
    Niemand hat geantwortet
  • [gelöst]Datei erzeugen writeFile

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    L
    1000 Dank BF. Ich habe es jetzt hinbekommen. Da ich dem zu schreibenden File immer Zeilen hinzufügen möchte sieht die Lösung leicht abgewandelt so aus: var fs = require('fs'); fs.appendFileSync("/opt/logoutput.txt", "Testtext1;" + "\n"); Das + "\n" fügt einen Zeilenumbruch hinzu. mit writeFile habe ich keinen append hinbekommen vG Looxer

712

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge