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.
  • 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
    1k 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
    808 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
    919 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
    751 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
    4k 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
    833 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
    4k 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
    9k 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
    923 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

395

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge