Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    D
    @mcu Hi, hab heute die drei !!! beim Alexa Skript https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/system-effektprog./jsontable-alexa-horspiele zum Array hinzugefügt aber es wird kein Cover angezeigt und es werden die drei ??? Kids abgespielt. Kannst Du da bitte mal drüber schauen. Danke [image: 1777493818776-bildschirmfoto-2026-04-29-um-22.16.41-resized.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    @Jannik1808 In meiner Doku habe ich ein Script gefunden. Habe es aber nie gebraucht. Weiß also nicht ob es funktioniert. #!/bin/bash export XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --off
  • Hilfe für Skripterstellung mit Node-RED

    956 13k
    956 Themen
    13k Beiträge
    S
    Hallo Zusammen, ich bin gerade am überlegen, wie ich folgende Aufgabe umsetzen könnte: Ein true an einer (Trigger)Node lässt einen Zähler laufen und setzt einen eigenen Ausgang auf true. Ein false der Trigger Node stoppt den Zähler setzt diesen aber nicht auf false. Ein true lässt den Zähler einfach weiterlaufen... Nach Ablauf der Zeit im Zähler wird der Ausgang des Zählers auf false gesetzt. Mehr soll nicht passieren. Ein separater Eingang am Zähler setzt diesen auf 0 zurück. Was ich damit anfangen möchte: Die Laufzeit der Poolpumpe wird auf eine Mindestlaufzeit von bspw. 4h überwacht -kann aber manuell bedient bei Bedarf länger laufen. Ein Trigger um 00:01Uhr setzt die Laufzeit zurück. Die Zählernode gilt hier als "Anforderung Pumpe wegen Mindestlaufzeit unterschritten". Ich habe noch keine brauchbaren Ideen, wie ich dass sauber und mit wenig Aufwand umsetzen könnte... Vielen Dank und VG Torsten
  • IP Adresse einlesen

    Verschoben
    20
    0 Stimmen
    20 Beiträge
    4k 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
    885 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
    733 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
    442 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
    1k 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
    240 Aufrufe
    R
    @paul53 Ich werde das ausprobieren! Danke.
  • Spotify Vorlagen Skript Hilfe

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

    5
    0 Stimmen
    5 Beiträge
    239 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
    252 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
    900 Aufrufe
    T
    @dermurgser Ja, das Problem liegt im Ursprung des Panels.
  • Script Problem

    9
    1
    0 Stimmen
    9 Beiträge
    759 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
    123 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
    235 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
    571 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
    146 Aufrufe
    Niemand hat geantwortet
  • Gelöst: Datenpunkte addieren

    44
    1
    0 Stimmen
    44 Beiträge
    2k 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
    10k Aufrufe
    leovandavartL
    @paul53 über den Rpi Adapter da kann ich das einstellen

421

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge