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
    J
    Hallo, anbei das nun fertige Skript im ersten Post.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    OliverIOO
    @emil70 IP ist eine Unif-Kamera Und die ist im öffentlichen Netz? 125 gehört einem Block in China? Wenn du die selbst definiert hast dann würde ich das anpassen. Sonst gibt es beim routing Probleme https://de.wikipedia.org/wiki/Private_IP-Adresse#Private_Adressbereiche
  • 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": [] } ]
  • [gelöst] Variable wird als nicht gelesen gekennzeichet

    13
    1
    0 Stimmen
    13 Beiträge
    431 Aufrufe
    Ben1983B
    @ticaki Danke, das war das Problem, war falsch herum, aber mir ist es nicht aufgefallen, weil das ja nicht als Fehler angezeigt wurde.
  • Countdown ersetzen anstatt neuen zu erzeugen

    4
    0 Stimmen
    4 Beiträge
    535 Aufrufe
    geschildG
    @ehome Dann würde ich erst löschen und dann den geänderten sofort hinterherschicken.
  • Steckdose abfragen ob manuell eingeschaltet wurde?

    6
    0 Stimmen
    6 Beiträge
    656 Aufrufe
    E
    Für meine E-Auto-Steckdose (Shelly plus 1pm) habe ich im Script einen Switch 'manu'/'auto' eingebaut. Dieser Switch wird in der VIS gesetzt. Im Status 'manu' wird wird keine Steuerung über den 'Einspeisungswert' vorgenommen.
  • Wert aus einer Webseite auslesen?

    javascript
    52
    0 Stimmen
    52 Beiträge
    14k Aufrufe
    U
    OK, vielen Dank. Ich werde das nach meinem Urlaub mal testen.
  • Datenpunkte system.host.HOSTNAME.versions.nodeNewest usw

    5
    0 Stimmen
    5 Beiträge
    236 Aufrufe
    Thomas BraunT
    @ticaki Ja, wie gesagt, auf meinem System passte das. Bei Beta-Tests auf anderen Systemen kamen aber auch falsche Ergebnisse heraus. Also nodejs18 installiert, aber im Datenpunkt stand was von v16 drin. Z. B. so: Nodejs-Installation: /usr/bin/nodejs v18.16.1 /usr/bin/node v18.16.1 /usr/bin/npm 9.5.1 /usr/bin/npx 9.5.1 Recommended versions are nodejs 16.20.1 and npm 8.19.4 Your nodejs installation is correct
  • [gelöst] Changelog Script Engine 6.1.4 -> 7.0.3

    6
    0 Stimmen
    6 Beiträge
    505 Aufrufe
    T
    @crunchip sagte in [gelöst] Changelog Script Engine 6.1.4 -> 7.0.3: ja das ist mittlerweile integriert, damit man nicht behaupten kann...."hab ich nicht gesehen" Hab ich nicht verstanden geht aber immer noch :)
  • HM-Adapter ./. Web-Request für HTTP-Aufrufe

    2
    0 Stimmen
    2 Beiträge
    217 Aufrufe
    paul53P
    @penumbra sagte: welcher Weg ist der optimalere bzw. sicherere? Der normale Weg ist das Schreiben (setState) auf den Datenpunkt unter "hm-rega.0".
  • Trigger mit Bedingung in Blockly

    Verschoben
    6
    3
    -1 Stimmen
    6 Beiträge
    5k Aufrufe
    C BC
    @buggybeast71 Hey. Vielen Dank. Genau das hat mir auch geholfen. Ich hab ewig rumprobiert und wollte halt auch nicht, das die Meldungen permanent kommen, sondern nur wenn der Wert einmal unterschritten wurde.
  • [gelöst] Ista - Ablesung Heizung und Warmwasser

    7
    1
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    Ro75R
    Habe das Problem nun doch selber lösen können. War letztlich weniger kompliziert als zuvor angenommen: var i, result, j, json, s; sendTo("imap.0", "getIMAPRequest", { name: "xxxxxxx_gmx.de", max: 20, search: '["ALL", ["HEADER", "FROM", "no-reply@ecotrend.ista.com"]]', fetch: JSON.parse('{"fetch": false, "seqno": [21954]}'), bodie: '{bodies: "", markSeen: false}', parse: true, }, async function (result) { if (!result) { console.log("No result found!"); return; } for (var i_index in result) { i = result[i_index]; s = getAttr(i, 'body.html'); //Auswertung starten Heizung(s); Warmwasser(s); } }); function Warmwasser(sValue) { //hier nun die einzlnen Werte auslesen und dann in DP schreiben für VIS const w = 'Warmwasser'; console.log(w); console.log(Zeitraum(sValue,w)); console.log(Einheiten(sValue,w)); } function Heizung(sValue) { //hier nun die einzlnen Werte auslesen und dann in DP schreiben für VIS const h = 'Heizung'; console.log(h); console.log(Zeitraum(sValue,h)); console.log(Einheiten(sValue,h)); } function Zeitraum(sValue,sType) { var Wert1 = sValue.substr(sValue.indexOf(sType)); var Position = Wert1.indexOf("<strong>"); var Wert2 = Wert1.substr(Position+8,25); return Wert1.substr(Position+8,Wert2.indexOf("<")); } function Einheiten(sValue,sType) { var Wert1 = sValue.substr(sValue.indexOf(sType)); Wert1 = Wert1.substr(Wert1.indexOf("<strong>")+50,600); var Wert2 = Wert1.substr(Wert1.indexOf("<strong>")+8); Wert1 = Wert1.substr(Wert1.indexOf("<strong>")+8,Wert2.indexOf("&")); return String(Wert1).replace('Einheiten','').replace(' m³',''); } Ro75.
  • Datenpunkt aus mehreren Tagen Erzeugen

    19
    0 Stimmen
    19 Beiträge
    675 Aufrufe
    T
    @david-g sagte in Datenpunkt aus mehreren Tagen Erzeugen: @paul53 Ah, okay. Das verstehe ich. Dann macht RegeEx ja eigentlich fast immer mehr Sinn als der Selektor oder (da er mehr Eventualitäten abdeckt)? Langsam was offtopic.. Nein, der selector findet nur Änderungen und wenn dich nur Änderungen interessieren, was häufig der Fall ist, ist es RegEx vorzuziehen. Benutze aber selbst für gleiche DP ebenfalls regex mit change: 'was auch immer'. In deinem Fall ist es möglich, wenn auch nicht wahrscheinlich, das am z.B. 14. April die gleiche Leistung wie am 14 Mai gemessen wird, dann verändert sich der Wert des State nicht und dir fehlen Werte. Das könnte man dann wieder auffangen in dem man die Protokollierung der Werte auf Nur Änderungen und gleicher Wert nach 86.400 + x Sekunden protokoliert. Das würde dann nur nach 86400/x Fällen in Folge zu einem Fehler führen. em ok ;) kurz: nimm das von paul53
  • imap Script - Anhänge speichern, wie ?

    javascript
    1
    0 Stimmen
    1 Beiträge
    118 Aufrufe
    Niemand hat geantwortet
  • Tuya Thermostat setzt DP zurück

    3
    1
    0 Stimmen
    3 Beiträge
    272 Aufrufe
    Uwe WaizmannU
    @djmarc75 Oh mein Gott das wars! Vielen Dank
  • Auf die Schnelle alle Skripte de-/aktivieren?

    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    T
    @crunchip sagte in Auf die Schnelle alle Skripte de-/aktivieren?: @homoran sagte in Auf die Schnelle alle Skripte de-/aktivieren?: Skripte brauchen eigentlich nicht so viel. ich lieg bei über 300MB schalte ich instanz.1 ein (nur ein paar nicht laufende testscripte) verbraucht diese ebenfalls mehr als 200MB was macht ihr bitte schön??? ich hab ca. 30 Skripte, da sind ein paar Brummer dabei und gerade mal 150mb... :)
  • [Frage] Zeitstempel aus sql-DB in UTC

    3
    0 Stimmen
    3 Beiträge
    433 Aufrufe
    RogerWilco 0R
    @paul53 Cool, Danke für den Tipp, das hat funktioniert!
  • Zeitschalter Ein / Aus Zeitvorgabe via VIS

    blockly
    14
    1
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    A
    @paul53 Danke !
  • Bewässerung zeitabhängig schalten, wenn Variable wahr

    3
    1
    0 Stimmen
    3 Beiträge
    344 Aufrufe
    L
    @paul53 Stimmt. So geht’s natürlich. Danke dir! So fragt das Skript natürlich 365 Tage im Jahr mehrere Male die Variable ab, obwohl die nur 1-2 Wochen scharf geschaltet ist. Für das System sicherlich nicht ansatzweise eine Herausforderung. Ich hatte aber irgendwie nach einer eleganten Variante gesucht. Scheint aber der pragmatischste Weg zu sein. Baue ich so. Danke nochmal und Grüße!
  • Gelöst:Auslöser ermitteln

    3
    1
    0 Stimmen
    3 Beiträge
    159 Aufrufe
    M
    @paul53
  • [gelöst] Sinnvolle Logik für Beleuchtungen

    23
    0 Stimmen
    23 Beiträge
    1k Aufrufe
    T
    @ben1983 sagte in Sinnvolle Logik für Beleuchtungen: Ich dachte schon an eine Bewegungsreaktion gedacht, aber wenn jemand auf dem Sofa sitzt, wird auch keine erkannt. Wollte damit irgendwelche Bedingungen finden, um die Beleuchtung nicht zu aktivieren, oder wieder zu deaktivieren. Um 23:59 schalte ich sie zusätzlich aus. Wenn ich das haben wollte würde ich mit deiner anzunehmen Konfiguration folgende Bedingungen verbinden. Es ist später als Zeitpunkt und früher als anderer Zeitpunkt und es wurde noch nicht ausgelöst und ( (Jemand ist zu Hause und ( es wird eine Bewegung festgestellt oder ein Unterhaltungsgerät verbraucht Strom)) oder Besuchermodus ist aktiviert) Für mich würde ich es so umsetzten: Es ist später als Zeitpunkt und früher als anderer Zeitpunkt und es wurde noch nicht ausgelöst und ( Jemand ist zu Hause und Nachtmodus ist deaktiviert) oder Besuchermodus ist aktiviert) Ich hab nen Echo auf dem Nachttisch stehen und wenn ich dem gute Nacht sage, gehen alle Lampen aus, alle Rolladen runter, Monitore, und Fernseher werden stromlos geschaltet. Der Bewegungsmelder im Schalfzimmer wird deaktiviert, die Beleuchtung(Bewegungsmelder) im Flur wird gedimmt und das verzögerte Hauptlicht im Flur geht nicht mehr automatisch an. Die Klimaanlage geht ebenfalls aus.
  • [gelöst]Seltsames Script unter Global

    27
    1
    0 Stimmen
    27 Beiträge
    4k Aufrufe
    DJMarc75D
    @chemieka sagte in [gelöst]Seltsames Script unter Global: Hier macht nur eine neue Installation sinn. Und wie genau machst Du die ? ;)
  • Skript LOWBAT

    Verschoben
    201
    0 Stimmen
    201 Beiträge
    66k Aufrufe
    S
    @sigi234 sagte in Skript LOWBAT: @semmy Schau dir das mal an: https://forum.iobroker.net/topic/55426/test-adapter-device-watcher-v2-x-x-github-latest?_=1687204350972 Hallo Ich habe es mal installiert und funktioniert auch soweit. Vielen Dank Gruß Semmy

389

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge