Weiter zum Inhalt

Skripten / Logik

16.7k Themen 216.0k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    maxclaudiM
    @Murphy-0 sagte: @maxclaudi Habe dein zURLtool geladen und installiert. Die Freischaltung mit den von dir gesendeten Daten funzt perfekt. zURLtool funktioniert ! Vielen Dank für deine Arbeit !!! Hallo Murphy, vielen Dank für deine Rückmeldung und den erfolgreichen Testlauf. Genau so soll es sein: Eintragen, Freischalten und direkt loslegen! Viel Spaß beim Optimieren deines Scripts!
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    Murphy 0M
    @tourer4778 Das ist ganz einfach. Du addierst die Leistung deiner Wechselrichter als maxSolarPower. Dieser Wert wird dann für die Formel zur Berechnung genommen und du bekommst automatisch die Leistung die jeder deiner Wechselrichter haben muss. [image: 1786870575867-img_4130.jpeg] Diese Leistung übergibst du dann nacheinander an deine Wechselrichter. In meinem Blockly unten benutze ich noch einen Korrekturwert für die Leistung. Das liegt an der unterschiedlichen Ausrichtung der Panele und berücksichtigt die unterschiedlich Leistung der Wechselrichter. Der Multiplikator ist mit Pfeil markiert. [image: 1786870876025-img_4128.jpeg] Den Multiplikator brauche ich um die erzielte Leistung jedes Wechselrichters mit dem Bedarf abzugleichen. Meine Nulleinspeisung ist auf ca. -50 Watt ausgelegt. Akku wird nicht geladen. [image: 1786871273695-img_4132.jpeg] Akku wird geladen. Wegen Wolken reicht die Leistung gerade nicht für die gesamt benötigte Menge an Strom. [image: 1786871362148-img_4133.jpeg]
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO Danke für die Analyse und der grundsätzlichen Bestätigung, dass es eigentlich richtig ist und auch funktionieren sollte. Unterdessen ist es so, dass ich den wiederholzykluss auf 20min gestellt habe und zwischen jeder Anfrage 1 Minute warte. Zusätzlich habe ich ja die udev-Regel entfernt und das Portweiterleiten mit den Proxmox eigenen Mitteln gemacht. Es läuft nun seit 25h so, und Fehler mit keinem String ist noch 2x aufgetreten, hat sich unterdessen aber sogar selber gefixt und läuft seither ohne erkennbar Fehlermeldungen durch. Weil es ja so merkwürdig reagiert hat, habe ich den Pylontechadapter nochmals installiert und die neue Schnittstelle eingerichtet. Nach sehr langem warten wurde der Adapter sogar grün und er hat tatsächlich die BMS Infos rausgelesen, aber die Zelleninfos kamm nicht. Ich habe zwar keine Ahnung wie das Pytes BMS Tool das wirklich macht, aber ich habe den Eindruck, dass der Abfragezyklus nicht mehr als 1x pro Minute gestartet werden darf. Das Pytes Tool bringt alle infis eigentlich recht schnell. Bei meinem 12V System mit den DALI ist es so beschrieben, dass man nur 1x pro Minute Abfragen, kann weil der Prozessor sonst seine Aufgabe nicht machen kann. Aktuell läuft es und ich beobachte das sehr intensiv, weil ich der Sache noch nicht ganz traue.
  • Flow für IP-Cam

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    3k Aufrufe
    F
    Hi, das mit dem Flow hab ich mal probiert, hat aber leider net funktioniert…..
  • Node red für Anfänger/ NOOBs (wie mich) / Sammlung der Funktionen für nodes

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    13k Aufrufe
    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":[object Object]}] [933_2016-01-10_16_39_57-.jpg](/assets/uploads/files/933_2016-01-10_16_39_57-.jpg)
  • [gelöst]Homepilot JSON einlesen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    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

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    4k Aufrufe
    M
    Hallo soef, Danke, genau das wars. Funktioniert jetzt wie es soll. Gruss, mayer
  • [erledigt]createState

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    blauholstenB
    So heute nochmal getestet, und es geht wieder! :roll:
  • Text Nachrichten per Twiter versenden

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    N
    Die Logik darüber, welche Informationen zum Senden führen sollen, muss ja irgendwo her kommen… Diese Filterung kannst du auch in Node-Red machen. Entweder in einem Function-Node (per if und einfach kein msg per return senden, wenn nicht gesendet werden soll) oder die Prüfung in einen switch-Node einbauen. Der Text im function Node müsse in etwa so aussehen: if (msg.payload===true || msg.payload=="true") { msg.payload="xxx"; return msg; } else return null; Die Abfrage sowohl für Typ boolean als auch für string ist deshalb drin, weil es manchmal Probleme mit der automatischen Typkonvertierung gab.
  • [gelöst] Home24 Mediaplayer request senden

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    etvE
    Hallo Andy, @AndyUM61: Hat sich erledigt: __var Url = ""; Url = 'http://[meine IP]:50000/track=silence.ogg'; request(Url);__ ` bei mir tut sich da gar nix, außer diese Meldung javascript-0 2016-01-06 20:38:10 error at script.js.Test_Home24_Player_ansprechen:3:1 javascript-0 2016-01-06 20:38:10 error ReferenceError: request is not defined javascript-0 2016-01-06 20:38:10 error ^ javascript-0 2016-01-06 20:38:10 error request(Url); javascript-0 2016-01-06 20:38:10 error script.js.Test_Home24_Player_ansprechen: script.js.Test_Home24_Player_ansprechen:3 und wenn ich diesen Teil davor stelle var http = require('http'); und danach dann den Request mit http.request(Url); schreibe, dann hab ich zwar keinen Fehler mehr, aber auch keinen Ton aus dem Handy ;) Funktionieren tut es grundsätzlich, denn via CCU oder Browser kann ich den Befehl absetzen… Grüße etv 2858_iobroker.2018-12-04_alexa_2_0.log
  • [gelöst] Daten eine Temperatursensors in eione .txt Datei schreiben

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    7k Aufrufe
    L
    ja, absolut korrekt. hatte ich uebersehen, weil nicht getestet aber es entspricht auch der Erklaerung. Da bin ich ja teilweise gerettet :oops:
  • [Gelöst] Addieren des Stromverbrauches von L1 L2 L3

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    6k Aufrufe
    H
    Ich habe eben gerade den ersten Eintrag um meine Lösung erweitert. Vielleicht kann es ja jemand brauchen.
  • Funk Schalter PRESS_LONG Wert erhöhen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • [gelöst] Zeilenumbruch in Text

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    4k Aufrufe
    H
    Danke Pix….. Gesendet von meinem Lenovo TAB 2 A10-70L mit Tapatalk
  • [gelöst] Aus Skript ein weiteres Skript starten

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    H
    Hey Jey Cee… Danke für den Tipp. Also direkter Start ist nicht möglich. Dafür einfach einen virtuellen Schaler setzen, welcher dann dass andere Skript startet. Gesendet von meinem Lenovo TAB 2 A10-70L mit Tapatalk
  • POPUP bei ALARM

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    P
    Hallo Manuel, ist das eine Homematic-Variable? Dann so: /* Pushmeldung bei Änderung der Variable ALARM */ var idAlarm = 'hm-rega.0.12345'; // REGA Alarmvariable vom Homematic eintragen on({ id: idAlarm, val: true }, function(obj) { var status = 'Tür offen', betreff = 'ioBroker Alarm', prio: '1', // ansage = betreff + '!' + ' ' + status + '.'; sendTo('pushover', { message: status, title: betreff, priority: prio }); // optional auch Ansage // setState("sayit.0.tts.text"/*Text to speech*/, ansage); }); Optional mit Sayit - Ansage. Dann bitte "//" in Zeile 10 und 19 löschen. Gruß Pix EDIT: VIS Popup kannst du über die Sichtbarkeit machen. Ein Textfenster (zB HTML Basic) mit großem Z-Index erstellen und Alarmtext reinschreiben. Dann in den Einstellungen die Sichtbarkeit auf true stellen bei ID hm-rega.0.12345. Dann wird das Fenster nur angezeigt, wenn die hm-rega.0.12345 auf true geht.
  • Happy New Year

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    712 Aufrufe
    V
    Danke, kann ich nur beipflichten! Gesendet von meinem iPhone mit Tapatalk
  • Neuling?

    Verschoben
    22
    0 Stimmen
    22 Beiträge
    5k Aufrufe
    paul53P
    So sieht die Javascript-Lösung für die Aufgabenstellng aus: var request = require('request'); var url = 'http://api.openweathermap.org/data/2.5/weather?q=Strehla,DE&units=metric&APPID=e5de2c3e2339a69b6d181c0cb9d2e5d8'; var wetter = {}; // alle 15 Minuten schedule("*/15 * * * *", function () { request(url, function(error, response, body) { if (!error && response.statusCode == 200) { wetter = JSON.parse(body); setState("hm-rega.0.4764",wetter.main.temp.toFixed(2) + " °C"); setState("hm-rega.0.4765",wetter.main.pressure.toFixed(1) + " hPa"); setState("hm-rega.0.4766",wetter.main.humidity;.toFixed(0) + " %"); setState("hm-rega.0.4767",wetter.wind.speed.toFixed(1) + " m/s"); setState("hm-rega.0.4768",wetter.wind.deg.toFixed(0) + " °"); } }); });
  • Abfrage von Datenpunkten

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    9k Aufrufe
    paul53P
    @paul53: Die verkürzte Schreibweise on(eins, status()); funktioniert leider nicht. Richtig: on(eins, function() {status();}); on(zwei, function() {status();}); on(drei, function() {status();}); on(vier, function() {status();}); ```` ` oder so: on(eins, status); on(zwei, status); on(drei, status); on(vier, status);
  • Xml2js Probleme bis zum javascript restart…

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    880 Aufrufe
    etvE
    sch…. - danke dir, das war's! Man sollte nicht am Abend und ohne Lesebrille programmieren :) Grüße etv
  • Script optimieren - Frage an Experten mit einem Beispiel

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    etvE
    …danke nochmal an paul53 und pix für ihre genialen Beispiele! Hab beide Versionen ausprobiert - sie funktionieren! Im Einsatz hab ich nun die Version von paul53, weil's noch einen Tick kürzer ist.... Beide Scripte haben sehr interessanten code drinnen, der mir bei meinen weiteren Projekte sicher weiter helfen wird! Grüße etv
  • Taster in Java Script träge?

    Verschoben
    4
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    H
    Hallo zusammen. Ich hatte bis vor geraumer Zeit exakt das selbe Phänomen. Ich schalte meine hue leuchten über ein tcl Script, welches auf der ccu2 liegt. Verzögerung nach dem drücken des Schalters jeweils 4-6 Sekunden. Eine Optimierung der Skripte, Umstellung von einzelleuchten auf Gruppen hat alles nichts gebracht. Ich konnte das Problem letztlich lösen, indem ich die Parameter des Schalters auf der Ccu selbst geändert habe. Vielleicht hilfts ja. 253_image.png
  • Rollläden gemeinsam fahren

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    975 Aufrufe
    Niemand hat geantwortet

396

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge