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
    A
    @Dave69-CH Die Fehler kommen vom e3dc-rscp Adapter? Hast du eine E3DC Wallbox ?
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    Gestern war bei VolMax 3,54V Ladeende 100%, das Entladen stoppt halt dann doch relativ bald wenn ich bei Volmin 3,16V stoppe, aber wird wohl Sinn machen. Damit es ein bisschen hinausgezögert wird habe ich aber aktuell schon von 40% (500W) bis 10% verlaufend das Entladelimmit bis zu nur noch maximal 200W runtergesetzt.
  • 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
  • Suche Skript für Mondphase

    Verschoben
    31
    0 Stimmen
    31 Beiträge
    10k Aufrufe
    spicerS
    @bitstorm66 Etwas spät. Du musst den Datenpunkt Vis.Mondphase löschen, damit dieser neu geschrieben wird. Im root oder eigenen Verzeichnis bei den Skripten Die werden über den Datenpunkt (Object ID) übergeben javascript.0.Vis.Mondphase
  • Gelöst: Fehler im Script

    javascript
    7
    0 Stimmen
    7 Beiträge
    380 Aufrufe
    M
    @paul53 Okay Danke, ich werde das mal "rausnehmen" Edit: Ja das war es. Danke!
  • Warnings obwohl Script bereits gelöscht

    3
    0 Stimmen
    3 Beiträge
    114 Aufrufe
    hg6806H
    @paul53 Da stand tatsächlich was, was ich gleich gelöscht habe. Man sollte ja immer unter Common die Scripte am Laufen haben.
  • Brauche Hilfe beim Skript bzw Vis, json Tabelle?

    1
    2
    0 Stimmen
    1 Beiträge
    184 Aufrufe
    Niemand hat geantwortet
  • Script für Ordner löschen auf einem NAS

    blockly javascript
    12
    0 Stimmen
    12 Beiträge
    961 Aufrufe
    T
    @nordischerjung sagte in Script für Ordner löschen auf einem NAS: in die Varibale "Verbindung" schreiben Und die anderen 3 (Fehler beim löschen usw) in die Var "Ordnervorh" schreiben. Wie geht das denn? möchtest du diese als Rückmeldung haben oder übergeben? hier Findest du noch mal infos zu den Funktion
  • Ahoy DTU - API - Json Post request zum schalten senden

    9
    0 Stimmen
    9 Beiträge
    3k Aufrufe
    W
    @nttmatze Ich schluieße mich mal an, ich bekomme auch den Fehler ECONNRESET und wäre sehr daran interessiert, wie man das lösen kann.
  • [solved] Unterscheidung Quelle für Datenpunktänderung?

    10
    0 Stimmen
    10 Beiträge
    621 Aufrufe
    C
    @paul53 @Homoran nochmal Danke für Eure Tipps. iQontrol liefert als "Ursprung" "system.adapter.web.0" damit kann ich die Quelle gut unterscheiden gegenüber den Scripten.
  • Dauer in VIS anzeigen (minütlich aktualisiert)

    6
    0 Stimmen
    6 Beiträge
    276 Aufrufe
    crunchipC
    @rtwl sowas z.b. widget [{"tpl":"tplValueLastchange","data":{"oid":"zigbee.0.00158d00052da0d3.opened","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"format_date":"DD.MM.YYYY - hh:mm:ss Uhr","html_prepend":"Fenster zuletzt geöffnet am &nbsp","html_append":""},"style":{"left":"769px","top":"176px","z-index":"10","width":"454px","height":"30px","color":"","font-family":"Jura-DemiBold","text-align":"right","line-height":"2","background":"","background-color":"","border-width":"","border-style":"","border-radius":"","border-color":"","box-shadow":""},"widgetSet":"basic"}]
  • Kalender html trennen

    11
    0 Stimmen
    11 Beiträge
    832 Aufrufe
    Curtis777C
    @david-g Bei mir kommen 3 Kalender zusammen. Alle Farbcodiert. Sieht momentan So in der VIS aus. MAn sieht allerdings nicht sofort wann welches Event ist daher eher eine Provisorische Lösung. [image: 1684952694755-f9a8cd27-41cb-43f6-8bf0-2e4a9395312e-image.png]
  • Alias-Datenpunkt anlegen - kein zusätzliches Ziel

    7
    0 Stimmen
    7 Beiträge
    555 Aufrufe
    T
    @mickym Dann habe ich die dazugehörigen Daten wieder an 2 Stellen stehen: alles was aus normalen Datenpunkten steht, alle virtuellen Daten (Counter etc.) die dazugehören nur in Userdata. Das macht die Wartbarkeit in ein paar Monaten / Jahren (wenn man nicht mehr alles im Kopf hat) doppelt schwierig. Dann lieber beim Anlegen die komplette Struktur in Alias + extern verlinkte Datenpunkte. Ich habe beruflich genug mit Strukturen zu tun, wo niemand nach einiger Zeit mehr einen Überblick hat, und so etwas versuche ich möglichst überall zu vermeiden (alle Daten an einem Punkt bzw. virtuell verlinkt) Damit man nicht immer eine Checkliste benötigt (checke Position1 1, weitere Daten stehen an Pos2,...) ich hatte einfach gehofft, dass es eine Möglichkeit gibt, vollwertige Datenpunkte anzulegen. Da es nicht geht, muss ich damit klarkommen und die zusätzliche Arbeit machen
  • Withings Daten einlesen

    Verschoben
    126
    1
    0 Stimmen
    126 Beiträge
    36k Aufrufe
    oberfraggerO
    @damrak2022 sagte in Withings Daten einlesen: @pix Guten Morgen, ich nutze von Withings momentan die Withings Sleep Sensormatte. Die beiden Keys habe ich erstellt und in den Einstellungen von Withings hinterlegt. Könntest Du mir sagen, wie ich nun die Daten von meinem Schlaf grafisch darstelle. Welches Widget empfiehlt sich dafür und vor allem mit welchen Datenpunkten muss ich das verknüpfen? [image: 1645592282248-bildschirmfoto-2022-02-23-um-05.57.14-resized.png] Da bin ich leider noch nicht fit genug und hoffe das Du mir weiterhilfst. Ist zwar lange her... aber du bist im falschen Unterordner. Du brauchst Start- und Enddatum. [image: 1684844843163-66bc3a6b-284f-4816-a9b2-e0668d54a19f-image.png]
  • Intelligente Zirkulationssteuerung

    8
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    HomoranH
    @schmakus Wollte das gestern schon schreiben, als heute morgen der Thread immer länger wurde, hab ich mich dann aufgerafft, und jetzt steht es schon da. Auch wenn man das ggf. selber billiger hinbekäme. Die Bausätze von Eugen sind immer super durchdacht.
  • PV Überschuss berechnen

    51
    0 Stimmen
    51 Beiträge
    6k Aufrufe
    S
    @paul53 Danke
  • Alarm wenn sich BIT aus Word ändert

    14
    2
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    T
    @paul53 danke, das wuste ich nicht. aber somit ist mein bedenken eh unrelevant
  • [gelöst]Berechnung und Datenpunkt erzeugen

    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    J
    @karel-puhli alles klar, wieder was gelernt
  • Licht-Schaltung funktioniert so leider nicht

    4
    2
    0 Stimmen
    4 Beiträge
    218 Aufrufe
    maximal1981M
    @mico natürlich ist sie um 0500 noch an. wenn man um 0450 startet und 20 min verzögert = 0510
  • Werte im Skript händisch ändern

    11
    0 Stimmen
    11 Beiträge
    281 Aufrufe
    W
    @dr-pie Wäre es da nicht sinnvoll, direkt auf die Helligkeit außen zu reagieren. Irgendwo einen Helligkeitssensor montiert und dann je nach Wert eben mehr oder weniger Helligkeit einstellen. Dann brauchst Du selber gar nix mehr machen, nichtmal Gedanken, wann das ideale Datum für die kurze oder längere Leuchtzeit wäre. Das würde ich smart nennen… Gruss, Jürgen
  • Problem bei Blockly und Shelly

    55
    2
    0 Stimmen
    55 Beiträge
    6k Aufrufe
    R
    @paul53 Alles klar, ich denke ich habe den Fehler jetzt auch gefunden. Der erste Timer war als Unbenannt drin. Ich habe jetzt nchmal "delayon" überall ausgewählt und das unbenannt ist raus. Jetzt hat es endlich funktioniert. Sorry für die Umstände und die Mühe mit mir aber ich danke dir vielmals, dass du die Geduld aufgebracht hast.
  • Yahka hue color nach hex convertieren

    Verschoben
    90
    1
    0 Stimmen
    90 Beiträge
    25k Aufrufe
    K
    Hallo Möchte hier mal meinen Beitrag teilen, der bei mir in Verbindung mit Tuya RGBW Controllern aus China läuft. Man benötigt 2 Skripte und ein paar Datenpunkte, die angelegt werden müssen. Skript wandelt die von Homekit gesendeten Werte für Hue und Saturation in HEX var red = "0_userdata.0.rgb_rot"; var green = "0_userdata.0.rgb_gruen"; var blue = "0_userdata.0.rgb_blau"; var hue = "0_userdata.0.rgb_hue"; //in Yahka mit Hue verknüpfen var saturation = "0_userdata.0.rgb_saturation"; //in Yahka mit Saturation verknüpfen var hex = "tuya.0.xxxxxxxxxxxxxxxxxxxxx.24-rgb"; //Hex Wert im Tuya Gerät, der geschrieben werden soll var hexUpdateFromHomekit = true; var hexUpdateFromHex = true; function updateRGB() { var h = getState(hue).val; var s = getState(saturation).val / 100; var v = 1; var c = v * s; var x = c * (1 - Math.abs((h / 60) % 2 - 1)); var m = v - c; var r = 0; var g = 0; var b = 0; if (h < 60) { r = c; g = x; } else if (h < 120) { r = x; g = c; } else if (h < 180) { g = c; b = x; } else if (h < 240) { g = x; b = c; } else if (h < 300) { r = x; b = c; } else { r = c; b = x; } r = Math.round((r + m) * 255); g = Math.round((g + m) * 255); b = Math.round((b + m) * 255); var hexValue = "#" + ("0" + r.toString(16)).slice(-2) + ("0" + g.toString(16)).slice(-2) + ("0" + b.toString(16)).slice(-2); setState(hex, hexValue); setState(red, r); setState(green, g); setState(blue, b); } on({id: hue, change: "ne"}, function (obj) { if (hexUpdateFromHex) { hexUpdateFromHomekit = false; updateRGB(); setTimeout(function () { hexUpdateFromHomekit = true; }, 2000); // 2 seconds } }); on({id: saturation, change: "ne"}, function (obj) { if (hexUpdateFromHex) { hexUpdateFromHomekit = false; updateRGB(); setTimeout(function () { hexUpdateFromHomekit = true; }, 2000); // 2 seconds } }); 2.Skript wandelt die in der Smart Life App eingestellten Hex-Werte rückwärtig über RGB wieder in Hue und Saturation. Die Live Listener pausieren sich gegenseitig um 2 Sekunden, damit man nicht in eine Schleife läuft. var red = "0_userdata.0.rgb_rot"; var green = "0_userdata.0.rgb_gruen"; var blue = "0_userdata.0.rgb_blau"; var hue = "0_userdata.0.rgb_hue"; //in Yahka mit Hue verknüpfen var saturation = "0_userdata.0.rgb_saturation"; //in Yahka mit Saturation verknüpfen var hex = "tuya.0.xxxxxxxxxxxxxxxxxxxxx.24-rgb"; //Hex Wert im Tuya Gerät, der geschrieben werden soll var hexUpdateFromHomekit = true; var hexUpdateFromHex = true; function updateHS() { var hexValue = getState(hex).val; hexValue = hexValue.replace("#", ""); var r = parseInt(hexValue.substring(0, 2), 16); var g = parseInt(hexValue.substring(2, 4), 16); var b = parseInt(hexValue.substring(4, 6), 16); r /= 255, g /= 255, b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if (max == min) { h = s = 0; } else { var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } setState(hue, Math.round(h * 360)); setState(saturation, Math.round(s * 100)); setState(red, Math.round(r * 255)); setState(green, Math.round(g * 255)); setState(blue, Math.round(b * 255)); } on({id: hex, change: "ne"}, function(obj) { if (hexUpdateFromHomekit) { hexUpdateFromHex = false; setTimeout(function() { updateHS(); hexUpdateFromHex = true; }, 2000); } }); on({id: red, change: "ne"}, function(obj) { if (hexUpdateFromHex) { hexUpdateFromHomekit = false; updateHex(); setTimeout(function() { hexUpdateFromHomekit = true; }, 2000); } }); on({id: green, change: "ne"}, function(obj) { if (hexUpdateFromHex) { hexUpdateFromHomekit = false; updateHex(); setTimeout(function() { hexUpdateFromHomekit = true; }, 2000); } }); on({id: blue, change: "ne"}, function(obj) { if (hexUpdateFromHex) { hexUpdateFromHomekit = false; updateHex(); setTimeout(function() { hexUpdateFromHomekit = true; }, 2000); } }); function updateHex() { var r = getState(red).val; var g = getState(green).val; var b = getState(blue).val; r /= 255, g /= 255, b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if (max == min) { h = s = 0; } else { var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } var hexValue = "#" + ("0" + Math.round(r * 255).toString(16)).slice(-2) + ("0" + Math.round(g * 255).toString(16)).slice(-2) + ("0" + Math.round(b * 255).toString(16)).slice(-2); hexUpdateFromHex = false; setState(hex, hexValue); setTimeout(function () { hexUpdateFromHex = true; }, 2000); // 2 seconds hexUpdateFromHomekit = false; setState(hue, Math.round(h * 360)); setState(saturation, Math.round(s * 100)); setTimeout(function () { hexUpdateFromHomekit = true; }, 2000); // 2 seconds } Somit wird Homekit und Smart Life App immer synchron gehalten. Was ich noch nicht zum laufen gebraucht habe ist das Dimmen der Farben über Homekit. Zieht man hier den Regler runter, geht der Tuya Controller in der Weiß-Modus und dimmt da runter. Da muss ich mich nochmal hinsetzen und das Dimmen über RGB implementieren.
  • Hilfe bei 2 Taster sollen 1 Shelly PlugS steuern

    8
    0 Stimmen
    8 Beiträge
    850 Aufrufe
    J
    @tom-haase Das sollte laufen, wobei ich den "umschalten" Block noch nie verwendet habe. Die Shelly müssen so aber als Schalter konfiguriert sein. Mit Taster läuft das nicht, wobei man da einfach im Trigger auf "ist größer als letztes" stellen muss, dann reagiert er nur auf die Flanke von 0 nach 1 .

388

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge