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
    portyP
    mal wieder: Danke fürs updaten. Gibt es eigentlich Infos bezüglich der neuen Firmware? Ich habe das Firmwareupdate aktuell noch nicht durchgeführt.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    HomoranH
    @emil70 sagte: Das ist mein Netzwerk zu Hause. Dann musst du die IPs anpassen. Diese IPs sind reserviert und dürfen nicht in privaten Netzen verwendet werden. Beim Aufruf einer 192.168.x.y weiss der Router dass das eine private IP ist und sucht bei dir zu Hause. Nimmst du aber 125.123.x.y sucht der Router im Internet bei Chinanet.
  • 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": [] } ]
  • Zwei Datenpunkte miteinander Koppeln

    7
    0 Stimmen
    7 Beiträge
    670 Aufrufe
    D
    @paul53 Danke! Dann werde ich mal meine Struktur überdenken
  • Überschuss im Heizstab berechnen

    5
    0 Stimmen
    5 Beiträge
    539 Aufrufe
    M
    @christianm sagte in Überschuss im Heizstab berechnen: Als Hardware habe ich hier einen stufenlos regelbaren Heizstab (AC Thor) Würde mich auch interessieren. Hab einen 300 Liter Wasserboiler und einen ganz normalen 2,5 kw Heizstab derzeit drinnen. Kann ich diesen einfach durch den AC Thor ersetzen? Mit welchen Kosten muss ich beim AC Thor rechnen?
  • Letzer Tag des Monats

    7
    0 Stimmen
    7 Beiträge
    933 Aufrufe
    CinimodC
    @bambulko Kannst auch mit Blockly einfach Täglich schauen ob morgen Monatsdatum 1 ist. [image: 1675621302510-bildschirmfoto-2023-02-05-um-19.19.06.png]
  • Gelöst: Zugriff auf Daten eines Objektes in JS

    2
    0 Stimmen
    2 Beiträge
    297 Aufrufe
    paul53P
    @berchemer sagte: auf "native.ip" zugreifen möchte... Wie mache ich das? let ip = getObject('net-tools.0.MAC_ID').native.ip;
  • Grösser/kleiner als letztes bestätigt?

    7
    0 Stimmen
    7 Beiträge
    521 Aufrufe
    S
    @paul53 Okay, danke. Wenn ich also sichergehen will, dass der Befehl auch wirklich angekommen ist, dann muss ich noch ne Prüfung einbauen.
  • Überwachen der externen Festplatte an der FritzBox

    11
    0 Stimmen
    11 Beiträge
    963 Aufrufe
    Maik KrauseM
    @djmarc75 Meinte den Beitrag davor bevor er von dir bearbeitet wurde. Es gibt Email benachrichtigung wo Kommentare drin stehen, aber egal! @Thomas-Braun Ich erkläre es mal anders. Nehmen wir mal an ich mache aller 5 Tage ein Backup von Iobroker über FTP, Die Aufnahmen der Reolink Kamera werden ständig auf der NAS über FTP gespeichert. An Tag 1 ist das speichern des Backup auf NAS erfolgreich, bekomme die Whatsapp mitteilung. An Tag 2 startet die Fritzbox neu. In den Zeitraum des Neustarts und des erkennen der Festplatte schickt die Kamera eine Datei. Da es zu diesen Zeitpunkt keine Festplatte gibt legt sie einen neuen Ordner an mit dem Laufwerksname. Wird nun die Festplatte an der Fritzbox erkannt bekommt sie einen neuen Laufwerksname. Die Kamera kann die Dateien nur so lange speichern bis der Speicher der Fritzbox voll ist. Am 5. Tag versucht Iobroker das Backup auf der NAS zu speichern. Da kein Speicher frei ist bekomm ich die Fehlermeldung und somit fehlen mir 4 Tage Aufnahmen der Kamera.
  • Batterie Speicher Notstrom Synology herunterfahren

    5
    0 Stimmen
    5 Beiträge
    562 Aufrufe
    haus-automatisierungH
    @codierknecht sagte in Batterie Speicher Notstrom Synology herunterfahren: Es müssen ja auch irgendwie die Login-Daten übermittelt werden. Ganz normale SSH Key Authentication wie bei jedem anderen Linux-System auch.
  • [Gelöst] Request error: Error: socket hang up

    3
    0 Stimmen
    3 Beiträge
    631 Aufrufe
    T
    @wendy2702 Sorry für die verspätete Reaktion. Danke für Deine Antwort. Der Fehler war zwei Tage später genau so allein wieder weg, wie er vorher aufgetreten ist. Hoffentlich bleibt es so. VG
  • Blockly: Wiedereinschalten verhindern

    5
    1
    0 Stimmen
    5 Beiträge
    463 Aufrufe
    1Topf1
    @paul53 Alles klar, danke Dir. Dann warte ich mal auf viele sonnenlose Tage und -20°C.
  • 2 BWM/5 Lichtquellen/Speer-&Zeit-Datenpunkt

    3
    1
    0 Stimmen
    3 Beiträge
    343 Aufrufe
    paul53P
    @bacado sagte: Folgendes ist gewünscht: Vorschlag: [image: 1674932317518-blockly_temp.jpg] Spoiler <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="?,h:f}.OAF+=$YSwL[!l">ein</variable> <variable id="fD`y8)BjvBmZkIjCGMx{">hauptlicht</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on" id="ym3sQ8a-q/XTHHF1Y88{" x="-312" y="1762"> <field name="OID">0_userdata.0.Zeithilfe.Nachtlicht</field> <field name="CONDITION">false</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="h~hZ3xG^YW`?9c_P[3FF" inline="true"> <mutation name="indirekt"> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="f8b`vpNoSSw/Rv[5!v=v"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="on" id="a[0,K7vQk)?uxvvavMSr"> <field name="OID">openknx.0.Obergeschoss.Leuchten_Schalten.BadZentralAus</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="8+$*ao{u4Wj#G!z!oUYk" inline="true"> <mutation name="indirekt"> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="-X[uhrtK)o!*)iczOc_l"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="5NROZ2ogdfnre9OGiQLj"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Rm,b,s8RBf*[:)V,D#/z"> <field name="oid">openknx.0.Obergeschoss.Leuchten_Schalten.Badezimmer_Bad_Ein_aus</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="gXG7N:PVaT,1DM6@8[nF"> <field name="oid">openknx.0.Obergeschoss.Leuchten_Schalten.Badezimmer_Dusche_Ein_aus</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="(R3,*r;9o4*9ya%(Ox+{"> <field name="VAR" id="fD`y8)BjvBmZkIjCGMx{">hauptlicht</field> <value name="VALUE"> <block type="logic_operation" id="3Ur#1_WV_~e#|tV3e01l" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="get_value" id="9z%H}x.LDxSu%PuME.~)"> <field name="ATTR">val</field> <field name="OID">openknx.0.Obergeschoss.Leuchten_Status.Badezimmer_Bad_Ein_aus</field> </block> </value> <value name="B"> <block type="get_value" id="3(6c/{Brvkxi5obj0#Ya"> <field name="ATTR">val</field> <field name="OID">openknx.0.Obergeschoss.Leuchten_Status.Badezimmer_Dusche_Ein_aus</field> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="A_)6$~d|I+ag?OnlV?f^" inline="true"> <mutation name="indirekt"> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="logic_operation" id="#^G(+x[YF,!iimi3TQ6U"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="@/ZI%]2+(M]T~J2,p.?Q"> <field name="VAR" id="fD`y8)BjvBmZkIjCGMx{">hauptlicht</field> </block> </value> <value name="B"> <block type="get_value" id="i)|[#gQ!1D/oblvmfs*a"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Zeithilfe.Nachtlicht</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="on_ext" id="]tl|pI^Zy14-K9!@Iaok"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="7),$o:5!ozN1WSxlV#Tw"> <field name="oid">zigbee.0.a4c1388f02e12050.occupancy</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="o^|0q5]U`2?^iqQ@jTIy"> <field name="oid">zigbee.0.00124b002508d3eb.occupancy</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="!5:*;E=DoNK[_bk;@Wai"> <value name="IF0"> <block type="logic_operation" id="u9T@:){.loez-HMVOClJ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="get_value" id="3_.[tN$7uzx6ItGm:CK{"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Zeithilfe.Nachtlicht</field> </block> </value> <value name="B"> <block type="logic_negate" id="lC_L:cY=0A_x.4bi8`.="> <value name="BOOL"> <block type="variables_get" id="^F^K42WT$Z=[;gLiPY7/"> <field name="VAR" id="fD`y8)BjvBmZkIjCGMx{">hauptlicht</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="k#ljA},8~6yz*F((;wmY"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="d8*dsIQob;fuktj47_bF" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="get_value" id=")y]prKI~2rckQq9,R)(."> <field name="ATTR">val</field> <field name="OID">zigbee.0.00124b002508d3eb.occupancy</field> </block> </value> <value name="B"> <block type="get_value" id="Uaf*xd*W.o**nrIyf=Rs"> <field name="ATTR">val</field> <field name="OID">zigbee.0.a4c1388f02e12050.occupancy</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="{mLh[m_L*t9,esucYy)#" inline="true"> <mutation name="indirekt"> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="de(/JP/O*Z:v/0_gd`bo"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="timeouts_settimeout" id=".m-G8rv8F(f]?*9LY}$e"> <field name="NAME">timeout</field> <field name="DELAY">70</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="n;yhcacp`4EUDW!:%r(Z" inline="true"> <mutation name="indirekt"> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="logic_boolean" id="S*lz`ILNUW-wv0%ToC8U"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="NEip`/m*@B5EXT+aE*!^" x="538" y="1763"> <mutation> <arg name="ein" varid="?,h:f}.OAF+=$YSwL[!l"></arg> </mutation> <field name="NAME">indirekt</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="nF:y6{O~,-7o,LYlP1hu"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.40915144e793.seg.0.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="]oV,_3($m,h.dze$3ic`"> <field name="VAR" id="?,h:f}.OAF+=$YSwL[!l">ein</field> </block> </value> <next> <block type="control" id="%X{hE3sFXP6l;q`}%/sR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.ec1bbdfffe7f5bc5.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="ZD!;u*H/wlYx`A!5;Zv~"> <field name="VAR" id="?,h:f}.OAF+=$YSwL[!l">ein</field> </block> </value> <next> <block type="control" id="Wa_UUjmCDr:yop^[OWVI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.58bf25d755ca.seg.0.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="^7W?EQ3YI/ol(ZdbPA2)"> <field name="VAR" id="?,h:f}.OAF+=$YSwL[!l">ein</field> </block> </value> <next> <block type="controls_if" id="SAxk7Uc(dE[TZ$@Q2E?q"> <value name="IF0"> <block type="variables_get" id="SVV]sWc}W9QV4UmhX2S4"> <field name="VAR" id="?,h:f}.OAF+=$YSwL[!l">ein</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="dQvjSEVQ+F1XU`BchX*C"> <field name="NAME">timeout</field> <next> <block type="comment" id="Z%a?UBi^j~KNs2nQOY$*"> <field name="COMMENT">Wled Dusche</field> <next> <block type="control" id="{y;-AaPonj%HO.$CochM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.40915144e793.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=",Z*@~I*HxVF~u9Xo?PJA"> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="OE6CHy@M|(6-0;{BrG`h"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.40915144e793.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="C|x4hmzZbewM5%I#53{3"> <field name="NUM">200</field> </block> </value> <next> <block type="comment" id="pd61e/P=*$qJUQi{?Fjc"> <field name="COMMENT">Badezimmerschrank</field> <next> <block type="control" id="VHOa=9Z2%7kMu:DLrwj$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.ec1bbdfffe7f5bc5.colortemp</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="g)[f1U]Y8%5Og,pgSocz"> <field name="NUM">2200</field> </block> </value> <next> <block type="control" id="9j^wMSxRhQ9rrt!VX([r"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.ec1bbdfffe7f5bc5.brightness</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="ngt!{os6yB(.Qy-cN9cK"> <field name="NUM">30</field> </block> </value> <next> <block type="comment" id="b5N:p5UR`u%`]Ea1}Ajv"> <field name="COMMENT">Badewanne</field> <next> <block type="control" id="]UV+%]3KtV|;O[2a=k0P"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.58bf25d755ca.ps</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="!KbL$(26t6EDwEHmtizC"> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="v_?KW6ExjY}U8WF.?+aR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">wled.0.58bf25d755ca.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="oLT(I;!S./N4Wzl)S^I["> <field name="NUM">200</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
  • [gelöst] Fernsteuern eines RasPis

    blockly javascript
    6
    0 Stimmen
    6 Beiträge
    539 Aufrufe
    PlasmachefP
    @liv-in-sky wow, klarer Fall von fortgeschrittene Herangehensweise :-) Herzlichen Dank auch dir für den Tipp, da ich aber nicht der Profi auf dem Gebiet bin, werde ich dem Adapter, der schon eingebunden und mit passenden Blocklys versorgt wurde, den Vorzug geben ;-)
  • NSPanel Warnmeldungen

    9
    1
    0 Stimmen
    9 Beiträge
    742 Aufrufe
    ArmilarA
    @marc-berg ich denke, manchmal sieht man den Wald vor lauter Bäumen nicht... Im TS-Script für das NSPanel gibt es aber auch gar nicht so viel im oberen Bereich zur Konfiguration... Wenn du nicht direkt mit der Programmierung bewandert bist, ist es häufig nicht so leicht - auch wenn die Wiki dahingehend sehr ausführlich ist.
  • Regex Experte gesucht

    6
    0 Stimmen
    6 Beiträge
    585 Aufrufe
    F
    @oliverio said in Regex Experte gesucht: const cheerio = require('cheerio'); const axios = require('axios'); const dp_Bad = "0_userdata.0.test1"; const dp_Sauna = "0_userdata.0.test2"; async function getData() { const response = await axios.get('https://aqualaatzium.de/'); const $ = cheerio.load(response.data); let bad = $($(".ampel-sauna div")[1]).text(); let sauna = $($(".ampel-schwimmbad div")[1]).text(); log(bad); log(sauna); setState(dp_Bad,bad); setState(dp_Sauna,sauna); } getData(); Hab ganz herzlichen Dank, läuft perfekt! Den Rest bekomme ich auch alleine hin, es scheiterte an den Web Abfrage.
  • Blockly und Funktionen

    Verschoben
    19
    0 Stimmen
    19 Beiträge
    6k Aufrufe
    A
    Ich habe eine andere, wie ich glaube, elegante Lösung gefunden, die ohne Pogrammierung in JavaScript auskommt. Ich habe mir fürs Senden nach Signal ein normales Blockly Script (_SendToSignal) geschrieben, was einfach ein paar extra dafür eingerichtete Datenpunkte (0_userdata.0.SendToSignal.SendStat, 0_userdata.0.SendToSignal.Text) überwacht. Wenn irgendein beliebiges Script, auch Blockly, den Datenpunkt SendStat auf true setzt, sendet das Script den String in Text an Signal und setzt SendStat auf false. Das wars. Total einfach im Handling. Sowas kann man mit beliebigen Funktionen erledigen, die in mehreren Scripn gleich sind. Das baue ich mir jetzt noch für die Thermostateinstellung und gut ist.
  • Schleife über Datenpunkte (JSON) inkl. DP ERstellung

    10
    0 Stimmen
    10 Beiträge
    815 Aufrufe
    nukleuzN
    @codierknecht Ich habe es für meine Zwecke hinbekommen. Danke für die Hilfestellung... Hier das Skript, falls jemand vor dem gleichen oder ähnlichem Problem steht: var json, name2; const idDP = '0_userdata.0.Klima.Test.'; on({id: [].concat(Array.prototype.slice.apply($("state[id=*](functions=thermo)"))), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; json = (obj.state ? obj.state.val : ""); name2 = [idDP,getAttr(json, 'name'),'.temperatur'].join(''); name2 = name2.replace("(", ""); name2 = name2.replace(")", ""); name2 = name2.replace(/\s/g, '-'); console.log(name2); createState(name2, 0, {name: 'Temperatur', type: 'number', role: 'sensor.humidity', unit: '°C'}); setStateDelayed(name2, getAttr(json, 'tempc'), true, parseInt(((3000) || "").toString(), 10), false); name2 = [idDP,getAttr(json, 'name'),'.humidity'].join(''); name2 = name2.replace("(", ""); name2 = name2.replace(")", ""); name2 = name2.replace(/\s/g, '-'); console.log(name2); createState(name2, 0, {name: 'Luftfeuchtigkeit', type: 'number', role: 'sensor.temperature', unit: '%'}); setStateDelayed(name2, getAttr(json, 'hum'), true, parseInt(((3000) || "").toString(), 10), false); name2 = [idDP,getAttr(json, 'name'),'.rssi'].join(''); name2 = name2.replace("(", ""); name2 = name2.replace(")", ""); name2 = name2.replace(/\s/g, '-'); console.log(name2); createState(name2, 0, {name: 'Empfangsstärke', type: 'number', role: 'value.rssi', unit: 'dBm'}); setStateDelayed(name2, getAttr(json, 'hum'), true, parseInt(((3000) || "").toString(), 10), false); });
  • Esp32 cam Gaszähler

    5
    0 Stimmen
    5 Beiträge
    592 Aufrufe
    Thomas BraunT
    @dennis-80 Da ist auch lange nichts mehr passiert: sourceanalytix: github: 0.4.14 latest: 0.4.14 for 11 months stable: -.-.-
  • [geloest] Shelly schaltet plötzlich um 10:10 Uhr..!?!

    blockly javascript
    4
    2
    0 Stimmen
    4 Beiträge
    670 Aufrufe
    oberfraggerO
    @htrecksler Es scheint erfolgreich gewesen zu sein. Danke!
  • externe API (Bricklink.com) abfragen inkl. Authentifizierung

    blockly javascript
    2
    0 Stimmen
    2 Beiträge
    412 Aufrufe
    arteckA
    @flyor87 das wirst du mit Blockly nicht lösen können. such nach axios
  • Objekte von Typ number in Binding auf Gleichheit in prüfen

    7
    0 Stimmen
    7 Beiträge
    552 Aufrufe
    F
    @codierknecht Kommando zurück. Mir ist eingefallen, dass ich schonmal ein Problem hatte dasbolded text nach Neustart sich aufgelöst hatte. Ich habe eben Raspi neu gestartet und browser cashe gelöscht. Es sieht so aus das jetzt alles klar ist. Prüfe nochmal und melde mich neu wenn doch nicht. Danke für Deine schnelle Hilfe H
  • Verschiedene Bilder bei unterschiedl. Ladezuständen

    6
    2
    0 Stimmen
    6 Beiträge
    430 Aufrufe
    paul53P
    @shigi76 sagte: nicht die entsprechenden Werte, sondern nur "true". Du hast es so programmiert mit Konvertierung "nach Logikwert". Außerdem haben eigene Datenpunkte nichts unter "scriptEnabled" zu suchen! Prinzip: [image: 1674394211244-bild_2023-01-22_143009472.png] EDIT: Erstelle einen eigenen Datenpunkt, z.B. "0_userdata.0.PV.Batteriestatus" vom Typ Zahl.

412

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge