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
    JackDanielJ
    @Asgothian sagte: der Baustein wert bekommt seinen Wert in dem Moment wo der Trigger auslöst. Das ändert sich nicht wenn du nach einer Pause von 1 Sekunde nochmal nachschaust. Sollte der Trigger innerhalb der 1 Sekunde nochmal auslösen, dann gibt es eine zweite Instanz des Bausteins wert, der den Inhalt des DP bei diesem Trigger hat. Diese Instanz ist aber in dem vom vorherigen trigger gestarteten Ablauf nicht verfügbar. danke das erklärt vieles
  • 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": [] } ]
  • Blockly: Szene nur beim ersten Anschalten des TVs schalten

    11
    1
    0 Stimmen
    11 Beiträge
    921 Aufrufe
    AsgothianA
    @adsfa sagte in Blockly: Szene nur beim ersten Anschalten des TVs schalten: A. Danke euch! Habe es jetzt so: [image: 1707728878264-e74235b5-24fb-4e2b-b7d6-755dbc6a631d-image.png] Wenn ich einen der beiden Prüfungen weglasse, würde das sonst so ungewollt triggern: Werte: 30 40 Solange wie es eine Lücke zwischen dem “vorherigen Wert” und “Wert” gibt bleibt ein Risiko das die von Dir gesetzte Bedingung nicht erfüllt werden kann. In einem Fall ist die Lücke von 5-7,999999999 A.
  • Werte in kWh oder Wh ermitteln.

    7
    1
    0 Stimmen
    7 Beiträge
    741 Aufrufe
    paul53P
    @lesiflo sagte: Der Wert für die Leistung wird ab und zu Mal mit 0 geliefert. Das macht nichts: Dann wird 0 auf die Energie addiert. Es sei denn, dass tatsächlich Leistung vorhanden ist: Dann verkürzt sich die Dauer zwischen "letzte Änderung" und "vorherige letzte Änderung" unzulässig.
  • Script PV-Prognoseabhängiger Verbraucherstart

    7
    1
    0 Stimmen
    7 Beiträge
    793 Aufrufe
    B
    CRON_Morgens_Ausgangsprognose_Heizung.txt [image: 1707563561550-ausgangsprognose.png]
  • Shelly Script von Stephan Kreyenborg Probleme(?)

    3
    0 Stimmen
    3 Beiträge
    292 Aufrufe
    R
    @homoran Yepp... Komisch... ich hatte im Forum nach "kreyenborg" gesucht, weil ich dachte, es gäbe dazu schon einen Thread, war aber nix. Sonst hätte ich kein neues Thema aufgemacht. Sorry
  • Script lief (aktiv) aber lief nicht (wurde nicht ausgeführt)

    3
    0 Stimmen
    3 Beiträge
    343 Aufrufe
    Chris929C
    @codierknecht Ich hab mir viele "Debug-Logs" ins script selbst gepackt, sodass ich auch immer eine Meldung erhalte, ob das script selbst lief, und auch von jedem Schritt des scriptes. Es ist 0,0 im Log - als ob es dieses script nie gegeben hätte? Node.js: v18.19.0 NPM: 10.2.3
  • History und Flot: Tageswerte anzeigen

    monitoring javascript blockly
    7
    0 Stimmen
    7 Beiträge
    827 Aufrufe
    amg_666A
    @jhuebner1 sagte in History und Flot: Tageswerte anzeigen: ann aber keinen Wert hat (jedenflals war es leer). dann probier die Einstellungen, die ich vorhin gepostet hatte. Denk aber auch daran, dass du bei den Eingangswerten Min und Max richtig setzt, sonst zeigt flot evtl nichts an weil deine Werte nicht im Range liegen (Min=0 und Max=25000 wären mal ein Versuche, wenn deine Werte Watt sind, wenn es Kilowatt sind muss Max natürlich kleiner sein (Max=25)
  • Object ID Knoten nur in Blockly nicht verfügbar

    3
    2
    0 Stimmen
    3 Beiträge
    125 Aufrufe
    CodierknechtC
    @archie-headroom 1.) Dein OS ist steinalt 2.) In dem steinalten System fehlen zusätzlich noch Updates 3.) Du hast den Desktop aktiv. Sowas hat auf 'nem Server nix zu suchen. 4.) Dein Node scheint nicht korrekt installiert zu sein.
  • Zustand online/offline einer Webseite prüfen

    3
    0 Stimmen
    3 Beiträge
    320 Aufrufe
    Dr. BakteriusD
    @dexic Wenn es nicht unbedingt mit dem ioBroker realisiert werden muss, kann man auch php Server Monitor: https://github.com/phpservermon/phpservermon/ verwenden.
  • Blockly Objekt ID Unterschiede

    blockly javascript
    6
    2
    1 Stimmen
    6 Beiträge
    1k Aufrufe
    haus-automatisierungH
    @marting Die Frage ist eher, warum Du nichts dazu gefunden hast... wo muss ich besser werden? :)
  • Max Objekte in IDs from Selektor

    4
    0 Stimmen
    4 Beiträge
    505 Aufrufe
    CodierknechtC
    @simplyclever Dann vielleicht häppchenweise. Der Selektor muss ja nicht unbedingt gleich auf alles unterhalb der Instanz gucken. Etwas in der Art renault.0.VF1xxxxxxxxxxxxxx1.general.vehicleDetails.battery.* könnte ja reichen. Da nimmt man sich dann halt peu á peu den nächsten Abschnitt vor.
  • Nulleinspeisung mit Tibber Puls und opendtu

    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    M
    @mashpony ich musste nochmal das ganze etwas optimieren. Der Tibber node unterteilt die leistungswerte in +. und - Deswegen die Funktion um Einspeisung vom Bezug abzuziehen. Hinten habe ich mit dem deadband das ganze noch etwas geglättet das es nicht immer wie wild regelt. außerdem ist der WR jetzt nach unten auf 10% limitiert. [ { "id": "7bf3afac51a18e13", "type": "tab", "label": "PVNull", "disabled": false, "info": "", "env": [] }, { "id": "2dacc22b5419c832", "type": "mqtt out", "z": "7bf3afac51a18e13", "name": "WR MQTT", "topic": "solar/116484658617/cmd/limit_nonpersistent_absolute", "qos": "", "retain": "", "respTopic": "", "contentType": "", "userProps": "", "correl": "", "expiry": "", "broker": "87b2d138566ff5cc", "x": 1910, "y": 300, "wires": [] }, { "id": "992140f008964c0e", "type": "function", "z": "7bf3afac51a18e13", "name": "Berechnung für WR Limit", "func": "// MAX generation of the inverter Watts\nvar maxPower = 1600;\n\n// Get current power limit or default\nvar power = context.get('power') || maxPower;\npower += msg.payload;\n\n// clamp power between 0 and max\nif (power > maxPower) power = maxPower;\nif (power > 0) power = power + 150;\nif (power < 10) power = 160;\n\n// Wenn keine Werte vom Zähler kommen dann 600 W\n//if (power == 0) power = 1600;\n\n// store current powerlimit and update message\ncontext.set('power', power);\nmsg.payload = power;\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1430, "y": 300, "wires": [ [ "cfc7a51cd2515e7c", "50883943a3e33578" ] ] }, { "id": "cfc7a51cd2515e7c", "type": "debug", "z": "7bf3afac51a18e13", "name": "WR Wert", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1680, "y": 220, "wires": [] }, { "id": "7c9607b020e57be9", "type": "tibber-feed", "z": "7bf3afac51a18e13", "name": "B4D", "active": true, "apiEndpointRef": "acaea9XXXXXXXXXX", "homeId": "6453fa8f-XXXXXXXXXXXXX", "timestamp": false, "power": true, "lastMeterConsumption": false, "accumulatedConsumption": false, "accumulatedProduction": false, "accumulatedConsumptionLastHour": false, "accumulatedProductionLastHour": false, "accumulatedCost": false, "accumulatedReward": false, "currency": false, "minPower": false, "averagePower": false, "maxPower": false, "powerProduction": true, "minPowerProduction": false, "maxPowerProduction": false, "lastMeterProduction": false, "powerFactor": false, "voltagePhase1": false, "voltagePhase2": false, "voltagePhase3": false, "currentL1": false, "currentL2": false, "currentL3": false, "signalStrength": false, "x": 50, "y": 300, "wires": [ [ "303c3a9e684e3aca", "acd3b41ba56f0995" ] ] }, { "id": "303c3a9e684e3aca", "type": "debug", "z": "7bf3afac51a18e13", "name": "Tibber output", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 260, "y": 220, "wires": [] }, { "id": "f2cca6ecae7ad5fc", "type": "debug", "z": "7bf3afac51a18e13", "name": "Tibber positiv", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "positiv", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 640, "y": 220, "wires": [] }, { "id": "727ade03c58e2d2b", "type": "change", "z": "7bf3afac51a18e13", "name": "Positiv", "rules": [ { "t": "set", "p": "positiv", "pt": "msg", "to": "payload.power", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 430, "y": 300, "wires": [ [ "f2cca6ecae7ad5fc", "e957d8fb0f0bd489" ] ] }, { "id": "52b31c00780196ab", "type": "delay", "z": "7bf3afac51a18e13", "name": "", "pauseType": "rate", "timeout": "10", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "10", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": true, "allowrate": false, "outputs": 1, "x": 1110, "y": 300, "wires": [ [ "992140f008964c0e", "aed44dec4557ee97" ] ] }, { "id": "aed44dec4557ee97", "type": "debug", "z": "7bf3afac51a18e13", "name": "nach delay", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1390, "y": 220, "wires": [] }, { "id": "50883943a3e33578", "type": "rbe", "z": "7bf3afac51a18e13", "name": "", "func": "deadband", "gap": "30", "start": "", "inout": "out", "septopics": true, "property": "payload", "topi": "topic", "x": 1690, "y": 300, "wires": [ [ "2dacc22b5419c832", "fb6e2a22c5dd3e5f" ] ] }, { "id": "fb6e2a22c5dd3e5f", "type": "debug", "z": "7bf3afac51a18e13", "name": "nach Filter", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1910, "y": 220, "wires": [] }, { "id": "acd3b41ba56f0995", "type": "time-switch", "z": "7bf3afac51a18e13", "name": "zeitschaltung", "lat": "48.1492455", "lon": "12.0148575", "startTime": "sunrise", "endTime": "sunset", "startOffset": 0, "endOffset": 0, "x": 250, "y": 300, "wires": [ [ "727ade03c58e2d2b" ], [] ] }, { "id": "779a354a9c204395", "type": "inject", "z": "7bf3afac51a18e13", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "00 22 * * *", "once": false, "onceDelay": 0.1, "topic": "", "payload": "1600", "payloadType": "num", "x": 1370, "y": 360, "wires": [ [ "50883943a3e33578" ] ] }, { "id": "e957d8fb0f0bd489", "type": "change", "z": "7bf3afac51a18e13", "name": "Negativ", "rules": [ { "t": "set", "p": "negativ", "pt": "msg", "to": "payload.powerProduction", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 620, "y": 300, "wires": [ [ "7576e3b12206f405", "cac94db4ac79fe23" ] ] }, { "id": "7576e3b12206f405", "type": "debug", "z": "7bf3afac51a18e13", "name": "Tibber - negativ", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "negativ", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 840, "y": 400, "wires": [] }, { "id": "6f770f0a3305a631", "type": "debug", "z": "7bf3afac51a18e13", "name": "nach rechner", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1070, "y": 360, "wires": [] }, { "id": "cac94db4ac79fe23", "type": "change", "z": "7bf3afac51a18e13", "name": "Suptrahieren", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "msg.positiv - msg.negativ", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 300, "wires": [ [ "52b31c00780196ab", "6f770f0a3305a631" ] ] }, { "id": "87b2d138566ff5cc", "type": "mqtt-broker", "name": "", "broker": "192.168.1.2", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "4", "keepalive": "60", "cleansession": true, "autoUnsubscribe": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closeQos": "0", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" }, { "id": "acaea9118c2d1751", "type": "tibber-api-endpoint", "queryUrl": "https://api.tibber.com/v1-beta/gql", "feedConnectionTimeout": "30", "feedTimeout": "60", "queryRequestTimeout": "30", "name": "B4D" } ] [image: 1706607905892-bildschirmfoto-2024-01-30-um-10.40.44-resized.png]
  • Objekt / Datenpunkt sperren möglich?

    javascript
    12
    0 Stimmen
    12 Beiträge
    939 Aufrufe
    M
    @djmarc75 Mit welchem Ziel? Der existente Datenpunkt Volume wird durch einen Bug geändert, obwohl er das nicht soll. Mit dem Effekt, dass sich die Lautstärke der Lautsprecher ändert. Das möchte ich nicht.
  • Alexa Sprachausgabe reihenfolge ändern

    9
    0 Stimmen
    9 Beiträge
    290 Aufrufe
    DJMarc75D
    @timowald sagte in Alexa Sprachausgabe reihenfolge ändern: Ich hatte den verwendet aha, also Tankerkönig - sowas gehört im Eingangspost erwähnt ! Das sind 3 Nachkommastellen und damit kann Alexa (nicht der Adapter sondern die Geräte) nichts anfangen.
  • Fixe Liste als Szenario / DropDown Auswahl nutzen

    1
    0 Stimmen
    1 Beiträge
    213 Aufrufe
    Niemand hat geantwortet
  • Blockly Script -> ein Script für mehrere Trigger

    24
    1
    0 Stimmen
    24 Beiträge
    3k Aufrufe
    paul53P
    @cheffe sagte: exportieren Spoiler <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Hi#eH=aV#vRl=,^ygpGJ">idsSrc</variable> <variable id="xmlJs;}Sy%29W|+F.NyC">colors</variable> <variable id="Yhg0(ku+)2HzqtF%`)Y(">idsDst</variable> <variable id="HA8wOV^!Mo*mVkmuE`{G">path</variable> <variable id="DkSf^#3^q_TCS/]@U1f|">color</variable> </variables> <block type="variables_set" id="ZMmnT=Sgjmi[-81-5:T7" x="62" y="62"> <field name="VAR" id="Hi#eH=aV#vRl=,^ygpGJ">idsSrc</field> <value name="VALUE"> <block type="lists_create_with" id="GC|S:*pW~Z~r2b9@=FfC"> <mutation items="3"></mutation> <value name="ADD0"> <block type="field_oid" id="skLX]bOBk|j*A:|{6S67"> <field name="oid">default</field> </block> </value> <value name="ADD1"> <block type="field_oid" id="deqLr_^vEI%YW4p#Ft;w"> <field name="oid">default</field> </block> </value> <value name="ADD2"> <block type="field_oid" id="C7KgG]w4;Cf_5UD$XjB*"> <field name="oid">default</field> </block> </value> </block> </value> <next> <block type="variables_set" id="-4N9.Y]Qe;9:lX0ARkDl"> <field name="VAR" id="Yhg0(ku+)2HzqtF%`)Y(">idsDst</field> <value name="VALUE"> <block type="lists_create_with" id="hACXIS)K?`+!A/}V3.@t"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="tdS:Gvo,qdR-v4EF%D5N"> <field name="TEXT">fritzdect.0.DECT_130770174577-1.</field> </block> </value> <value name="ADD1"> <block type="text" id="7Sbp]]Hk]o(3(lOv=Hdt"> <field name="TEXT">fritzdect.0.DECT_1307701xxxxx-1.</field> </block> </value> <value name="ADD2"> <block type="text" id="6+#W2Ll^v!p-lVlDHe!}"> <field name="TEXT">fritzdect.0.DECT_1307701xxxxx-1.</field> </block> </value> </block> </value> <next> <block type="on_ext" id="IbyVK%nhw1e;G[XO=,ZH"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="#K4xW+0~Z/V!)b=W%pJO"> <field name="oid">default</field> </shadow> <block type="variables_get" id="qBcGS~jE=R?iWxiTbkGP"> <field name="VAR" id="Hi#eH=aV#vRl=,^ygpGJ">idsSrc</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id="bDt/7kIkUcvh|mzux5h9"> <field name="VAR" id="HA8wOV^!Mo*mVkmuE`{G">path</field> <value name="VALUE"> <block type="lists_getIndex" id="!^+`}av#Hr0]D*@zqTg("> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="u?O$mJqm}|{AFnc3W53."> <field name="VAR" id="Yhg0(ku+)2HzqtF%`)Y(">idsDst</field> </block> </value> <value name="AT"> <block type="lists_indexOf" id="2oq|1``]/mB3]lgN0`r}"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="cj_vdh4R}:x?Ey2AE-y*"> <field name="VAR" id="Hi#eH=aV#vRl=,^ygpGJ">idsSrc</field> </block> </value> <value name="FIND"> <block type="on_source" id="]I.I,=i+XZ8MM$-jw3Ll"> <field name="ATTR">id</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id=".-I,h2xyWa|SzGjFsGFH"> <field name="VAR" id="DkSf^#3^q_TCS/]@U1f|">color</field> <value name="VALUE"> <block type="lists_getIndex" id="Ff!f[H06W-8:!Hf@MS9!"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="F*thvjBv_%$3b]!*eba("> <field name="VAR" id="xmlJs;}Sy%29W|+F.NyC">colors</field> </block> </value> <value name="AT"> <block type="on_source" id="X98X9-/y?U0uI`*rb[`z"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="controls_if" id="q%DN/O2K^zy0y^*`SJ~U"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="G8`poFCeW?wsW/s{7:Uu"> <field name="OP">EQ</field> <value name="A"> <block type="convert_type" id="XVq3|UyI}*y7ZA||_sGA"> <value name="ITEM"> <block type="variables_get" id="?llSUTx335xf~y{Cc7t*"> <field name="VAR" id="DkSf^#3^q_TCS/]@U1f|">color</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="o+.M^C~ZBwDu]t7PJMCo"> <field name="TEXT">number</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control_ex" id="bzIJj2|2J:ki/X_kJbl=" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="v:FgL~c4TV?QqS}-XxW9"> <field name="oid">Object ID</field> </shadow> <block type="text_join" id="[CY5#utPi%^zn/i6vYn4" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="`:71W.^^|Ekvx}tg4H=#"> <field name="VAR" id="HA8wOV^!Mo*mVkmuE`{G">path</field> </block> </value> <value name="ADD1"> <block type="text" id="u?t0tI3MwLtSBl?=FTGe"> <field name="TEXT">temperature</field> </block> </value> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="ymtV(ImH`B(JpW`z_/Q:"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id=")^U5ec$XLTJ~Zstbg6W4"> <field name="VAR" id="DkSf^#3^q_TCS/]@U1f|">color</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="5.BL.WR6]-D;e(kZa{[:"> <field name="NUM">0</field> </shadow> </value> </block> </statement> <statement name="ELSE"> <block type="control_ex" id="}k9jaEh_X![G^K/3:Btg"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="v:FgL~c4TV?QqS}-XxW9"> <field name="oid">Object ID</field> </shadow> <block type="text_join" id="TgL1NmzQR)W=J))(1ioa" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="wl?@Nld1?Izax^[TVq{m"> <field name="VAR" id="HA8wOV^!Mo*mVkmuE`{G">path</field> </block> </value> <value name="ADD1"> <block type="text" id="RHlVCR98ZQMhQgJ?fS[W"> <field name="TEXT">hue</field> </block> </value> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="ymtV(ImH`B(JpW`z_/Q:"> <field name="BOOL">TRUE</field> </shadow> <block type="lists_getIndex" id="o226vJK8#-Igf*R.q(RQ"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="OyGNR)7e#W,!+E;rY8s."> <field name="VAR" id="DkSf^#3^q_TCS/]@U1f|">color</field> </block> </value> <value name="AT"> <block type="math_number" id="PAGqQ5DHK-95whM$,clx"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="Tv~lO]wGDR;^eR,e?CG_"> <field name="NUM">0</field> </shadow> </value> <next> <block type="control_ex" id="2JUnTRJbGXqpzemH(~i3"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="v:FgL~c4TV?QqS}-XxW9"> <field name="oid">Object ID</field> </shadow> <block type="text_join" id="O[rkhu9F8{$dS=F?pu!P" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="9Z~h:7mKfnI`FdOtlrDm"> <field name="VAR" id="HA8wOV^!Mo*mVkmuE`{G">path</field> </block> </value> <value name="ADD1"> <block type="text" id="Mm{6;kcRL9lklHoypMZs"> <field name="TEXT">saturation</field> </block> </value> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="ymtV(ImH`B(JpW`z_/Q:"> <field name="BOOL">TRUE</field> </shadow> <block type="lists_getIndex" id="z2O@l~[$f,5jm|Boc6dw"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="xc8+d1XIetOqO0#1IWFK"> <field name="VAR" id="DkSf^#3^q_TCS/]@U1f|">color</field> </block> </value> <value name="AT"> <block type="math_number" id="#2y`xCANn8V-hLH[5b*p"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="8%L08aYlqhack6-0uzg="> <field name="NUM">0</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> <block type="variables_set" id="qFS2e]_GWaviVI*`|H8s" x="762" y="512"> <field name="VAR" id="xmlJs;}Sy%29W|+F.NyC">colors</field> <value name="VALUE"> <block type="lists_create_with" id="=SIs;){U:ghJ8YewEFpZ"> <mutation items="7"></mutation> <value name="ADD0"> <block type="math_number" id="6}O8rkTF:Hf9[/4qKF!+"> <field name="NUM">2700</field> </block> </value> <value name="ADD1"> <block type="math_number" id="ieZq0A1KZ,9yvOFQD;wE"> <field name="NUM">3000</field> </block> </value> <value name="ADD2"> <block type="math_number" id="4CGsih6V^m?4pn+MlHhV"> <field name="NUM">3400</field> </block> </value> <value name="ADD4"> <block type="lists_create_with" id="krR,bF^+9-G1|839tckw" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="math_number" id="c.$p*jW^C5,=ulXp*IEm"> <field name="NUM">35</field> </block> </value> <value name="ADD1"> <block type="math_number" id="*NJwV9~gw*0-*6t2q!TQ"> <field name="NUM">214</field> </block> </value> </block> </value> <value name="ADD5"> <block type="lists_create_with" id="OY{[N3oMc`m{E,f]~!In" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="math_number" id=")P9(a`_osVe_Eib,s76a"> <field name="NUM">35</field> </block> </value> <value name="ADD1"> <block type="math_number" id="a_JgcVfP_2a}:KX10#JL"> <field name="NUM">140</field> </block> </value> </block> </value> </block> </value> </block> </xml>
  • Blockly für persistenten Shelly Zähler

    7
    1
    0 Stimmen
    7 Beiträge
    811 Aufrufe
    B
    Ich danke euch vielmals für eure Eingaben! Damit habe ich alle Herausforderungen lösen können. :-)
  • Awtrix Light - Benachrichtigung bist DP geändert

    11
    1
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    U
    @haus-automatisierung Ja meeeega, vielen vielen Dank, Perfekt, jetzt macht das Gerät genau was ich will, erheblicher Mehrwert
  • Telegram - Nachrichten aus Gruppen empfangen

    2
    2
    0 Stimmen
    2 Beiträge
    272 Aufrufe
    BananaJoeB
    ok, ich kann mir die Frage selbst beantworten: https://core.telegram.org/bots/faq#what-messages-will-my-bot-get [image: 1706093552148-61b7c798-6306-4642-94f0-c966cff7b231-image.png] Hier hat einer eine Lösung gefunden die Nachrichten doch zu lesen: https://stackoverflow.com/questions/53016170/telegram-bot-receiving-commands-from-other-bot mal schauen ...
  • Script für einen SpeedTest über speedtest.net

    Verschoben javascript
    177
    0 Stimmen
    177 Beiträge
    55k Aufrufe
    Thomas BraunT
    @daniel-schmitz87 sagte in Script für einen SpeedTest über speedtest.net: ich habe wie angegeben den Befehlt: sudo npm install --global speed-test ausgeführt. Macht man nicht so. Vor allen Dingen NICHT per sudo. Und Konsolentext NICHT als Bildchen hier rein sondern als Text in Codetags eingebettet. Mach es am besten über das Skript von @SKB : https://forum.iobroker.net/topic/48700/speedtest-skript-von-kreyenborg-koeln-für-kabel-gigabit
  • Rolladensteuerung über Zeitraum und Helligkeit

    9
    2
    0 Stimmen
    9 Beiträge
    748 Aufrufe
    CluniC
    @triplex Ich habe vor ein paar Monaten ein riesiges Blockly programmiert, welches eine Steuerung meiner Rollladen unter diversen Blickpunkten ermöglicht. Grundsätzlich wird nach Astrozeiten gefahren. Man kann aber eine frühste bzw späteste Zeit für Öffnen und Schließen und zusätzlich Offsets zur Astrozeit vorgeben. Fürs Wochenende/Feiertage kann man nochmals separat eine eigene frühste Öffnungszeit setzen. Dann kann man noch jedem Rollladen eine eine Zufallszeit in Sekunden und einen Offset geben, so dass man bestimmen kann, dass bestimmte Rollläden definiert zum Schluss gefahren werden (z.B. Terrassentür). Alle anderen fahren durch die Zufallszahlen jeden Tag in anderer Reihenfolge. Des weiteren kann man einstellen, ob Rollläden z.B. nur bei Anwesenheit oder Abwesenheit gefahren werden sollen. Fenstersensoren werden auch unterstützt. Damit können Rollläden z.B. bei offener Tür gesperrt werden. Oder man kann einstellen, dass ein Rollladen beim Öffnen eines Fensters automatisch zum Lüften geöffnet und beim Schließen wieder geschlossen wird. Man kann auch noch eine Mindesttemperatur fürs Öffnen vorgeben, damit nicht der Panzer bei festgefrorenem Rollladen zerrissen werden kann. Es fehlt noch die Steuerung der Abschattung im Sommer. Alle Einstellungen sind dafür schon vorhanden, aber das muss ich irgendwann noch im Angriff nehmen vor dem Sommer. Die Skripte kann ich dir gerne zukommen lassen. Aber sie sind SEHR umfangreich und wahrscheinlich für Außenstehende trotz Kommentare schwer verständlich. Es gibt außerdem ein Skript, welches sich um das Anlegen der Rollläden im Userbereich kümmert. Das müsste natürlich auf deine Rollläden speziell angepasst werden. Da ich momentan nicht viel Zeit habe, kann ich dir da leider auch keine Unterstützung zu geben - das heißt du müsstest dich im Großen und Ganzen ganz alleine da durch kämpfen. Hier mal nur ein Teilausschnitt meines Blocklys: [image: 1705918513976-252bf30b-043b-4cd8-bca4-fffc3c204016-image.png] Allgemeine Einstellungen: [image: 1705918770315-b162dffb-1519-4db1-94e8-0e5448d1eac7-image.png] Einstellungen für jeden Rollladen: [image: 1705918818771-63a098e7-6904-460c-a79d-aa9bf5ab1d4a-image.png]

361

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge