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.
  • Node module state? Grundlagenfrage.

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    680 Aufrufe
    Niemand hat geantwortet
  • Popup und Counter bei Bewegung

    Verschoben
    15
    0 Stimmen
    15 Beiträge
    5k Aufrufe
    S
    Hallo Pix, bisher habe ich es leider noch nicht hinbekommen den View automatisch zu wechseln. Kannst du mir nochmal helfen? Vielleicht hilft mir das auch bei meinem anderen Fred :-) Gruß Sven Gesendet von iPhone mit Tapatalk
  • HM Aktoren in Reihenfolge schalten

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    757 Aufrufe
    paul53P
    @Marcolotti: …Elektroheizungen nacheinander jeweils z.B. für 15 Minuten einzuschalten. ` Wie man das nacheinander erfolgende Einschalten realisieren kann, kannst Du an http://forum.iobroker.de/viewtopic.php?f=21&t=2458&sid=3e38fb413418030b99a6f3f2df06c556&sid=3e38fb413418030b99a6f3f2df06c556#p21662 sehen. @Marcolotti: Vielleicht wäre es gar sinnvoller das HM Wandthermostat anzusprechen. Manche Zimmer erfordern vielleicht ein Heizen garnicht, weil die Temperatur stimmt. ` Der WT stellt selbst fest, ob Heizen erforderlich ist. Allerdings sollte die Elektroheizung nur eingeschaltet werden, wenn der Temperatur-Istwert um einen bestimmten Betrag (z.B. 0,3 K) unter dem Sollwert des betreffenden Raumes liegt. Damit dies möglichst häufig der Fall ist, macht es Sinn, den WT(Gruppen)-Sollwert aller betreffenden Räume um 0,5 K oder 1 K abzusenken. Der Vergleich für die Elektroheizung muss dann aber mit dem WT-Sollwert + Absenkwert erfolgen.
  • Best practice: Verzögert schalten

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    R
    die Random Funktion ist gut zu kennen, danke. Bei mir hat jeder Rolladen seine eigene Verzögerungszeit fix zugewiesen :)
  • [geloest] Loeschen von States -

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    3k Aufrufe
    blauholstenB
    @Bluefox: @blauholsten: Hi, das mit der each…. klappt! Danke. Aber deleteState klappt nicht. Es kommt immer ....cannot delete State "…..", not exists obwohl das State definitiv existiert. Versuch mal von github die neue Version. Hi, habe jetzt die Version 2.03 JS. Das mit delete klappt trotzdem nicht! Diesmal aber als Warnung und nicht als Error. Kann das jemand bestätigen?
  • Flow für WeatherUnderground

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    3k Aufrufe
    OstfrieseUnterwegsO
    Prima.
  • Rechnen mit 2 Objekten

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    P
    Tausend Dank euch allen! Ich hab es jetzt mit Schedule eingebunden Ist das so in Ordnung? createState("sdcard_root_free",0); function memBerechnen(){ var sdcard_root_free = getState("rpi.0.sdcard.sdcard_root_total"/*rpi.0.sdcard.sdcard_root_total*/).val - getState("rpi.0.sdcard.sdcard_root_used"/*rpi.0.sdcard.sdcard_root_used*/).val; log("sdcard_root_free: " + sdcard_root_free); setState("sdcard_root_free",sdcard_root_free); } schedule('*/10 * * * *', memBerechnen); 10-Min Rythmus reicht mir vollkommen! Gruß Johnny
  • Sayit-Script + Schedule

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    coyoteC
    Ich häng mich hier mal kurz rein. Also ich verstehe nicht ganz warum du am Ende setState ("sonos.0.root.192_168_178_218.favorites_set", 'Radio'); machst, du speicherst doch vorher den aktuellen Sender, da schreib ihn doch einfach wieder rein. Ich mach das z.B. so var idSonosfav = getState("sonos.0.root.192_168_66_40.favorites_set").val; var idSonosplay = getState ("sonos.0.root.192_168_66_40.state_simple").val; if (obj.newState.val ==="green" && idSonosplay === true) { setState (idSayIt, "Alles in Ordnung, der CO2 Gehalt liegt bei" + getState('hm-rega.0.1968').val); setTimeout(function () { setState ("sonos.0.root.192_168_66_40.favorites_set", idSonosfav); }, 9000); });
  • Variable Zeit/Schedule Funktion

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    4k Aufrufe
    coyoteC
    Ja ich werde mir dein Script nochmal genauer ansehen. Hab da noch nicht so den Durchblick ;-) Ich probiere einfach mal aus Gesendet von meinem Nexus 5X mit Tapatalk
  • Probleme seit update

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    N
    Ich würde erstmal node-red in der aktuellen Version drüber installierten. Unter Linux geht das mit den folgenden Kommandos cd /opt/iobroker/node_modules/iobroker.node-red iobroker stop node-red.0 npm install –unsafe-perm node-red iobroker start node-red.0 Gesendet von meinem SM-G900F mit Tapatalk
  • Länge/Breite in Javascript Adapter einbinden

    Verschoben
    25
    0 Stimmen
    25 Beiträge
    5k Aufrufe
    ruhr70R
    @Bluefox: Du hast es nicht ganz verstanden. Asynchron heißt: es wird als Auftrag gespeichert und irgendwann später ausgeführt. Und wenn es fertig ist, dann wird die ready Funktion ausgeführt. "Irgendwann später" heißt, wenn er nichts zu tun haben wird und bei dir muss er was tun, nämlich, log ausgeben. ` Ich danke Dir für Deine Erklärung. Das Ergebnis spielt sich ja auch im Log wieder. Das bedeutet aber doch, dass ich um eine setTimeout() Funktion nicht drumherum komme, wenn ich den geschriebenen Datenpunkt im weiteren Verlauf benötige oder? Mit setTimeout() habe ich das jetzt realisiert. Hatte die Hoffnung, dass es auch "eleganter" geht.
  • Funktion wird bei Scriptstart ausgeführt, warum?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    726 Aufrufe
    R
    dankeschön
  • Script beenden

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    5k Aufrufe
    BluefoxB
    @paul53: Eine JS-Funktion kann mit https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/break beendet werden. ` Mit break kann es nicht funktionieren. Weil break nur in den Schleifen funktioniert. ruhr70 hat gute Lösung vorgeschlagen.
  • Email bei Tür wird geöffnet

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    992 Aufrufe
    C
    super danke , hat geklappt
  • [gelöst] Globale Scripte

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    OstfrieseUnterwegsO
    Danke, so mache ich das.
  • Programmierphilosophie - wie geh ich's an?

    Verschoben
    10
    1
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    P
    Eine Riesenerleichterung! Danke! :lol: Gruß Pix
  • Hilfe beim skripten

    Verschoben
    47
    0 Stimmen
    47 Beiträge
    9k Aufrufe
    R
    Ich meinte zum testen hatte ich eine true/false variable verwendet Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk
  • oder Verknüpfung

    Verschoben Gelöst javascript
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    paul53P
    @stephan61: buegeleisen und trigger haben den Wert 0 oder 1 ` Dann sollte auch das funktionieren (implizite Typwandlung): if (buegeleisen || trigger) { setState(idSayIt, "Achtung Bügeleisen ist an "); }
  • Javascript.0.scriptEnable ?

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    836 Aufrufe
    P
    Hallo Stephan, das ist richtig. Genau dafür ist das gedacht. Du kannst Skripte damit aktivieren/deaktivieren (zB aus VIS oder per Skript oder Szenenadapter). Beispiele: Skript zur Kontrolle des Rollladens Balkontür abschalten, während die Balkontür offen steht (Aussperrschutz). Skript zur Überwachung der Fenster und Türen einschalten, wenn Abwesenheit Theoretisch lässt sich das alles auch innerhalb des Skriptes programmieren. Für Einsteiger ist ScriptEnable aber sicher der übersichtlichere Weg, vor allem, da Skripte per VIS-Widget aktiviert/Deaktiviert werden können. Gruß Pix
  • Gelösst Ansage Fenster offen

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    habe den Fehler gefunden ich habe die text Datei vom Script Fenster zählen genommen in dieser Textdatei werden zwischen den textestellen ein als zeilenumbruch eingefügt das führte zu der komischen Ansage . Habe nun in dem Script Fenster eine 2 textdatei erzeugt mit einem Und als trenner und jetzt ist die Ansage in Ordnung Gruß Stephan

208

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge