Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    P
    @Schimi sagte: habe mal ne neue version erstellt, weil ich auch wieder ins Limit gelaufen bin... > Danke fürs fixen. Vom ersten Eindruck passt das so. Ich bin vor 2 Tagen auch ans Limit gelaufen, obwohl der Monatszähler bestimmt unter 50 war. Den Zähler zu reseten hat nichts gebracht. Ging dann nur mit einem neuen API-Key.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    HomoranH
    @Berlon sagte: wieso gibt es bei true und false kleiner und größer? Zusätzlich zu der Info von @paul53 Binär ist false=0 und true=1.
  • Hilfe für Skripterstellung mit Node-RED

    956 13k
    956 Themen
    13k Beiträge
    S
    Hallo Zusammen, ich bin gerade am überlegen, wie ich folgende Aufgabe umsetzen könnte: Ein true an einer (Trigger)Node lässt einen Zähler laufen und setzt einen eigenen Ausgang auf true. Ein false der Trigger Node stoppt den Zähler setzt diesen aber nicht auf false. Ein true lässt den Zähler einfach weiterlaufen... Nach Ablauf der Zeit im Zähler wird der Ausgang des Zählers auf false gesetzt. Mehr soll nicht passieren. Ein separater Eingang am Zähler setzt diesen auf 0 zurück. Was ich damit anfangen möchte: Die Laufzeit der Poolpumpe wird auf eine Mindestlaufzeit von bspw. 4h überwacht -kann aber manuell bedient bei Bedarf länger laufen. Ein Trigger um 00:01Uhr setzt die Laufzeit zurück. Die Zählernode gilt hier als "Anforderung Pumpe wegen Mindestlaufzeit unterschritten". Ich habe noch keine brauchbaren Ideen, wie ich dass sauber und mit wenig Aufwand umsetzen könnte... Vielen Dank und VG Torsten
  • Verzweifele an WhatsApp

    10
    2
    0 Stimmen
    10 Beiträge
    823 Aufrufe
    L
    Unfassbar: Adapter gelöscht und neu aufgesetzt und schon ist der Block da und das Senden funktioniert. Manchmal passieren sehr seltsame Dinge! Erstmal vielen Dank für eure Hilfe
  • Wifi light Adapter - RGB dimmen

    1
    0 Stimmen
    1 Beiträge
    134 Aufrufe
    Niemand hat geantwortet
  • sh script zwecks reboot

    1
    1
    0 Stimmen
    1 Beiträge
    174 Aufrufe
    Niemand hat geantwortet
  • Datenpunkt schalten wenn Licht an oder aus ist

    6
    1
    0 Stimmen
    6 Beiträge
    285 Aufrufe
    paul53P
    @mico sagte: die sollen dann andere Sachen schalten über Scripte wenn das Licht eingeschaltet wird; Weshalb können das nicht die Alias-DP? Die DP unter "0_userdata.0" sind unnötig, wenn sie nur den einzelnen Licht-Wert abbilden. Übrigens macht man es mit 8 Einzel-Triggern, was enorm Ressourcen spart: [image: 1697816889421-blockly_temp.jpg]
  • Wärmeplatte Kunstglucke / PWM / PID-Regler

    23
    0 Stimmen
    23 Beiträge
    970 Aufrufe
    B
    @paul53 sagte in Wärmeplatte Kunstglucke / PWM / PID-Regler: Soll ein bestimmter Sollwert eingehalten werden Das wollte ich damit ausprobieren. Es geht nicht nur um die schlechte Luft, sondern auch um beschlagene Fensterscheiben. Da bin ich am Testen ab wann die Scheiben beschlagen. Ich wollte noch nicht den Taupunkt ins Spiel bringen. Ich hoffe das es auch so geht. Danke für die Hilfe.
  • Warmwasser schalten mit PV Überschuss

    71
    1
    0 Stimmen
    71 Beiträge
    11k Aufrufe
    J
    @paul53 DANKEEE
  • Fehler im Script

    javascript
    3
    1
    0 Stimmen
    3 Beiträge
    125 Aufrufe
    paul53P
    @ticaki sagte: newState.val ist, ist das ein Alias für state.val? Ja, newState ist die ältere Version.
  • Ordner im Skript Verzeichnis werden nicht angezeigt

    3
    2
    0 Stimmen
    3 Beiträge
    285 Aufrufe
    J
    @djmarc75 Danke Manchmal ist es einfacher als man denkt.
  • Kostal Plenticore prognosebasiertes Batterieladung Vorlage

    javascript blockly monitoring
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    R
    @ostpower Ich habe auch einen Kostal WR, an dem allerdings ein BYD Speicher hängt und deshalb direkt eine Frage. Was versteht du/Kostal unter "intelligent laden" beim Kostal und dem schonenden laden? Es ist doch so, dass der WR den PV-Ertrag wie folgt verteilt: Erst den aktuellen Eigendarf decken, mit dem Überschuss den Akku laden und wenn der Akku voll ist wird der Überschuss eingespeist. Dabei kann mein Kostal (gem. Datenblatt) max.13A zur Ladung/Entladung nutzen. Daraus folgert bei den BYD-Akkus eine minimale Zeit von 2 Stunden zur vollständigen Ladung. Vorausgesetzt, es steht genügend Überschuss parat. Also 1/2 C, wie man es im Modellbau bezeichnen würde. Meine LiPos für das Modellauto lade ich sehr schonend mit 1C und sie können mit max. 80C entladen werden. Von daher ist 1/2C schon ein sehr schonender Wert. Bei mir ist der Speicher oft schon am Vormittag voll, sodass der max. Ladestrom selten ausgenutzt wird. Was würde es bringen, die Ladeleistung weiter zu drosseln und gleichzeitig einzuspeisen oder erst einspeisen und später am Tag den eigenen Akku laden? Wenn die PV-Anlage so groß dimensioniert wurde, dass ein Teil des Überschusses nicht eingespeist werden darf (70%-Regelung), würde ich lieber den Speicher vergrößern und mehr/länger einspeichern oder den WR vergrößern (damit dann die 70% kleiner sind als die installierten KWPeak). Was anderes wäre es in Verbindung mit Tibber, wenn du gerne deinen Speicher zu Zeiten von günstigen Tarifen laden möchtest um dann den gespeicherten Strom zu teureren Zeiten zu verbrauchen. Dazu müsstest du die Batteriesteuerung von intern auf extern umstellen. Das kann man nur über den Installateurzugang. Leider habe ich keinen, sonst hätte ich dies längst mal getestet. Wenn du mir an dieser Stelle unter die Arme greifen kannst, würde ich mich über eine private Nachricht freuen :) Ein sehr grober Versuch wäre noch, die Batterieladung/ -entladung über die WR "Zeitgesteuerte Batterienutzung" zu beeinflussen. Dann könnte man zu günstigen Strom-Tageszeiten oder hohen PV-Leistungen die Batterieentladung sperren und zu teurer Zeiten oder geringeren PV-Leistungen freigeben. Jedoch kann der WR die Batterie nicht aus dem Netz aufladen. Evtl. wird also der Speicher nicht voll. Hier würde mir nur einfallen, die min SoC zu billigen Stromzeiten auf 100% zu stellen, in der Hoffnung, dass der WR die Batterie dann auflädt und dazu auch aus dem Netz bezieht. Vorgesehen ist es scheinbar nicht, die Batterie aus dem Netz zu laden. LG RGT
  • Problem mit Bewegwungsmelderskript

    27
    1
    0 Stimmen
    27 Beiträge
    3k Aufrufe
    Karel PuhliK
    @robert_r sagte in Problem mit Bewegwungsmelderskript: Kann ich mittels Schalter einen Dauerbetrieb für Licht aktivieren? Ja. Auch hier der selbe Link. Da hat @paul53 auch eine sehr schöne Lösung für gefunden. Weiter unten folgen dazu Erklärungen... Link Text
  • Gelöst: Auslöser ermitteln

    javascript
    5
    0 Stimmen
    5 Beiträge
    245 Aufrufe
    M
    @paul53 sagte in Auslöser ermitteln: @michihorn sagte: Ja String, Dann muss mit "true" verglichen und "false" gesetzt werden. Ja das ist der Plan. Das Projekt soll eine Anwesenheitüberwachung für meine 3 Familienmitglieder im Geo Umkreis von 500 Meter machen, das klappt auch. Ich habe zwei weitere Dienste im IOT hinterlegt "Ankunft" triggert an der Grenze zu Holland und schaltet schon mal den Kühlschrank im Ferienhaus ein, stellt die Heizung/Klima auf 21Grad. 1h 20 min reichen aus. Ein weiter Dienst heisst Heimreise und der löst schon 30 km nach dem Verlassen des FH aus, Kühlschrank aus, Heizung auf 10 Grad. Der Hintergrund meiner Anfrage ist das Gegeseitige verriegeln von Anreise und Heimreise. Wenn ich z.B Heimreise soll falls meine Frau oder der Sohn noch vor Ort bleiben, nur mein Dienst "Anreise" auf false gesetzt werden. Das Script für Anreise sieht so aus: /*****GEOfancy ANREISE ***************************************** ** Januar 2022 ** IOT, EgiGeo ** (true), (false) ** erstellt: 24.01.22, ** geändert: 14.06.23 ***********************************************************************/ var logging = true; const idFrigo = "tuya.0.bfce754681c6e2c8faowag.2" const idMedia = "tuya.0.bf292a4c8b62843697ntvv.1" const idTempIn = "tuya.0.73103057e868e768284a.3" const idHeizung = "tuya.0.73103057e868e768284a.2" const idAirCo = "daikin.0.control.power" const idAW = "0_userdata.0.Giethoorn.AW.AW" const ids = $('iot.*.services.custom_Anreise'); const idCnt = "0_userdata.0.Giethoorn.AW.Anreise" var text function cntAnreise() { let cnt = 0; ids.each(function (id, i) { if (getState(id).val == 'true') cnt++; }); setState(idCnt, cnt, true); if (getState(idCnt).val >= 1) { log("Anreise erkannt") setState(idFrigo, true) setState(idMedia, true) setState(idHeizung, 22) text = '\ud83d\ude98 Anreise von 🇩🇪 nach 🇳🇱 erkannt ' createEventlog("GTHRN", text) if (logging) sendTo('whatsapp-cmb.0', 'send', { text, phone: '+491xxxxx' }); if ((getState(idTempIn).val >= 30)) { setState(idAirCo, true) } } }; cntAnreise(); // Skriptstart ids.on(cntAnreise); EDIT: Anbei der Objektbaum vom IOT [image: 1697463057268-screenshot-2023-10-16-152935.png] Als Lösung funktioniert nun folgendes Script: /*****GEOfancy ANREISE ***************************************** ** Januar 2022 ** IOT, EgiGeo ** (true), (false) ** erstellt: 24.01.22, ** geändert: 14.06.23 ***********************************************************************/ var logging = true; const idFrigo = "tuya.0.bfce754681c6e2c8faowag.2" const idMedia = "tuya.0.bf292a4c8b62843697ntvv.1" const idTempIn = "tuya.0.73103057e868e768284a.3" const idHeizung = "tuya.0.73103057e868e768284a.2" const idAirCo = "daikin.0.control.power" const ids = $('iot.*.services.custom_Anreise'); const idCnt = "0_userdata.0.Giethoorn.AW.Anreise" var text function cntAnreise() { let cnt = 0; ids.each(function (id, i) { if (getState(id).val == 'true') cnt++; }); setState(idCnt, cnt, true); if (getState(idCnt).val >= 1) { log("Anreise erkannt") setState(idFrigo, true) setState(idMedia, true) setState(idHeizung, 22) text = '\ud83d\ude98 Anreise von 🇩🇪 nach 🇳🇱 erkannt ' createEventlog("GTHRN", text) if (logging) sendTo('whatsapp-cmb.0', 'send', { text, phone: '+491xxxx149' }); if ((getState(idTempIn).val >= 30)) { setState(idAirCo, true) } } }; cntAnreise(); // Skriptstart ids.on(cntAnreise); var newstring ids.each(function (id) { // Skriptstart if (getState(id).val) setState(id, true); }); ids.on(function (dp) { if (dp.state.val) { log("INFO: " + dp.id); var string = dp.id newstring = string.replace("custom_Anreise", "custom_Heimreise"); log("Ergebnis: " + newstring) setState(newstring, "false") } }); Und für die Heimreise sieht das Script dann so aus. /*****GEOfancy HEIMREISE ***************************************** ** Januar 2022 ** IOT, EgiGeo ** (true), (false) ** erstellt: 24.01.22, ** geändert: 14.6.23 ***********************************************************************/ var logging = true; const idFrigo = "tuya.0.bfce754681c6e2c8faowag.2" const idMedia = "tuya.0.bf292a4c8b62843697ntvv.1" const idTempIn = "tuya.0.73103057e868e768284a.3" const idHeizung = "tuya.0.73103057e868e768284a.2" const idAirCo = "daikin.0.control.power" const idAW = "0_userdata.0.Giethoorn.AW.AW" const ids = $("iot.*.services.custom_Heimreise"); const idCnt = "0_userdata.0.Giethoorn.AW.Heimreise" var text function cntHeimreise() { let cnt = 0; ids.each(function (id, i) { if (getState(id).val == 'true') cnt++; }); setState(idCnt, cnt, true); if (getState(idCnt).val >= 1) { log("Heimreise erkannt") setState(idFrigo, false) setState(idMedia, false) setState(idHeizung, 10) setState(idAirCo, false) text = '\ud83d\ude98 Heimreise von 🇳🇱 nach 🇩🇪 erkannt ' createEventlog("GTHRN", text) if (logging) sendTo('whatsapp-cmb.0', 'send', { text, phone: '+49xxxxx149' }); } }; cntHeimreise(); // Skriptstart ids.on(cntHeimreise); var newstring ids.each(function (id) { // Skriptstart if (getState(id).val) setState(id, true); }); ids.on(function (dp) { if (dp.state.val) { log("INFO: " + dp.id); var string = dp.id newstring = string.replace("custom_Heimreise", "custom_Anreise"); log("Ergebnis: " + newstring) setState(newstring, "false") } });
  • Gesamtlaufzeit ermitteln

    monitoring javascript
    6
    0 Stimmen
    6 Beiträge
    307 Aufrufe
    amg_666A
    @paul53 @ticaki: Erstmal danke für die Rückmeldung, ich werde das Skript und den Adapter mal anschaun.
  • IR-Codes für Telekom Media Receiver gesucht

    1
    0 Stimmen
    1 Beiträge
    311 Aufrufe
    Niemand hat geantwortet
  • Blockly - Alle Skripte exportieren geht nicht.

    10
    1
    0 Stimmen
    10 Beiträge
    402 Aufrufe
    GlasfaserG
    @stenmic sagte in Blockly - Alle Skripte exportieren geht nicht.: es funktioniert jetzt, kannst du uns mal bitte deine Daten zeigen!! Zeige die Full Ausgabe von iob diag
  • Array befüllen, Abfragen und löschen

    10
    0 Stimmen
    10 Beiträge
    713 Aufrufe
    T
    @great-sun Manchmal sieht man den Wald vor Bäumen nicht. Wie kann ich den Thread schließen?
  • InfluxDB V2 - Daten löschen im Adapter funktioniert nicht

    3
    0 Stimmen
    3 Beiträge
    339 Aufrufe
    Marc BergM
    @tp1de sagte in InfluxDB V2 - Daten löschen im Adapter funktioniert nicht: (InfluxDB Adapter Version 3.2.0) Das Löschen von InfluxDb 2.x Daten wird erst ab der Adapter Version 4.0.0 unterstützt (noch nicht released). Punktlich nach dem Erscheinen von InfluxDB 3 :-)
  • Binding mehrere Werte vergleichen

    19
    0 Stimmen
    19 Beiträge
    1k Aufrufe
    S
    @OliverIO Naja, Sonderzeichen waren ja in der VIN nicht dabei und es funktioniert ja jetzt auch. Aber egal - Hauptsache es tut wie es soll :-) Vielen Dank!
  • Authentication (redirect uri) ??

    9
    0 Stimmen
    9 Beiträge
    766 Aufrufe
    NewpicselN
    @oliverio Doch doch, theoretisch kann der Adapter das schon. Mein Blockly hatte ich erstellt bevor es einen Adapter gab 😅 Ich und ein paar weitere Nutzer, nutzen diesen jedoch weiterhin, weil er etwas mehr Funktionen bietet als der Adapter und ich müsste so ohnehin noch ein zusätzliches Blockly erstellen. Das spare ich mir damit und es läuft einfach sehr gut. Einziges Problem ist halt nun die Token Anfrage für neue Nutzer, bei denjenigen, die das Blockly schon vorher genutzt haben (vor der Umstellung) läuft es weiterhin. Außerdem und wohl das wichtigste, es macht mir Spaß daran zu arbeiten und ich lerne sehr viel 😊👍
  • Problem mit roon-api und iobroker

    1
    0 Stimmen
    1 Beiträge
    229 Aufrufe
    Niemand hat geantwortet
  • Hargassner Heizung Adapter für IOBroker

    3
    0 Stimmen
    3 Beiträge
    458 Aufrufe
    C
    @sborg ok, trotzdem danke.

561

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge