Skip to content

Skripten / Logik

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

16.4k Themen 211.9k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    P
    @ArnoD sagte in E3DC Hauskraftwerk steuern: @psrelax sagte in E3DC Hauskraftwerk steuern: Hier sollte nicht geladen werden, da kurz darauf der Preis fällt. Bin ja gespannt, ob da wirklich geladen wird. Jetzt wurde es geändert auf 01:30 Uhr, warum auch immer das so ist, dass vorher ein anderer Zeitraum geplant wird. :-)
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    AsgothianA
    @docadams sagte in verschiedene Datenpunkte sammeln und als CSV verschicken: Naja, dagegen spricht meine Unwissenheit :-/ Unwissenheit schützt for str.. Lösung nicht. Für heute ist es etwas spät, aber morgen sollte Zeit sein mal ein Blockly Beispiel zu bauen welches die Datei erzeugt. Du kannst ja in Vorbereitung mal das Blockly posten welches die Daten via Telegram versendet :) Der weg vom ioBroker zu Dir ist dann der hier: [image: 1765233919378-screenshot-2025-12-08-at-23.45.13.png] Einfach mit nem Web-Browser herunter laden :) A.
  • Hilfe für Skripterstellung mit Node-RED

    952 13k
    952 Themen
    13k Beiträge
    HomoranH
    @fiddle sagte in [Gelöst]: Adapter per {Node Red | JS} (de)aktivieren: Ok, nicht als "Wert" schreiben, sondern als "Befehl". Dann scheint ihn das zu beeindrucken. du zeigst ja nichts, aber es geht mit true/false [image: 1763416200051-screenshot_20251117-224854_firefox.jpg] gesteuert über eigenen DP vom typ Bool
  • HILFE!!! Variable anlegen und Befehl per URL absetzen

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    2k Aufrufe
    M
    Vielen Dank, es klappt. Gruß Marc
  • Test auf eindeutige Datenpunktnamen

    Verschoben javascript
    5
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    blauholstenB
    @ruhr70: if(name) -> true, wenn vorhanden (auch "") if(name !== '') -> true, wenn der Name nicht leer ist. Zusammen: name existiert UND (&&) ist nicht leer ` Man bin ich blind….Ich hatte da gerade voll das Brett vorm Kopf. Trotzdem danke
  • Fronius Symo Hybrid über Javaskript auslesen (Json)

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    7k Aufrufe
    ldittmarL
    Hallo, ich bin gerade dabei den Adapter für den Fronius Wechselrichter zu machen und hätte z.Z. eine Frage: kann mir jemand sagen was "EnergyReal_WAC_Minus_Relative" sein soll? Und am Besten mit Einheit :-) Danke!! Grüße, ldittmar
  • [gelöst] Blockly mit Zeitauslösung klappt nicht

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    Hey Stefan, danke dir. da hätte ich auch selbst drauf kommen können. Aber manchmal sitzt man davor und sieht den Wald vor lauter Bäumen nicht… Vielen Dank Gruß Sven
  • Gruppen lassen sich nicht richtig löschen

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    802 Aufrufe
    Z
    Danke Euch beiden. Nach dem löschen muss wirklich der Aktualisieren Button gedrückt werden, dann sind die Einträge endgültig verschwunden
  • 2-Punkt-Regler (Heizung)

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    3k Aufrufe
    M
    Hallo, vielen Dank für deinen Hinweis, jetzt funktioniert es! Gruß Matthias
  • Console gibt keine Ausgabe aus

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    5k Aufrufe
    S
    Vielen Dank für Eure hilfreichen Antworten.
  • [gelöst] Sript zu Zeiten ausführen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    P
    Hallo @ all, ich bin jetzt erst dazu gekommen mich wieder damit zu beschäftigen. Leider bin ich gar kein guter Scripter. Ich brauch immer eine kleine Vorlage. @ Pix dein Script hat geklappt. Ich musste lediglich die Cron Notation anpassen. Die von dir lief nicht richtig. Danke nochmal auch an die anderen. LG
  • Zeitsteuerung will nicht

    Verschoben
    11
    1
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    T
    Danke, das sieht gut aus :-)
  • Hilfe: Via Javascript URL abesenden

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    M
    Hallo Leute, ich eure Hilfe, ich bin ein absoluter Neuling was das programmieren mit JavaSrcipt angeht. Und zwar möchtige ich eine Variable anlegen, die ich durch den Cloud-Adapter mit true und false beschreiben kann, um dann jeweils einen Befehl per URL an mein Mediola-Gateway zu schicken das wiederum meine Geräte per IR ansteuert. Die URL ist mir bekannt. Hintergrund: Ich möchte diverse IR-Geräte per Alexa steuern Ich habe keinen Plan wie ich das anstellen kann und hoffe ihr könnt mir helfen. Gruß Marc
  • Mein erstes Script (Sayit) bräuchte Hilfe :-)

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    963 Aufrufe
    M
    nein, wurde nichts geschrieben. der javascript adapter war off :idea: ich bin schon viele schritte weiter. ;) allerdings probiere ich gerade über hm-rpc eine getState abfrage, welche noch noch nicht so funktioniert wie ich will. ich melde mich, wenn ich absolut nicht mehr weiterkomme. logfile ist sehr rot. 8-) lg.
  • Wunderground Wetter Abfrage über script

    Verschoben
    16
    0 Stimmen
    16 Beiträge
    6k Aufrufe
    B
    @ykuendig: Hi Bob Da Du auf einen einjährigen Post reagierst, wollte ich es mir nicht nehmen lassen, Dich darüber zu informieren, dass mittlerweile ein Weatherunderground Adapter geführt wird. Denn kann man benutzen, muss man aber nicht ;-) ` Oh man, den Adapter hab ich echt übersehen :roll: Aber danke für den Tip! ` > Das Script ist für javascript.1 eingestellt. Bei dir läuft es unter der Instanz 0. Du musst ganz oben im Script die Instanz anpassen. ` Auch danke dafür. Damit läuft das Skript. Und ich hab wieder was dazugerlernt ;)
  • Wo finde ich Variablen der VIS Oberfläche

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    HomoranH
    Ich taste mich jetzt auch erst über Blockly an javascript ran. In einem ähnlichen Fall habe ich statt des "Schreibe", den "aktualisiere" Block genutzt aktualisiere (Objekt ID) mit (Wert) in deinem Falle also "true" als Wert Gruß Rainer
  • Daten über CAN-Bus senden

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    2k Aufrufe
    M
    msg.payload = [0xa1,0xb2]
  • BestPractis für "doppeltes on"?

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    paul53P
    @Fitti: schreibt man val und true jeweils OHNE ' (einfaches Anführungszeichen) , richtig? ` Ja, die Bezeichner (z.B. val) werden ohne Anführungszeichen geschrieben (vielleicht funktioniert es auch mit ' ?). true ist ein boolscher Wert, kein String. change: 'lt' 'lt' ist ein String; es kann keine boolscher Wert (boolean) und keine Zahl (number) sein.
  • Anrufansage & Nachricht mit Blockly

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    S
    Hier der aktuelle funktionierende Stand… ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on" id="D-]gKr{S6nMnK~Da4-z?" x="88" y="88"><field name="OID">tr-064.0.callmonitor.inbound.timestamp</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="timeouts_settimeout" id="{wuJ3NuDI(4[{ye3j~dn"><field name="NAME">timeout</field> ! <field name="DELAY">500</field> ! <statement name="STATEMENT"><block type="controls_if" id="P(a)Y:K0wpRnM/q5(}l"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="1D+T-RF2EDZ]K.@@v_H6"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="zGok2Xs:!;,o(cNQcwpS"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="B"></value></block></value> ! <statement name="DO0"><block type="sayit" id="L:c+_.z9)q9oCcpxREr-"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <value name="VOLUME"><block type="math_number" id="OGpAMalB@dUpxuo_=Ay"><field name="NUM">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="zk+69/O]Wn5QiOS={%J="><field name="TEXT">text</field></shadow> ! <block type="text_join" id="/aTtDlgAtMMFqH.RN6TE"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="Nep.Vu=,+(e}b/w7(sNS"><field name="TEXT">Anruf von Nummer</field></block></value> ! <value name="ADD1"><block type="get_value" id="O!yi{EAjnOMl5toHgdu)"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value></block></value></block></statement> ! <statement name="ELSE"><block type="comment" id="LA6K/IS3q#y!uU=B:O7g"><field name="COMMENT">sayit mit Namen</field> ! <next><block type="sayit" id="4_uFDZo=99#_th/I|j1"><field name="INSTANCE">.0</field> ! <field name="LANGUAGE">de</field> ! <value name="VOLUME"><block type="math_number" id="%agKngXzUzhO;^x:j*Zl"><field name="NUM">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="h6_/@CY+4s/{abGe?Kd,"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="Fo,RhD@*WMeAu;3hm[:g"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="aqu}1e|RiNeC+ebp2Bec"><field name="TEXT">Anruf von</field></block></value> ! <value name="ADD1"><block type="get_value" id="T9=g0@eTP2o{6;WXKIiE"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value></block></value></block></next></block></statement> ! <next><block type="controls_if" id="[h~#}T~EYq|%zOS1f)36"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="?nW%5,F9qdYo-/~iL8rj"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="ip#M!UFj@gHr1tOMpCt{"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="B"></value></block></value> ! <statement name="DO0"><block type="pushover" id="9}=1gd)3|pvDE^OHKf(S"><field name="PRIORITY">0</field> ! <value name="MESSAGE"><shadow type="text" id="8aS7f-IBzM^.q*;[{G"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="R~8qxH%/7P8fdUN{It@"><mutation items="4"></mutation> ! <value name="ADD0"><block type="text" id="=+8,5-[Vn2=~_jKF4Z5"><field name="TEXT">Name unbekannt - Tel:</field></block></value> ! <value name="ADD1"><block type="get_value" id="Fqb{QAc_RCOEhvLU9Fi_"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value> ! <value name="ADD2"><block type="text" id="c+mAi(^%_MPAW5C[(XH"><field name="TEXT">- am:</field></block></value> ! <value name="ADD3"><block type="get_value" id="DNkn?|Nl|A}Us4^Z[ds"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field></block></value></block></value> ! <value name="TITLE"><block type="text" id="J4?g4z#2lm~+;yDR8cQ"><field name="TEXT">Anruf von:</field></block></value></block></statement> ! <statement name="ELSE"><block type="pushover" id="AsqMoI4]3ER{z8#g:-"><field name="PRIORITY">0</field> ! <value name="MESSAGE"><shadow type="text" id="8aS7f-IBzM^.q;[{G"><field name="TEXT">text</field></shadow> ! <block type="text_join" id="#3AWc1va;bG]AA9bs^l"><mutation items="5"></mutation> ! <value name="ADD0"><block type="get_value" id="C2d]lIN)B,!6D{Ho/]rn"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> ! <value name="ADD1"><block type="text" id="P_4T%4zNei/-K^a9I%O0"><field name="TEXT">- Tel:</field></block></value> ! <value name="ADD2"><block type="get_value" id="R(2]3hcDQtF!rB[ry~.{"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.caller</field></block></value> ! <value name="ADD3"><block type="text" id="^5m:W7PWh8;j7XJ/}^cO"><field name="TEXT">- am:</field></block></value> ! <value name="ADD4"><block type="get_value" id="y2H-bQyb=StWAJFHOV#C"><field name="ATTR">val</field> ! <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field></block></value></block></value> ! <value name="TITLE"><block type="text" id="XOyHv|H3ed2i2,5sQ.;R"><field name="TEXT">Anruf von:</field></block></value></block></statement></block></next></block></statement></block></statement></block> ! <block type="comment" id="Ck[=ssU#?W|4Dx@91d3g" x="88" y="113"><field name="COMMENT">Änderung bei Anruf</field></block></xml> leider ohne die Funktion der Wiederholung der Ansage. Der Block wiederholen solange - scheint nicht zu funktionieren. Dabei stürzt immer der Java Script Adapter ab. PS die Debug Ausgaben habe ich in diesem Blockly bereits entfernt. Gruß Sven
  • Schleife für Wired DImmer

    Verschoben
    4
    0 Stimmen
    4 Beiträge
    800 Aufrufe
    paul53P
    Hier noch eine Variante (nicht getestet), die weniger Belastung für die CPU bringt, da nicht alle 300 ms getState(id) aufgerufen wird: var timer = null; var idTaste = 'hm-rpc.0.XXX1234567.N.PRESS_SHORT'; var idLevel = 'hm-rpc.0.XXX1234567.N.LEVEL'; var level = getState(idLevel).val; function dunkler() { if(level) { level = level - 5; if(level < 0) level = 0; setState(idLevel, level); } if(timer && level === 0) clearInterval(timer); } on({id: idTaste, val: true}, function() { level = getState(idLevel).val; dunkler(); timer = setInterval(dunkler, 300); });
  • Json Objekt in Blockly weiter bearbeiten

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    980 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Anrufer Ansage wiederholen, bis Gespäch angenommen wurde

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    A
    Hi, Für Android gibt es was ähnliches, läuft allerdings nicht über iobroker. Vielleicht kann man das ja irgendwie einbinden. http://www.sonofy.co
  • Nach 2h keine Bewegung im Raum schalten

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    htreckslerH
    var idFensterAuf = "hm-rpc.0.NEQ11000000.1.STATE"; var timer = null; subscribe(idFensterAuf, function (obj) { if (obj.newState.val) { // Starte timer für 2 Minuten if (!timer) { timer = setTimeout(function () { timer = null; log("Fenster im Bad länger als 2 Minuten auf"); }, 120000); } } else { // Fenster zugemacht. Falls timer läuft = stopp log('Fenster im Bad geschlossen!'); if (timer) { clearTimeout(timer); timer = null; } } }); so funktioniert es bei mir mit einem Fenster. (Ist nur für einen Test auf 2 Minuten gesetzt :-))

567

Online

32.5k

Benutzer

81.6k

Themen

1.3m

Beiträge