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
    D
    @maxclaudi sagte: Allen einen wunderschönen, sonnigen guten Morgen, @Rico-Sander sagte: Vieles was hier diskutiert wird im Zusammenhang mit der Firmware- und HEMS-Aktualisierung trifft für mich nicht zu. habe auch kein Update durchgeführt. Weil ich kein HEMS nutze, ist es für mich nicht wichtig. Von den letzten Updates war ich mehr enttäuscht. Echte Verbesserungen gab es - für mich - nicht. Für mich waren es mehr Reglementierungen. @Rico-Sander sagte: Laden über AC-Anschluss, Entladen über AC-Anschluss - sonst nix. Bypass-Funktion und Grid-Dose benötige ich nicht. Selbst wenn Du mehr benötigen würdest, wüsste ich nicht was aktuell unter API 2 dagegen spricht. Die größten Veränderungen/Neuerungen durch das aktuelle Update sind bisher die Einführung von HEMS2 und Umstellung auf TLS. Zendure schreibt zwar: X bekannte Probleme behoben, jedoch welche das sein sollen, wird nicht erwähnt. Bei meinem Gerät sollen es 2 Probleme sein. Kann aber kein Problem feststellen und HEMS nutze ich nicht. @Rico-Sander sagte: Daher: Kann ich gefahrlos bei Verwendung des HTTP-Scriptes die Updates fahren oder gibt es Probleme mit dem SSL- und Port-Problem? Vermutlich nicht, da ich ja kein MQTT nutze - richtig? SSL mit Port:8883 ist nur für (nicht offizilles , Cloud-) MQTT Das Script nutzt reines HTTP mit dem Webserver des Zendure-Geräts. Zendure-Gerät und App nutzen zusätzlich "nicht offizielle" MQTT-Verbindung zur Cloud. Für das Script bedeutet das: Wenn Zendure durch die Firmware zenSDK nicht auch reglementiert oder grundlegend was verändert hat, dann funktioniert es wie zuvor. Es gab mit dem Update ein paar Änderungen und ein zusätzlicher Key. Bisher wurden mir keine Einschränkungen gemeldet. @Daniel-8 sagte: Bei mir ist alles gut. Hey, freut mich. @Daniel-8 sagte: ...hat Zendure bei Hems 2 und den neuen Firmwares was geändert. Ich habe noch kein Update gemacht. Bin etwas vorsichtig, da im Zendure Forum sehr viele Probleme haben. warte auch ab. Evtl. benötige ich keins. @Daniel-8 sagte: Was ist eigentlich der socCompSwitch? Das ist nicht bekannt und noch nicht dokumentiert. Habe eine Vermutung und kann es - ohne Update -nicht testen. socCompSwitch, bedeutet wahrscheinlich: State of Charge Compilation Switch. Denke es wird sich um einen neuen Schalter handeln, der eine Kalibrierung manuell auslösen wird. Damit man die automatische (wöchentliche oder monatliche) SoC-Kalibrierung zu nicht gewollten Zeiten beeinflussen, verhindern oder vorziehen kann? Das ist nur meine Vermutung -reine Spekulation - ! Habe den Schalter mal hinzugefügt, falls jemand auf eigene Gefahr und eigenes Risiko selbst testen möchte, was der Schalter bewirkt. Unter API 2 habe ich den Schalter schon gesetzt und getestet. Befehl wird abgeschickt und Empfang bestätigt. Auswirkungen hatte es bei mir überhaupt keine. War zu erwarten, weil socCompSwitch in der API2-Firmware nicht implementiert ist. Konnte den Schalter mehrmals - unter API 2 - gefahrlos bei meinem 1600AC+ setzen - ohne jede Veränderung. Funktionieren oder was bewirken wird der Schalter (sehr wahrscheinlich nur) erst nach Firmware-Update auf zenSDK API Version: 3. Noch einmal: Alles zu socCompSwitch sind nur Vermutungen aufgrund von Tests und Beobachtungen. edit: Falls jemand set socComp nach Update mit zenSDK API Version: 3 testen sollte, wäre ich über Rückmeldungen sehr dankbar. Habe mich heute doch mal getraut mein Solarflow 800 Pro auf die Firmware 2.0.1 upzudaten. Habe dann mal den setsocComp auf 1 und 2 geschrieben. Konnte aber keinerlei Veränderung feststellen
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    amg_666A
    @emil70 sagte: httpGet(url=http://125.123.6.5/snap.jpeg, error=timeout of 2000ms exceeded) Der erste Fehlereintrag im Log, also der ganz unten, sage, dass das httpGet nicht geklappt hat. Ich würde mal mit den 2 Sekunden im Blockly rumspielen, also erstmal höhersetzen auf 3 Sekunden und dann schauen, obs klappt. Achtung: Bei dem http(Get) im Blockly stehen bei dir Timeout 2 Sek, wenn dud as auf 3 änderst musst du auch das Intervall (das grüne "Ausführen" höher setzen
  • 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": [] } ]
  • IP Adresse einlesen

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    5k Aufrufe
    W
    @crunchip Hättest Du ja gestern schon hier einstellen können. Ich habe mir jetzt eben ein Blockly gebastelt, macht aber das gleiche, nur ohne Taster: <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="wu+=d3FSm7!EP9bGuz}+" x="88" y="38"> <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="CP)F@J~.WrNshNe8^j@-"> <field name="oid">javascript.0.IP.public</field> </shadow> </value> <statement name="STATEMENT"> <block type="email" id="P0+MV?vsb;+eM.qRJU^5"> <field name="INSTANCE"></field> <field name="IS_HTML">FALSE</field> <field name="LOG"></field> <value name="TO"> <shadow type="text" id="KI~ORHiOlb#xW;c:9W(m"> <field name="TEXT">juergen@xxxxxx.net</field> </shadow> </value> <value name="TEXT"> <shadow type="text" id="U~l)Zi~A3Eid%//!@(ll"> <field name="TEXT"></field> </shadow> <block type="text_join" id="sX~Mmo1!DucqYfX|BS)W"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/r2aD~vZ:B|:gPH7n#*u"> <field name="TEXT">IP-Adresse hat sich am </field> </block> </value> <value name="ADD1"> <block type="text_join" id="8l~5z).,pYq[2E%Bmbl7"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="#Kb^2P.IqTBxb[_5*Ep1"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.YYYY</field> <value name="VALUE"> <block type="get_value" id="w!AcPGJL[eb}@E^7!{+h"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.public</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="/Q1!];m1%c5[XSgObLCV"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="w~~sjln47Rslqo,#eCnA"> <field name="TEXT"> um </field> </block> </value> <value name="ADD1"> <block type="text_join" id="v{+[m.D0c=ULB0GkCcGx"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="2E9b6yx[ac{3+bgb`@MS"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="get_value" id="W-B,S(,Vq8e0}X1dvcAU"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.public</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="?(%~hV*[tk2/pbidDj+s"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/^J7DcU@7W%NoSUX(qqz"> <field name="TEXT"> Uhr geändert. Letzte Änderung erfolgte am </field> </block> </value> <value name="ADD1"> <block type="text_join" id="@IPtq,WhN#oi`d#aDBP9"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="^L_7r^)c(3z*`5L~fum6"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.YYYY</field> <value name="VALUE"> <block type="get_value" id="?8-6vS{X;~@3m!C~cwSK"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.IP_alt</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="{U52#iPn-qj],gNt-kzw"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="4pZSt;ozH=qVKvFl/wHw"> <field name="TEXT"> um </field> </block> </value> <value name="ADD1"> <block type="text_join" id="P.Rh71Fpum6D)S6MzstV"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_from_date" id="7ws*9uzEGa3{%mQ~i7DW"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="get_value" id="If=yqQ3j([.`tq~^LI/W"> <field name="ATTR">lc</field> <field name="OID">javascript.0.IP.IP_alt</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text_join" id="yWS|YU/L?1{{10c=(X]8"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="xG-cGlyGtk}|;r-iPa`I"> <field name="TEXT"> Uhr. </field> </block> </value> <value name="ADD1"> <block type="text_join" id="Y;iF6ZQBl6}8G5y)@}Cb"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="eA4*#QE=y2A#lKy?gmZs"> <field name="TEXT">Neue IP lautet: </field> </block> </value> <value name="ADD1"> <block type="get_value" id="I3cL%z{/+{1[]2+{UVIh"> <field name="ATTR">val</field> <field name="OID">javascript.0.IP.public</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <value name="SUBJECT"> <shadow type="text" id="QvaUTb+Ce|.jF4iqF]vd"> <field name="TEXT">Internet war getrennt</field> </shadow> </value> <next> <block type="update" id="+G$F/H_gtDeqZz[T8,,p"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">javascript.0.IP.IP_alt</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="on_source" id="-9^HI`CB!P12M)8jp2%Y"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> </block> </xml> Gruss, Jürgen
  • Eigenverbrauch (Solar) und Ersparnis berechnen

    10
    2
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    HomoranH
    @berndsolar13 sagte in Eigenverbrauch (Solar) und Ersparnis berechnen: die niemand sieht nur weil man etwas nicht sieht.....
  • Debug-Optionen für JS/Blockly

    9
    3
    0 Stimmen
    9 Beiträge
    891 Aufrufe
    haus-automatisierungH
    @andersmacher sagte in Debug-Optionen für JS/Blockly: Dann muß ich mal zusehen, daß ich mir etwaige (weitere Aus-)wirkungen von "verbose" klar mache, Hab ich im Kurs zuletzt ausführlich erklärt was das macht und bedeutet.
  • Blockly mehrere Trigger für mehrere Datenpunkte ?

    7
    0 Stimmen
    7 Beiträge
    523 Aufrufe
    paul53P
    @berndsolar13 sagte: Da wird dann z.B. der aktuelle Einspeise Werte mit dem Wert zum Beginn des Tages vergleichen. Raus kommt dann was heute bisher eingespeist wurde. Das ist ein Trigger (auf Einspeisung) und die Verrechnung des Tagesstandes (aus Sourceanalytix).
  • Automatischer View wechsel mit Blockly

    blockly
    7
    0 Stimmen
    7 Beiträge
    2k Aufrufe
    NegaleinN
    @ralla66 sagte in Automatischer View wechsel mit Blockly: Beispiel auf die Schnelle Hallo Bin gerade auf dein Script gestossen. Danke dafür. Ich hab nur ein Problem. Mir wird unter vis.0.control.instance keine ID angezeigt, obwohl im VIS-Editor eine hinterlegt ist. Dies ist das Projekt für das Tablett. Beim Projekt für den PC seh ich die ID. [image: 1716412438023-f1426382-c36f-4af4-a914-02390bdd51ac-image.png] [image: 1716412542802-75ec318c-aff5-4616-b4a8-4312a985518e-image-resized.png] Was könnte da falsch sein? Edit: es schaltet leider nicht um. Hab die View am PC laufen, wegen ID. [image: 1716413689408-4282ffdc-ba3d-4f32-bfa8-330c7bbb5769-image.png] [image: 1716413750630-e064bc7c-cff0-44f5-86ed-ca255bb903ca-image-resized.png]
  • Rolladensteuerung funktioniert nicht richtig

    6
    1
    0 Stimmen
    6 Beiträge
    296 Aufrufe
    R
    @paul53 Ich werde das ausprobieren! Danke.
  • Spotify Vorlagen Skript Hilfe

    1
    0 Stimmen
    1 Beiträge
    222 Aufrufe
    Niemand hat geantwortet
  • Shelly schalten, solange bis...

    5
    0 Stimmen
    5 Beiträge
    294 Aufrufe
    surfer09S
    @paul53 Ich konnte es noch nicht testen, weil ich den Heizstab erst heute bekommen habt. Ich war mir nicht sicher mit dem Blockly, ob das so die beste Variante ist. Danke für den Hinweis mit den 20%.
  • Handbetrieb ermitteln

    javascript
    5
    0 Stimmen
    5 Beiträge
    319 Aufrufe
    M
    @paul53 sagte in Handbetrieb ermitteln: Okay ich test mal, hatte genau aus diesem Grund auch schon den State "tahoma.0.devices.Markisse_Rechts.states.core:TargetClosureState" [der hat nur 0 oder 100 als Wert], ausgewählt und nicht wie im ersten Script den "tahoma.0.devices.Markisse_Links.states.core:DeploymentState", bei dem es diese Zwischwerte gibt. Edit: Anbei mein Script, es tut was es soll: var logging = true; const js = 'system.adapter.javascript.' const idHand = "0_userdata.0.Garten.Tahoma.Markise.Hand" const id_RolloL = "tahoma.0.devices.Markisse_Links.states.core:TargetClosureState" const id_RolloR = "tahoma.0.devices.Markisse_Rechts.states.core:TargetClosureState" var text //const auslöser =[id_RolloL, id_RolloR] const auslöser = [id_RolloR] on({ id: auslöser, val: 0, fromNe: js }, function (dp) { log("Handbetrieb: " + dp.state.val, "info") setState(idHand, true) var text = '\u270b Markiese von Hand eingefahren' sendTo('whatsapp-cmb.0', 'send', { text, phone: '+49152539xxxxx' }); }); on({ time: { hour: 23, minute: 59 } }, function () { setState(idHand, false); }); Zur Erklärung, ich werte aktuell nur den DP in Zeile 5 aus, der DP hat im Zustand Markiese Eingefahren den Wert "0" ansonsten "100" Der DP Hand "True" dient quasi als Verriegelung gegen nochmaliges automatischen Ausfahren der Markiese.
  • Ports auf Online Verfügbarkeit prüfen wie ?

    javascript blockly
    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    M
    @garfonso sagte in Ports auf Online Verfügbarkeit prüfen wie ?: @pmunz Ok, nachdem ich den Fehler auch sehen konnte, geht es nun so (mein ursprüngliches Skript war falsch): const net = require('net'); const ip = "192.168.0.1"; const port = 80; const connection = net.createConnection({host: ip, port: port, timeout: 10000}); connection.on('ready', () => { log("Port offen"); connection .destroy(); //wieder zu machen :-) }); connection.on('error', (e) => { log("Error: " + e.code); if (e.code === 'ECONNREFUSED') { log("Port zu"); } if (e.code === 'EHOSTUNREACH') { log("Gerät offline 2"); } else { log("Anderer Fehler, vermutlich Gerät nicht da?"); } connection .destroy(); //wieder zu machen :-) }); connection.on('timeout', () => { log("Gerät offline"); connection .destroy(); //wieder zu machen :-) }); Den "timout" Fall hatte ich bisher nicht. Könnte aber theoretisch auftreten. Ich hatte im Fall, dass es an der IP gar kein Gerät gab den "EHOSTUNREACH" fall. Am besten wäre für den Fall, dass das Gerät gar nicht da ist eine Funktion zu definieren und die aufzurufen (falls der Fall für dich überhaupt relevant ist). //Edit: achja, damit das sinnvoll ist, also ein Status überwacht wird oder so, müsstest du den ganzen "connection" Block noch regelmäßig aufrufen also mit setTimeout oder schedule oder sowas (keine Ahnung, was du genau vorhast.. ggf. kannst du auch aus einem anderen Skript heraus das Skript aktivieren und am Ende des Skripts es sich selber deaktivieren lassen, das mache ich hin und wieder). Hallo, ich möchte gerne wisssen, wie ich permanent die Port prüfen kann. Das Script oben läuft offenbar nur einmal, oder? Ich habe das mal mit Schedule gemacht. schedule("*/1 * * * *", function () { Gruß Michael
  • NSPanel wie kann man per Script gezielt eine Page anzeigen?

    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    T
    @dermurgser Ja, das Problem liegt im Ursprung des Panels.
  • Script Problem

    9
    1
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    HomoranH
    @hippocampus-0 sagte in Script Problem: Bin über Hilfestellungen dankbar um dir besser helfen zu können, bitte einen aussagekräftigen Threadtitel wählen. @hippocampus-0 sagte in Script Problem: Habe den Zustandstyp auf Number gesetzt . Bitte Logs nie als Screenshots, immer als Text in code-tags posten. siehe auch: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
  • Zigbee Steckdosen Stromwerte auf 0 setzten

    2
    0 Stimmen
    2 Beiträge
    156 Aufrufe
    arteckA
    @mico du musst es entweder über den payload DP machen oder mit dem sendTo Befehl das Thema ist nicht neu es steht hier im Forum .. ein wenig Suchen sollte da schon helfen
  • Zigbee true/false tauschen

    2
    1
    0 Stimmen
    2 Beiträge
    277 Aufrufe
    haus-automatisierungH
    @schnitti Alias anlegen, Lesefunktion: !val Fertig
  • Zappi in Abhängigkeit von BYD-Bat. steuern

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    S
    @pir sagte in Zappi in Abhängigkeit von BYD-Bat. steuern: @sigimoe Habe für mich einen Workaround gefunden, indem ich den min-SoC der Batterie bei Aktivierung des Fast-Mode gleichsetzen lassen mit dem aktuellen SoC-Wert. So wird die Batterie bei Aktivierung des Fast-Mode nicht entleert. Nachteil ist, dass auch alle anderen Verbraucher nicht mehr von der Batterie gespeist werden. @PiR könntest du mir dein blockly senden oder wie hast du dies umgesetzt ? Vielen lieben Dank für die Unterstützung
  • Skript für Ansteuerung LED Streifen von Türstation

    5
    0 Stimmen
    5 Beiträge
    629 Aufrufe
    S
    @arteck vielen Dank - ich verstehe es trotzdem nicht... von websockets habe ich keine Ahnung, bin kein programmierer... iobroker habe ich am laufen, javaskript adapter auch - nutze ich mit blockly, soweit kenne ich mich schon aus. axios finde ich nicht als adapter!? vielleicht kannst du mir das etwas genauer erläutern bzw. erstmal eine grundlage? wäre klasse!
  • Shelly script Wasserzähler

    1
    0 Stimmen
    1 Beiträge
    172 Aufrufe
    Niemand hat geantwortet
  • Gelöst: Datenpunkte addieren

    44
    1
    0 Stimmen
    44 Beiträge
    3k Aufrufe
    C
    @mickym ich danke dir für die vielen Tipps und Infos. Die Links schaue ich mir gerne an. Da habe ich jetzt Lust auf mehr. Das macht so viel Spaß, auch wenn man viel rumbasteln/rumprobieren muß. Aber das sind dann alles Erfahrungen.
  • Blockly Geofencing mit Türauslöser

    15
    1
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    U
    Oh man. Danke, das kannt ich trotz der vielen IOB Jahre auch noch nicht. lol
  • S0 Stromzähler umrechnen in aktuelle Verbrauch

    Verschoben
    66
    0 Stimmen
    66 Beiträge
    11k Aufrufe
    leovandavartL
    @paul53 über den Rpi Adapter da kann ich das einstellen

340

Online

33.0k

Benutzer

83.4k

Themen

1.3m

Beiträge