Skip to content

Skripten / Logik

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

16.6k Topics 214.1k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    RoddiEFR
    Vielleicht noch hinzufügen das man die Alias ID nicht ändert sollte da sonst keine Daten im Dashboard von Grafana angezeigt werden. Ich habe mir einen "Wolf" gesucht warum ich keine Daten sehe da ich mir angewöhnt hatte immer Alias ID einzutragen. Natürlich wie immer auch hier gemacht zum Schreiben der Daten in die InfluxDB-1.8 , keine Daten in Grafana, den Alias gelöscht und nochmal probiert und siehe da es kamen Daten. Hat mich völlig verwirrt [image: 1774140557898-screenshot-2026-03-22-013953.png] Mfg.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    paul53P
    @LaBamba sagte: müsste dies nicht heißen, setze dauerhaft ein auf 0, damit die Pumpe bei unter 4 grad nicht läuft. Die Antwort findest du hier: [image: 1774129266281-blockly_temp.jpg] Ich habe dafür dauerAus verwendet, weil sich dauerEin nicht bei jeder Temperaturspanne ändert, sondern in einigen Fällen auf 15 Minuten bleibt. [image: 1774129588978-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • 0 Votes
    11 Posts
    5k Views
    S
    Hallo zusammen, ich habe das Skript jetzt so gebaut. Konnte es aber noch nicht testen. Kann das so funktionieren? (Kommentare fehlen noch) [image: 2044_az_heizung.jpg] ! ```` <xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id=":zg-)_EIq?4wI^ar^xX!" x="38" y="12"><field name="NAME">AZ_Anzahl_Bewegung</field> <next><block type="create" id="CFxy|i:Z`!b;-*fc3x?T"><field name="NAME">AZ_Timer_15Min</field> <next><block type="on_ext" id="i:tQ/iJ#.SLVro0jNI~S"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id=";/!P|B1JE-hF_QZMFBTz"><field name="oid">hm-rpc.2.000C18A98B9342.1.PRESENCE_DETECTION_STATE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="L(x|T4qvmH86E6_:1mh+"><value name="IF0"><block type="logic_operation" id="=dOVAQzBHNb(DH-[q=pl"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="W.KmU1UkXl;z|N64}Eo^"><field name="OP">LT</field> <value name="A"><block type="get_value" id="*ilW)e`F+WvYDX9f=SnP"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="6i/reE..}C^J*hd=.m@0"><field name="NUM">20</field></block></value></block></value> <value name="B"><block type="logic_compare" id="c.VMK;VA8?YrMLjzMC:G"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="`-V}t|1fgfx%9`q[9Vvy"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000C18A98B9342.1.PRESENCE_DETECTION_STATE</field></block></value> <value name="B"><block type="logic_boolean" id="~_hJbLLcT6[?kiyNiKxX"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="timeouts_setinterval" id="@3FnQiMM:!-YI^+OfzEU"><field name="NAME">AZ_Anzahl_Bewegung_Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="math_change" id="Yn+*#.#au+moI+M9j=7A"><field name="VAR">AZ_Anzahl_Bewegung</field> <value name="DELTA"><shadow type="math_number" id="Sd-icO]K}ThE:;uf4?:5"><field name="NUM">1</field></shadow></value></block></statement> <next><block type="timeouts_setinterval" id="*0XLzl2w95E@9u}:/E{V"><field name="NAME">AZ_Timer_15Min_Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="math_change" id="*I(f-Ymq(efI}?`~!7lU"><field name="VAR">AZ_Timer_15Min</field> <value name="DELTA"><shadow type="math_number" id="0Key~u2~3nxExQzs#URY"><field name="NUM">1</field></shadow></value></block></statement></block></next></block></statement> <next><block type="controls_if" id="E{@tupVFuStBC4XjuL7e"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_operation" id="Pw|lq]`z,!G4-a:7)u`6"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="KoSm6u|@c(xg*!I7/2Q;"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="tf^uOgdgoYACzHo=Wj)~"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field></block></value> <value name="B"><block type="math_number" id="}BA@-FWt!WXV1ur,aW5V"><field name="NUM">5</field></block></value></block></value> <value name="B"><block type="logic_compare" id="k~h@diPm5*iDWnfpu-%o"><field name="OP">LT</field> <value name="A"><block type="get_value" id=".,)}Bw59qwpL(iyV5T)s"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Timer_15Min</field></block></value> <value name="B"><block type="math_number" id="J|!-ZkgH6~cQef}zG`08"><field name="NUM">15</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="D%g9su{rG5Mf[=[j^(KF"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="vhsB!r:,v5*rq%Bf(V1w"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="^@#PQp]eZ`ilrjdPMrZx"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="w%MJ7B+sO6.vxX3O)*mL"><field name="NUM">0</field></block></value> <next><block type="control" id="X8y36}}+p}-oV4QF3zSj"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Timer_15Min</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="o|T.*_=]m5pSsie)xRkE"><field name="NUM">0</field></block></value></block></next></block></next></block></statement> <value name="IF1"><block type="logic_operation" id="77dV5wje+#fP.~JH{GI|"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="?(FH)^J/b?1%?{+ai*BS"><field name="OP">LT</field> <value name="A"><block type="get_value" id="+Urg1|7oxkH-`7O4ZxT8"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field></block></value> <value name="B"><block type="math_number" id="nB}Z4ikkqagZo0JQavL!"><field name="NUM">5</field></block></value></block></value> <value name="B"><block type="logic_compare" id="QlO/@_hJEx^WY9cbSi7M"><field name="OP">GT</field> <value name="A"><block type="get_value" id="xJ{78z)3?gxU=19;BI+M"><field name="ATTR">val</field> <field name="OID">javascript.0.AZ_Timer_15Min</field></block></value> <value name="B"><block type="math_number" id="*K|wTjXdGc(H1_d!)yQO"><field name="NUM">15</field></block></value></block></value></block></value> <statement name="DO1"><block type="control" id="DItJ{^4r3#L+;(9G54[]"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Anzahl_Bewegung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="y}.|I*hoL1dYs}@[X_)i"><field name="NUM">0</field></block></value> <next><block type="control" id="n%rm*taT*5Oo)ms3jq9?"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.AZ_Timer_15Min</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="~ZowvHkH_jH%w0#*=|Q3"><field name="NUM">0</field></block></value></block></next></block></statement></block></next></block></statement> <next><block type="on_ext" id="K%9D@.Nwwf;x}WWqS(l1"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="o/lIUv0998Q%vk*|2cks"><field name="oid">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="M5:]JYt5_t]EO*ntsS8p"><value name="IF0"><block type="logic_compare" id="S74=3vIUpyY:Z}`|wCaD"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="y}]ghcF?0fnBjenl5@KQ"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="6^{tLMlRoCcoa1@n`@2)"><field name="NUM">21</field></block></value></block></value> <statement name="DO0"><block type="control" id="O@ezlo_=QVg~{v^!8kp7"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="1?W;%KpPj*]b|HpP(p#3"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement> <next><block type="on_ext" id="m|)dAho,l~=F{Ly?yjc{"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="A*_/rS(IXa2d6(5GYj+B"><field name="oid">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="QO].n*_c9^3Is*RY#x0H"><value name="IF0"><block type="logic_compare" id="WYBGS*H1E@XI@2.E;.QU"><field name="OP">LT</field> <value name="A"><block type="get_value" id="aiTPK+(k6v6C[+bgfSfl"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E98A99D9E32.1.ACTUAL_TEMPERATURE</field></block></value> <value name="B"><block type="math_number" id="aTsuka1E{@SJaR:1Jo{h"><field name="NUM">19</field></block></value></block></value> <statement name="DO0"><block type="control" id="Vo::4Nu+;XA8Pq0p66E;"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.OEQ1140439.2.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="eecRUdvQ7]cw+~]2T60g"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></xml> Ich freue mich auf eure Antworten. Grüße, Stefan
  • Wert im Blockly wird nicht angenommen

    Moved
    11
    1
    0 Votes
    11 Posts
    1k Views
    J
    @premo: @RappiRN: Hast du bei der Variante oben mal mit "wurde aktualisiert" probiert? Und natürlich mit Textfeld. :D Genau da war es, jetzt funktioniert es. Was aber auch wiederum nichts damit zu tun hatte, dass das angebliche Textfeld rot wurde ;)
  • Script zum Auslesen eines Stiebel Eltron ISG

    Moved
    18
    0 Votes
    18 Posts
    7k Views
    D
    Es gibt mittlerweile einen Adapter dazu: viewtopic.php?f=24&t=14309
  • Baustein TC74A0

    Moved
    1
    0 Votes
    1 Posts
    162 Views
    No one has replied
  • Database logging aus state-objects

    Moved
    3
    0 Votes
    3 Posts
    296 Views
    R
    @apollon77 Danke. ist ja kein besonders großer Aufwand.
  • Cannot extract Blockly code!

    Moved
    3
    0 Votes
    3 Posts
    651 Views
    lobomauL
    Habt ihr das seit Javascript-Adapter 4.x? Bei mir war das so. Aber dann gab es ein Update und es war wieder weg.
  • 0 Votes
    25 Posts
    2k Views
    paul53P
    @smartboart: Sollte man das bei github als issue melden? Bei Zigbee oder javascript? ` Ja, bei Javascript.
  • Bose One Touch 10 mit einem bestimmten Sender starten

    Moved
    1
    1
    0 Votes
    1 Posts
    242 Views
    No one has replied
  • Xiaomi Sensoren über Conbee verbinden

    Moved
    26
    0 Votes
    26 Posts
    5k Views
    O
    Hallo tscheerio ich habe genau das gleiche Thema wie du. Kannst du dein Node Red Posten Oder mir schicken wäre super. danke grüße Patrick
  • Kamerabild in VIS anzeigen

    Moved
    3
    0 Votes
    3 Posts
    458 Views
    J
    Werde mein angefangenes Thema wieder aufgreifen. Das mit dem Pfad zu dem Kamera-bild lässt sich nicht so einfach erledigen, weil ich nutze einen NVR für meine Kameras. An dem NVR sind auch alle Kameras angeschlossen via RG58. Das Webinterface des Recorders ist leider in Java geschrieben und da bin ich nicht fit drin. Vielleicht hat ja hier jemand einen Lösungsansatz für mich.
  • Blockly Objekte unterschiedliche Typen erzeugen

    Moved
    7
    0 Votes
    7 Posts
    843 Views
    S
    Mach ich, momentan bin ich froh wenn ioBroker nicht abstürzt. Solange ich nix mache läuft er. Evtl. heute Nacht später. Die Objekte liegen nicht im Javascript Ordner, dort wollte ich sie ja haben. Waren auch nur verschiedene Tests. Vielen Dank für deine Hilfe.
  • Gauge verändern

    Moved
    2
    0 Votes
    2 Posts
    447 Views
    R
    Nicht Im Standard. Aber vlt. kommst du hiermit weiter: http://noderedguide.com/lecture-7-node- … ds-part-3/ Dann gibt es noch den Pete Scargill, der evtl. genau das Richtige für dich hat. https://tech.scargill.net/node-red-ui/
  • Function mit 3 Ausgängen

    Moved
    5
    0 Votes
    5 Posts
    7k Views
    R
    Achtung OT @Graf: Danke. Hab selber soviel vom Forum profitiert, da bin ich froh, auch mal was zurückgeben zu können.
  • Inhalt von Datei aus dem Netz lesen

    Moved
    3
    0 Votes
    3 Posts
    281 Views
    M
    Hallo, danke ich habs bereits gefunden hatte den falschen Node verwendet
  • Funcion importieren like python

    Moved
    3
    0 Votes
    3 Posts
    253 Views
    N
    Danke für Deine Antwort. Ich werde mir Deine Anregungen mal genauer ansehen und gucken was ich davon evtl. in meinem Sinne verwenden kann. Bis dann … MfG Günter
  • Deinstallation von Nodes

    Moved
    4
    0 Votes
    4 Posts
    3k Views
    G
    Schön, dass ich helfen konnte.
  • 0 Votes
    4 Posts
    789 Views
    paul53P
    @norbhb: macht er das einmalig bei einer Änderung des Status des Fensters? ` Ja, im Kommentar steht "Fenster <u>wird</u> geschlossen". Falls der Fensterkontakt öfter sendet als bei Änderung des Zustands, muss man auf "wurde geändert" triggern und den Wert abfragen. falls Aktuelle Zeit ist zwischen 22:30 und 06:00 und nicht Wert
  • [gelöst] Hue Farbwechsel erlauben

    Moved
    3
    0 Votes
    3 Posts
    670 Views
    G
    Danke, das klappt jetzt. Manchmal kann die Antwort so einfach sein
  • Iobroker iCal Termine in Scripts nutzen

    Moved
    4
    0 Votes
    4 Posts
    807 Views
    B
    Na das sollte auch aus ical klappen, musst mal nach "Müllkalender" suchen. Da wird nach zukünftigen Terminen gesucht. Im Endeffekt muss man "nur" die Startzeit auslesen und 30min vorher ausrechnen. Hab ich mich aber nicht dammit beschäftigt. Meine Wecker werden direkt in ioBroker gesetzt und können im vis bedient werden. Über ical nehme ich direkt die Startzeit des Event. Grüße Brati
  • GetObject( id, "rooms") liefert zu viele "Räume"

    Moved
    2
    1
    0 Votes
    2 Posts
    1k Views
    greyhoundG
    Ich habe dasselbe Problem, bin durch einen Skriptfehler drauf gestoßen und kann das Datenkonsistens-Problem nicht lösen! Ich habe mehrer Räume definiert (29 Räume, spezielles Gebäude mit Nebengelass). Unter javascript.0.alarm.devices.cams.Camx sind diverse Kameras als device mit weiteren Unterdatenpunkten vorhanden. Den Geräten Cam0 - CamX habe ich nun die entsprechenden Räume zugewiesen, jede Kamera ist und kann nur in einem Raum sein. Das habe ich in der object.json verifizieren können und auch bei der Anzeige der enums und der Zuordnung der Räume (auch nach einem Neustart des ioBrokers oder Linux) ist alles in Ordnung. Bsp. let dppCamProp = 'javascript.0.alarm.devices.Cams.Cam0'; let oCamRooms = getObject(dppCamProp), 'rooms') logs(fctName + ', oCamRooms: ' + JSON.stringify(oCamRooms), 'debug2'); "enumIds":["enum.rooms.entrance","enum.rooms.workshop"],"enumNames":["entrance","workshop"] Die Kamera ist aber gar nicht der Werkstatt zugeordnet "enum.rooms.entrance": { "_id": "enum.rooms.entrance", "type": "enum", "common": { "name": { "en": "entrance", "de": "Hauseingang außen" }, "desc": "Hauseingang außen", "members": [ "javascript.0.alarm.devices.Cams.Cam0", "javascript.0.alarm.zones.2.20" ] }, "from": "system.adapter.hm-rega.0", "ts": 1544567253529, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "enumIds": [ ], "enumNames": [ ] } "enum.rooms.workshop" { "_id": "enum.rooms.workshop", "type": "enum", "common": { "name": { "en": "workshop", "de": "Werkstatt" }, "desc": "Werkstatt", "members": [ "javascript.0.alarm.devices.Cams.Cam7", "hm-rpc.0.BidCoS-RF", "javascript.0.alarm.zones.2.22" ] }, "from": "system.adapter.hm-rega.0", "ts": 1544124463498, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "enumIds": [ ], "enumNames": [ ] } Nach meinem Verständnis der Funktion getObject(id, 'rooms') bzw. getObject(id, true) liefert dieser Aufruf quasi "reverse engineered" aus enum.rooms den zugeordneten Raum. Aber wieso auch die Werkstatt? Es gibt 2 Kameras (Cam1 und Cam2), wo die Raum-Zuordnung stimmt. Diese beiden Kameras sind die beiden einzigen, wo es anscheinend immer stimmt (auch nach löschen eines Raumes). Folgendes habe ich noch beobachtet: Es wird an fast jeder Kamera ein 2. Raum angehangen, der 2. Raum ist überall derselbe Wenn ich einen Raum lösche, z. B. den "FALSCHEN" angehangenen, dann sucht sich ioBroker einen neuen Zombieraum Die Ausgaben der enum.rooms-Objekte von "entrance" und "workshop" sind ja korrekt. Gibt es Beschränkungen in der Namensgebung für Räume? Meine enum.room-Ids lauten z. B. wie folgt: enum.rooms.dining_room enum.rooms.co-op_office enum.rooms.co-op_entrance_hall enum.rooms.utility_room enum.rooms.entrance … Ist das nun ein Fehler in javascript-Adapter oder im js-Controller? Laufen tut das ganze bei mir unter node: v8.14.0 debian Jessie, aktueller Patchstand Script-Engine: 4.0.5 js-Controller: 1.4.2

264

Online

32.7k

Users

82.5k

Topics

1.3m

Posts