Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.6k 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
    Holger EtzelH
    Hallo zusammen, gibt es für das Skript Zeitsteuerung von Pittini schon eine Vis-2 View? Gruß Holger
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    Thomas BraunT
    @emil70 Das ist mit ziemlicher Sicherheit nicht in deinem Privaten Netz zu Hause... whois 125.123.6.5 % [whois.apnic.net] % Whois data copyright terms http://www.apnic.net/db/dbcopyright.html % Information related to '125.123.0.0 - 125.123.255.255' % Abuse contact for '125.123.0.0 - 125.123.255.255' is 'anti-spam@chinatelecom.cn' inetnum: 125.123.0.0 - 125.123.255.255 netname: CHINANET-ZJ-JX country: CN descr: CHINANET-ZJ Jiaxing node network descr: Zhejiang Telecom admin-c: CZ4-AP tech-c: CJ55-AP status: ALLOCATED NON-PORTABLE mnt-by: MAINT-CHINANET-ZJ mnt-lower: MAINT-CN-CHINANET-ZJ-JX last-modified: 2008-09-04T07:09:54Z source: APNIC role: CHINANET-ZJ Jiaxing address: No.101 Zhongshan Road,Jiaxing,Zhejiang.314001 country: CN phone: +86-573-2050040 fax-no: +86-573-2079999 e-mail: antispam_jx@zjnoc.hz.zj.cn remarks: send spam reports to anti-spam@mail.jxptt.zj.cn remarks: and abuse reports to anti-spam@mail.jxptt.zj.cn remarks: Please include detailed information and times in UTC admin-c: CH100-AP tech-c: CH100-AP nic-hdl: CJ55-AP mnt-by: MAINT-CHINANET-ZJ last-modified: 2019-08-09T07:47:10Z source: APNIC role: CHINANET ZHEJIANG address: No. 257 Qingjiang Road, Hangzhou, Zhejiang.310066 country: CN phone: +86-571-86821752 fax-no: +86-571-86988329 e-mail: anti_spam_zjdx@189.cn remarks: send spam reports to 15325717748@189.cn remarks: and abuse reports to 15325717748@189.cn remarks: Please include detailed information and times in UTC admin-c: CZ61-AP tech-c: CZ61-AP nic-hdl: CZ4-AP mnt-by: MAINT-CHINANET-ZJ last-modified: 2023-08-11T08:33:28Z source: APNIC % This query was served by the APNIC Whois Service version 1.88.48 (WHOIS-UK2)
  • Hilfe für Skripterstellung mit Node-RED

    961 13k
    961 Themen
    13k Beiträge
    Marc BergM
    Man kann einen Flow von außen neu starten, indem man ihn per API deaktiviert und wieder aktiviert. Nicht sehr elegant, aber geht. Hier ein Flow dazu, das könnte man auch im Skript abbilden (hostname und Flow-ID im Inject Node anpassen: [ { "id": "0101b52dd8b0e69c", "type": "inject", "z": "tab_restart", "name": "Flow neu starten", "props": [ { "p": "baseUrl", "v": "http://nuc.fritz.box:1880", "vt": "str" }, { "p": "flowId", "v": "56a35d28dbb8d4c1", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": "", "topic": "", "x": 160, "y": 140, "wires": [ [ "ffb73632947a1b74" ] ] }, { "id": "ffb73632947a1b74", "type": "http request", "z": "tab_restart", "name": "GET /flow/:id", "method": "GET", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 370, "y": 140, "wires": [ [ "78e47724692d9c26" ] ] }, { "id": "78e47724692d9c26", "type": "change", "z": "tab_restart", "name": "deaktivieren", "rules": [ { "t": "set", "p": "flow", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "flow.disabled", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "payload", "pt": "msg", "to": "flow", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{}", "tot": "json" }, { "t": "set", "p": "headers.content-type", "pt": "msg", "to": "application/json", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 570, "y": 140, "wires": [ [ "b570b346c80301a6" ] ] }, { "id": "b570b346c80301a6", "type": "http request", "z": "tab_restart", "name": "PUT (aus)", "method": "PUT", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 770, "y": 140, "wires": [ [ "a062c2baa0932d3e" ] ] }, { "id": "a062c2baa0932d3e", "type": "delay", "z": "tab_restart", "name": "1s warten", "pauseType": "delay", "timeout": "1", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "outputs": 1, "x": 960, "y": 140, "wires": [ [ "664a32887d83b305" ] ] }, { "id": "664a32887d83b305", "type": "change", "z": "tab_restart", "name": "aktivieren", "rules": [ { "t": "set", "p": "flow.disabled", "pt": "msg", "to": "false", "tot": "bool" }, { "t": "set", "p": "payload", "pt": "msg", "to": "flow", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{}", "tot": "json" }, { "t": "set", "p": "headers.content-type", "pt": "msg", "to": "application/json", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 140, "y": 220, "wires": [ [ "83d399c90d46240f" ] ] }, { "id": "83d399c90d46240f", "type": "http request", "z": "tab_restart", "name": "PUT (ein)", "method": "PUT", "ret": "obj", "paytoqs": "ignore", "url": "{{{baseUrl}}}/flow/{{flowId}}", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 320, "y": 220, "wires": [ [ "529c0e1896d1f278" ] ] }, { "id": "529c0e1896d1f278", "type": "debug", "z": "tab_restart", "name": "Ergebnis", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 480, "y": 220, "wires": [] } ]
  • Warnings obwohl Script bereits gelöscht

    3
    0 Stimmen
    3 Beiträge
    165 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
    213 Aufrufe
    Niemand hat geantwortet
  • Script für Ordner löschen auf einem NAS

    blockly javascript
    12
    0 Stimmen
    12 Beiträge
    1k 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
    784 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
    375 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
    1k 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
    678 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
    41k 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
    7k 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
    265 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
    362 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
    7k 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
    27k 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
    987 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 .
  • Batterielevel auslesen

    7
    0 Stimmen
    7 Beiträge
    763 Aufrufe
    S
    @codierknecht Danke, dann habe ich es falsch verstanden. Ich bin nicht unbedingt auf Windows fixiert, Linux wäre auch möglich. Bei SNMP und wmi bin ich bis jetzt nicht fündig geworden den Ladezustand bequem auszulesen Das sieht auch sehr nett aus, werde ich mal testen. Anscheinend funktionieren die Funktionen vom Fully Kiosk Browser unter Windows, wundert mich das noch keiner die 2-3 verschiedenen Ansätze zu einem Browser verbunden hat. Ich kann leider nicht programmieren
  • Wenn Wochentag X dann Wert von Objekt Y

    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    B
    @miwi Hallo miwi, klappt das Script bei dir einwandfrei bzw. zeigt die richtigen Werte an ? Bei mir kommt es immer mal wieder vor, dass er einen Tag verschluckt und nicht den Wert von z. B. vorgestern übernimmt.

372

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge