Skip to content

Skripten / Logik

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

16.6k Topics 213.6k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    A
    @Dave69-CH Kannst du mir mal deinen Link zu der Proplanta Seite schicken. Ich denke das die Schweizer Version anders aufgebaut ist und deswegen die Zeit für die nächste Aktualisierung mit meinem Filter nicht gefunden wird. Auf der Seite werden diese Zeilen gesucht: [image: 1771532044543-1dd3b19e-1c7b-4586-814f-de0746287907-grafik.png] Entweder gibt es die in der Schweizer Version nicht, oder sind anders beschrieben.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    Jens G.J
    Danke werde ich morgen Mal testen
  • 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
  • Button zum erstellen eines neuen Scripts funktionier nicht.

    Moved
    8
    0 Votes
    8 Posts
    1k Views
    B
    Hallo, Problem gelöst. Nach einigem rumspielen kam plötzlich das Script. Die Lösung war anscheinend die Eingabe einer "1" in der Filterzeile oben unter ID. Das Feld/Filter war aber vor der Eingabe leer.
  • IoBroker out / Weitere Merkmale/Standardvariablen mitgeben?

    Moved
    2
    0 Votes
    2 Posts
    1k Views
    N
    Hallo Frank, der out-Node unterstützt zurzeit nur das Setzen des Werts und implizit durch die Auswahl der id und des Typs das Setzen des ack-Flags. Soweit ich gesehen habe, können mit der verwendeten Funktion setState der states-Library auch keine Stammdaten der States verändert werden. Gruß Markus
  • Count Up Script Ausgabe in Tagen

    Moved
    2
    0 Votes
    2 Posts
    973 Views
    B
    Die Lösung war doch viel einfacher als gedacht….. var then = new Date(2015, 11, 10, 00, 00, 00), // month is zero based now = new Date; // no arguments -> current date days = "daysincebirth" // 24 hours, 60 minutes, 60 seconds,1000 milliseconds setState (days, Math.round((now - then) / (1000 * 60 * 60 * 24))) und es funktioniert….
  • [erledigt]Benutzen von "confirm"

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    blauholstenB
    Hi, habe es jetzt folgendermaßen gelöst. Beim betätigen des HQ.Widget schreibe ich einen DP auf true. Dieser wiederum lässt ein View in Widget öffnen, das ich per setStateDelay im Script dann nach einer gewissen Zeit verschwinden lasse. Vielen Dank für eure Hilfe. :idea:
  • Skript für Temperaturmessung bitte um Hilfe

    Moved
    3
    0 Votes
    3 Posts
    808 Views
    H
    Danke für die rasche Hilfe. Super :) Lg Manuel
  • Auslösen eines Skriptes mittel Füllstandssensor

    Moved
    15
    1
    0 Votes
    15 Posts
    3k Views
    wendy2702W
    Das andere Script läuft jetzt auch ohne Error im log. Musste also nicht mehr testen. Danke
  • XML Daten (TV Programm) in ioBroker

    Moved
    42
    0 Votes
    42 Posts
    15k Views
    T
    @pix: @tesso: @pix Kannst du die aktuellen widgets und css evtl. auch in deinem Post verlinken? Ich verliere hier den Überblick was ich nun brauche, um das Skript nutzen. ` erledigt, siehe erster Post. Gruß Pix ` Danke
  • Wie kann ich die Size und DateCreated einer Datei ermitteln?

    Moved
    4
    0 Votes
    4 Posts
    899 Views
    ThisoftT
    Vielen Dank, fs.stat (und die ähnlichen Befehle die ich in der Doku gefunden habe) hilft mir sehr weiter. Nach einigem Try and Error bin ich jetzt auch dahintergekommen wie ich das aufrufen muss ;) . Manchmal braucht man eben einen Schubs… Gruß Thilo 4867_2018-12-23_14_16_53-window.jpg
  • Logging Vielfach

    Moved
    4
    2
    0 Votes
    4 Posts
    993 Views
    E
    @ErRi: Hallo, bin recht neu hier und versuche gerade meine Rolladensteuerung von der CCU2 auf iobroker umzuziehen. Ich habe nur geringe Programmierkenntnisse, versuche die Beispielscripte für meinen Bedarf anzupassen. Ich habe nun das Rolladenscript swoweit, dass es i.d.R. funktioniert, nur in der Log-Datei werden einige Zeilen/Befehle zigfach ausgegeben. Bis zum ERROR: You are sending too fast. Habe das Script schon aufgrund Beitrag hier im Forum von "setTimeout" auf "setStateDelayed" geändert, aber es ist das gleiche Ergebnis. Vermutlich habe irgendwo einen Fehler eingebaut. filename="20151231-Log-vielfach1.png" index="1">~~ filename="20151231-Log-vielfach2.png" index="0">~~ Vielen Dank schon vorab für die Hilfe. ` Hallo, ich habe inzwischen meine Rolladensteuerung umgestellt auf Szenen. SetTimeout und setStateDelayed benutze ich hierfür nicht mehr. Somit ist dieses Problem für mich gelöst, wobei ich immer noch nicht weiß was da falsch war.
  • Nudging - Nur einen Wert in eine Variable für Sayit

    Moved
    60
    0 Votes
    60 Posts
    8k Views
    P
    Hallo, bin dem Link gefolgt und habe den Eintrag mit dem Skript durchgesehen. Da gibt es diese Zeile: var Temperatursensor = getState("hm-rpc.0.LEQ0177463.1.TEMPERATURE"); /*Temperatursensor:1.TEMPERATURE*/ ````da fehlt ein ".val": var Temperatursensor = getState("hm-rpc.0.LEQ0177463.1.TEMPERATURE").val; /Temperatursensor:1.TEMPERATURE/ Gruß Pix
  • [gelöst] Alte Variablen löschen unter Javascript.0

    Moved
    3
    0 Votes
    3 Posts
    897 Views
    T
    Na klar! Ich war in iobroker.vis mit dem Objekt-Explorer unterwegs. Dort gibt es keinen Papierkorb. Aber im iobroker.admin schon ;)
  • Node-red Wetter auslesen und per Twitter versenden

    Moved
    4
    3
    0 Votes
    4 Posts
    5k Views
    N
    Hi, das http request node steht bereits auf JSON und gibt somit bereits ein Objekt zurück. Zweimal parsen geht nicht. Die angegebene forcast url sprengt wohl aber die internen Buffer sodass das nicht korrekt klappt. (Es kommen über 15000 Zeichen zurück). Wenn man statt der forcast url das aktuelle Wetter abruft, klappt das ganze aber ohne Probleme. Hier der Flow: [{"id":"970c6a1.f68f398","type":"inject","z":"500acb55.aff534","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":165,"y":463,"wires":[["d2963a9d.2d69c8"]]},{"id":"d2963a9d.2d69c8","type":"http request","z":"500acb55.aff534","name":"","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/weather?id=2810860&APPID=3a3827ac7226f28af97c2fb89b35b929&units=metric","x":372,"y":365,"wires":[["848759aa.7b78a8"]]},{"id":"848759aa.7b78a8","type":"function","z":"500acb55.aff534","name":"","func":"// OpenWeatherMap JSON Antwort parsen\n//var weather=JSON.parse(msg.payload);\n \n// Neue Nachricht mit Payload erstellen\nvar newMsg = { payload: \"Die aktuelle Temperatur in München ist \"+ msg.payload.main.temp + \" Grad.\" };\n \n// Zurückgeben der Nachricht\nreturn newMsg;","outputs":1,"noerr":0,"x":601,"y":360,"wires":[["830cca71.7cf338"]]},{"id":"830cca71.7cf338","type":"debug","z":"500acb55.aff534","name":"","active":true,"console":"true","complete":"payload","x":735,"y":449,"wires":[]}]
  • Flow für Auslösung auf Änderung, nicht auf Aktualisierung

    Moved
    10
    1
    0 Votes
    10 Posts
    6k Views
    apollon77A
    Ich hab grad das folgende erfahren: In node-red 0.13 wird die Switch-Node wohl auch Vergleiche auf Basis des letzten Wertes erlauben
  • ScriptEngine Migration aus ccu.io

    Moved
    7
    0 Votes
    7 Posts
    2k Views
    eric2905E
    Genau den meinte ich. Gruß, Eric
  • [gelöst] Mein erstes Script - Temperaturdifferenz bewerten

    Moved
    8
    0 Votes
    8 Posts
    2k Views
    P
    Hallo André, Wichtiger ist, dass du den Überblick behältst. Ich habe derzeit über 100 Skripte, viele mit mehreren Hundert Zeilen. Mit organisierter Namensvergabe und möglichst einheitlicher Struktur innerhalb der Skripte geht das ganz gut. Immer schön kommentieren, das hilft. Gruß Pix Gesendet mit Tapatalk 9054_events.jpg
  • Datenrücksicherung nur Skripte

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    P
    Ja, früher in CCU.IO musste man auch mit eigenem eigenen Editor die Skripte im Ordner bearbeiten. Man konnte dadurch zwar leichter Sichern, aber der "eingebaute" Editor sorgt natürlich für Stabilität. Ich vermisse auch die Funktion, per Klick einzelne Skripte als Textdatei über den Browser zu sichern. Gruß Pix
  • Flow für IP-Cam

    Moved
    3
    0 Votes
    3 Posts
    3k Views
    F
    Hi, das mit dem Flow hab ich mal probiert, hat aber leider net funktioniert…..
  • 0 Votes
    6 Posts
    13k Views
    M
    so… jetzt stellen wir uns mal vor wir bekommen den Flur mit Zellen =(Array) und benötigen eine oder die andere zelle nicht... Dann wird Flur (array) auch kleiner.... aus unserem oberen Beispiel: [ [ "mqtt/0/DOino<>MQTT/0/58/1/0/0" ], "42.27", [ "mqtt/0/DOino<>MQTT/0/20/1/0/0" ], "-127.00" ] Zelle 0 :"mqtt/0/DOino<>MQTT/0/58/1/0/0" Zelle 1 :"42.27" Zelle 2 : "mqtt/0/DOino<>MQTT/0/20/1/0/0" Zelle 3 :"-127.00" und wollen z.B. alle Zellen mit dem Inhalt```` "mqtt/0/DOino<>MQTT/0/58/1/0/0" dafür wird ein Funktionsnode Benötigt mit folgenden code: var outputMsgs = msg.payload; var i; while ((i = outputMsgs.indexOf("mqtt/0/DOino<>MQTT/0/58/1/0/0")) != -1) { outputMsgs.splice(i, 1); } var msgNEWarray={payload: outputMsgs} return [msgNEWarray]; mit indexOf wird die Zelle gesucht, und wenn wir die Adresse der Zelle kennen, diese Zelle entfernt! hier noch ein beispiel mit entfernen von zellen mit "," oder "}" [{"id":"5bb24327.748f4c","type":"function","name":"clean array","func":"var outputMsgs = msg.payload;\n var i;\n while ((i = outputMsgs.indexOf(":")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf(",")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf("{")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\n while ((i = outputMsgs.indexOf("}")) != -1) \n {\n outputMsgs.splice(i, 1);\n }\nvar msgNEWarray={payload: outputMsgs}\nreturn [msgNEWarray];","outputs":"1","noerr":0,"x":252,"y":494,"z":"bc3e7d10.9bc388","wires":[[]]}] [933_2016-01-10_16_39_57-.jpg](/assets/uploads/files/933_2016-01-10_16_39_57-.jpg)
  • [gelöst]Homepilot JSON einlesen

    Moved
    8
    0 Votes
    8 Posts
    3k Views
    A
    Hallo Pix, Danke, der Heftrücken hat noch gefehlt in der Beschreibung nun bekomme ich eine Position ermittelt allerdings stimmt die nicht. Er zeigt mir 100% an obwohl 80 oder 0 sind und das auch noch 5 min. später , hast du da eine Idee an was das liegt
  • [gelöst ]UDP Message senden

    Moved
    3
    0 Votes
    3 Posts
    3k Views
    M
    Hallo soef, Danke, genau das wars. Funktioniert jetzt wie es soll. Gruss, mayer

296

Online

32.7k

Users

82.4k

Topics

1.3m

Posts