Skip to content

Skripten / Logik

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

16.6k Topics 213.7k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    Pedder007P
    @Schimi Danke, läuft nun auch bei mir :-)
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    L
    @berny-k Moin, wenn du keinen dynamischen oder Zeitvariablen Stromvertrag hast ist doch eigentlich egal wann du einspeist. Ansonsten kannst du das über die aktuelle PV-Leistung der Module regeln. Bei meinem Hyper ist das der Datenpunkt solarInputPower. Du gibst nur soviel Leistung am Ausgang zur Verfügung wie die PV Leistung ist. Am besten dafür eine weitere if-Abfrage bauen. Ich nutze mittlerweile javascript, da sieht das dann so aus: Setzen Modus if (ladenErlaubt) {zielModus = 1;} else if (entladenErlaubt) {zielModus = 2;} else if (aktuelleLeistung > 50 && (pvLeistung2 + pvLeistung3) > 80) {zielModus = 3;} Abfragezweig für Modus 3 ... // ---------------- Modus 3: PV-gestütztes Entladen ---------------- const pvEntladeLimitW = Math.max(0, pvLeistung2 + pvLeistung3 - 100); // nur Hyper-PV const bedarfHausW = Math.max(0, Math.floor(aktuelleEinspeisung)); // Netzbedarf const maxLadeleistungGesamt = 800; else if (zielModus === 3) { // --- Modus 3: PV-gestütztes Entladen --- const entladeGesamt = Math.min( pvEntladeLimitW, // PV2 + PV3 bedarfHausW, // nicht mehr als benötigt maxLadeleistungGesamt // Gerätegrenze ); Für die Math.max und Math.min Funktionen musst du dir in Blockly If-Abfragen bauen. Die gibt es nicht unter Blockly soweit ich weiss.
  • 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
  • Meldung Wasserstand tief

    4
    1
    0 Votes
    4 Posts
    362 Views
    paul53P
    @ingranu sagte: ca. 2h pausiert. Prinzip: [image: 1657817490686-bild_2022-07-14_185129450.png] Wert (unter "Trigger"): [image: 1657817517220-blockly_dp_props.jpg] Man muss erst eine dummy-Variable erstellen, um auf die Timer-Variable timeout zugreifen zu können.
  • Einmaliger Trigger, wenn ein Wert unter eine Schwelle fällt

    4
    0 Votes
    4 Posts
    329 Views
    SmartStuffCoyoteS
    @paul53 Danke dir, das scheint die Lösung zu sein. :) (An Blockly scheitert mein Verständnis irgendwie. Ich nehm lieber den Code.) @Homoran Sorry, hab mich unklar ausgedrückt. Ich wollte nicht extra nochmal einen User-Datenpunkt definieren müssen, nur um mir den Ein-/Aus-Zustand der Waschmaschine zu speichern.
  • Schedule

    javascript
    4
    0 Votes
    4 Posts
    171 Views
    M
    @asgothian Danke ich werde es mal testen und morgen berichten
  • [gelöst] Stark verzögerte Triggerreaktion IDs vom Selektor

    13
    1
    0 Votes
    13 Posts
    1k Views
    P
    @paul53 said in Stark verzögerte Triggerreaktion IDs vom Selektor: @puppet1912 sagte: Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen? Das Ergebnis des Selektors ist u.a. der Trigger. @puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor: Namen des eigentlichen Devices auzugeben Siehe hier. Super, vielen Dank. Schau ich mir direkt mal an. Wieder ein Punkt mal Javascript zu lernen. Danke und Grüße
  • Shelly schalten wenn ...

    10
    1
    0 Votes
    10 Posts
    499 Views
    haselchenH
    @dr-pie Corona schläft nicht und ich somit auch nicht 😎😉
  • Steckdose mit zwei Xiaomi Aquara Schalten

    14
    1
    0 Votes
    14 Posts
    879 Views
    crunchipC
    @djmarc75 sagte in Steckdose mit zwei Xiaomi Aquara Schalten: nach kurzer Zeit (sehr kurzer Zeit) den Klick nochmal ausführen. weil bestimmte Sensoren im Millisekunden Bereich doppelt senden, z.b die xiaomi BWM
  • Stromverbrauch auswerten und Gerät identifizieren

    32
    1
    0 Votes
    32 Posts
    2k Views
    M
    @maxpd So. Hier definiere ich anhand vom Peak des Stromverbrauchs welches Gerät gerade läuft oder gar welche Kombination ( da muss ich aber noch tüfteln ) [image: 1657535995076-5fee918b-f33b-4866-81b1-5925955910f2-image.png] Und hier prüfe ich anhand eines 5 Min Durchschnittes ob das jeweilige Gerät noch läuft, wobei ich eventuelle Dauerverbraucher vorher rausrechne: [image: 1657536039148-7297a9c7-d7ff-482e-bcd6-4a5c8d8b0c16-image.png]
  • Stromverbrauch sauber errechnen bei Daten aus PV-Anlage

    9
    2
    0 Votes
    9 Posts
    658 Views
    MatzebhvM
    Der errechnete Wert müssten ja "sauberer" werden, wenn der schwankende Wert als Trigger die Berechnung führt. Ich probiere das jetzt mal so und werde Morgen mal berichten. Sobald PV läuft triggert PV, ansonsten der Stromzähler. [image: 1657315375224-verbrauch.png] Matze
  • Solarüberschuss

    6
    1
    0 Votes
    6 Posts
    354 Views
    MichaelFM
    Mega, genau so Funktioniert es und ich habe es auch jetzt verstanden :-). Riesen Dank nochmal und grüße
  • Blockly zur Steuerung VW Connect / SoC für Elektroauto

    6
    2
    0 Votes
    6 Posts
    1k Views
    ?
    @djmarc75 klappt perfekt - DANKE
  • Programme über Blockly oder CCU3

    4
    0 Votes
    4 Posts
    211 Views
    T
    @dr-bakterius @mickym Vielen Dank! Denke ich werde es mal versuchen alles über den ioBroker laufen zu lassen. Wenn es nicht funktioniert, dann kann ich ja die CCU-Programme wieder aktivieren. Habe auch schon überlegt mit der Homematic von der CCU auf meine NAS umzuziehen, wo auch der iobroker über Docker läuft. Muss mich mal schlau machen wieviel Arbeit das ist.
  • Blockly InfluxDB2.0 Flux Abfrage

    5
    1
    2 Votes
    5 Posts
    2k Views
    S
    @mcu das habe ich mit dem Querybuilder von InfluxDB erstellt und wird von einem Datenpunkt unter Tankerkönig geloggt.
  • Poolheizung

    8
    2
    0 Votes
    8 Posts
    354 Views
    S
    Super vielen Dank euch. Ja Außen Temperatur ist nicht ganz okay aber ich habe keinen LUX Sensor gehabt um genaue sonnen Einstrahlung zu erkennen. Also habe ich mir gedacht das erstmal eine Art Logik her muss und wollte erstmal das Material benutzen das ich zuhause hatte. Azimut ist natürlich auch nicht schlecht, soweit habe ich noch nicht gedacht. Als Heizungspumpe benutze ich so eine 12v mini pumpe mit 800L/H(nicht den Sandfilter), die einen eigenen Kreislauf hat. Vielen dank noch mal am WE teste ich mal alles.
  • mqtt-Adapter: Keine Verbindung

    7
    0 Votes
    7 Posts
    463 Views
    I
    @glasfaser Ich habe mehrere mit Tasmota geflashte Gosund SP111 und zwei Shelly 1 im Einsatz, bei denen mqtt eingerichtet ist. Was meinst Du mit "Gerät eingeschaltet"? Soll ich mit dem Shelly 1 das Licht anmachen, damit es funktioniert? :) Wie gesagt, es hat sich absolut nichts geändert! Lediglich habe ich die Adapter-Updates, die im ioBroker vorgeschlagen werden, gemacht und halt neulich Node.js 16.15.1. Ich dachte, es gäbe hier vielleicht einige, die das Problem auch haben nach dem Update. EDIT: Ich habe gefunden, was vermutlich "Datenpunkte" genannt wird und vermutlich ist es normal so, wie es jetzt bei mir angezeigt wird. Die Gosunds haben zwar die Informationen zu mqtt, sie werden aber vermutlich schlichtweg nicht gebraucht. Jedenfalls gibt es für sie dort keine Einträge, für einen der beiden Shellys schon, aber genau diesen habe ich neulich durch eine Alternative ersetzt. Somit findet der aqtt-Adapter wahrscheinlich einfach keine Geräte, mit denen er sich verbinden könnte und das hast Du sicher mit "Gerät eingeschaltet" gemeint.
  • HM-RPC - Werte via Scripte ohne Konflikte setzen/steuern

    12
    0 Votes
    12 Posts
    1k Views
    E
    Hallo zusammen, nachdem ich bei dem Problem keine wirkliche Lösung finde, habe ich mir als Workaround ein Script gebaut, welches eine synchrone Verarbeitung der Befehle durchführt. Es lief bei mir in den letzten Tagen ohne Probleme bei der Kommunikation mit der CCU. Vielleicht ist es ja für jemanden auch interessant. Weitere Infos dazu gibts hier. Blog: setState: Synchrone Verarbeitung der ioBroker Homematic RPC Adapter Befehle via BIN-RPC/XML-RPC um Probleme bei der Kommunikation zu vermeiden Gerne auch Feedback ob es bei euch auch funktioniert. Gruß Esche
  • Pool nach Erreichen der Temperatur umwälzen.

    6
    0 Votes
    6 Posts
    592 Views
    HomoranH
    @simo sagte in Pool nach Erreichen der Temperatur umwälzen.: Danke, den wink mit dem Zaunpfahl habe ich verstanden. war kein Wink, sondern eine Vermutung. Am Handy nutzt ein xml nichts, ohne Bild kann ich nichts sagen. Paul hat es anscheinend importiert und genau dies gefunden. Er hat nicht nur den Stop des Intervalls eingefügt, sondern zusätzlich verhindert, dass alle Änderungen über 25 das Intervall mehrfach starten.
  • Script zum hochrechnen des Stromverbrauchs

    javascript
    11
    0 Votes
    11 Posts
    846 Views
    ChaotC
    Das Script funktioniert so wie ich das will. Danke @arteck für die Tips und Hinweise in die richtige Richtung. // Hochrechnung Jahresverbrauch schedule("0,1 0 * * *", async function () { var jetzt = new Date(); var Jahr = jetzt.getFullYear(); var heutestart = new Date(jetzt.setHours(0,0,0,0)).getTime(); var neujahr = new Date(Jahr,0,1).getTime(); var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1; var tag = Math.ceil(difftage); setState("0_userdata.0.Strom.Hochrechnung"/*Hochrechnung*/, (((getState("0_userdata.0.Stromverbrauch.Verbrauch_Abrechnungsjahr").val) / tag) * 365).toFixed(0)); });
  • Blinken der Mülltonne

    javascript
    21
    0 Votes
    21 Posts
    1k Views
    M
    @OliverIO Na ja, keine Ahnung wie das gehen soll. Ich versuche gerade von dem Trashschedule Adapter weg zu kommen. Kommt mir ein bisschen zu kompliziert und starr für einen Laien vor. Mit diesem komplett-Widget kann ich echt nicht viel anfangen.
  • Blockly-Script via VIS schalten

    13
    0 Votes
    13 Posts
    1k Views
    GlasfaserG
    @anbima sagte in Blockly-Script via VIS schalten: ein Objekt "script". scriptEnabled heißt der Ordner ... ist auch im Link erklärt !
  • javascript Adapter wird gekillt bei ausführen eines Blockly

    7
    1
    0 Votes
    7 Posts
    501 Views
    A
    @leachim200 Nimm bitte die Pausen raus. Wenn Du wirklich warten musst, nutze den TimeOut.

320

Online

32.7k

Users

82.4k

Topics

1.3m

Posts