Skip to content

Skripten / Logik

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

16.6k Topics 213.7k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    Pedder007P
    @Schimi Danke, läuft nun auch bei mir :-)
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    Murphy 0M
    Nachtrag, es gibt wohl einen Bug wenn du ein Blockly Skript mit einem XML file importierst genau diese stop Funktion nicht richtig gesetzt wird
  • 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
  • Wie Object erzeugen für Abfrage nodered Variable

    Moved
    1
    1
    0 Votes
    1 Posts
    215 Views
    No one has replied
  • Probleme mit Hue-Scripten

    Moved
    10
    0 Votes
    10 Posts
    603 Views
    C
    Ok, jetzt scheint es zu funktionieren, ich danke dir vielmals <emoji seq="1f60d">😍</emoji>
  • Mehrfachstart vom Script verhindern.

    Moved
    7
    0 Votes
    7 Posts
    922 Views
    H
    Ok jetzt bin ich wieder raus. Aber naja es funktioniert erstmal so.. Der rest kommt hoffe ich step by step. Danke.
  • In Blockly Variable in Homematic beschreiben?

    Moved
    3
    1
    0 Votes
    3 Posts
    788 Views
    J
    Der Datenpunkt des DWD wird bereits als String/Zeichenkette bereitgestellt und muss nicht umgewandelt werden. Leider liegen in meinem Gebiet keine Warnungen vor und ich kann es nicht testen, aber so müsste es klappen: [image: 6696_dwdtext.jpeg]
  • Szene mit true/false

    Moved
    1
    0 Votes
    1 Posts
    474 Views
    No one has replied
  • Fehler beim Auslesen

    Moved
    13
    1
    0 Votes
    13 Posts
    2k Views
    Mr. BurnsM
    Hi, Einen Drucktransmitter 4..20mA, einen Wandler von 4..20mA auf 0..10V, Eingang auf das 12/14 Modul. Ich hab ein Röhrchen, welches bis zum Tankboden geht. Oben ist ein T-Stück, an welchem der Drucktransmitter sitzt. auf dem anderem Anschluss des T-Stücks ist eine Membranpumpe (alte Aquarium Luftpumpe) und ein Nadelventil. Nach der Einperlmethode messe ich den Druck am Boden des Tanks. Mittlerweile messe ich aber direkt über eine SPS und übergebe den Wert an den ioBroker. Parallel messe ich noch den Durchfluss über ein Braun Ölzähler, auch an direkt an der SPS… Gruß Thomas
  • Probleme mit Telegram in Scripten

    Moved
    3
    1
    0 Votes
    3 Posts
    280 Views
    apollon77A
    Diese Hellen Blöcke sind default Blöcke. Den text kannst Du aber an sich ändern. Sonst einfach einen Text-Block nehmen und an die gleiche Stelle hängen.
  • Daten aus einer URL in eine Variable schreiben

    Moved
    28
    0 Votes
    28 Posts
    5k Views
    R
    Danke ruhr70, so funktioniert es. (Besser später als nie bendanken ;-) )
  • [GELÖST] Skript ruft Skript auf (Blockly)

    Moved
    7
    0 Votes
    7 Posts
    2k Views
    B
    Ich habe eine Lösung mit Blockly gefunden. Folgende Ausgangssituation: Der Block mit der Ansteuerung der Rollladen kommt mehrfach vor. [image: 5625_ursprung.jpg] Man klickt rechts oberhalb vom Fenster auf den Button "Code anzeigen" und kann sich dort den sich wiederholen Part rauskopieren. Nun fügt man einen Funktion-Block hinzu, gibt ihm einen Namen in meinen Fall "Rollladen" und fühlt in mit dem Code. [image: 5625_funktionsblock.jpg] Im Anschluss gibt es im Reiter der Funktion-Blöcken einen neuen Block der genau die Funktion enthält die man vorher als Code eingegeben hat. [image: 5625_funktion.jpg] Genau was ich wollte :)
  • Blockly "$('[state.id=.." Syntax

    Moved
    1
    0 Votes
    1 Posts
    285 Views
    No one has replied
  • Begrüßung durch Echo Dot bei Haustüröffnung und Anwesenheit

    Moved
    9
    0 Votes
    9 Posts
    2k Views
    J
    oder man verbaut eben billige Türkontakte und fragt die als UND zur Anwesenheit ab, nimmt dann die durchschnittliche Zeit bis man in Hörweite des Echo steht und gibt die als Verzögerung zur Begrüßen dazu und schon ist die Frau überrascht, wenn sie nach hause kommt :lol:
  • Node-red Wemo Emulator -Zustände nach Neustart

    Moved
    5
    0 Votes
    5 Posts
    952 Views
    MichaM
    Morgen, Um wieviel wemos handelt es sich ? Du kannst den letzten Zustand in eine Datei schreiben, dann hast du einen festen Speicherplatz dafür. Ist sicherlich nicht der schönste Weg aber es würde gehen. VG Micha
  • HTTP POST an CCU in Javascript

    Moved
    16
    0 Votes
    16 Posts
    3k Views
    K
    Hi, ich muss dass hier leider mal aufwärmen, da ich nicht durchsteige. Hintergrund: Ich möchte die Wochenprogramme meiner Heißkörperthermostate via ioBroker durchschalten. Wie? :-D okay hab da jetzt was zusammengepfluckt was zu funktionieren scheint: `// Konstanten für CCU Push var http = require('http'); var path = "/blabla.exe"; function setCCUscript (sDevice,wochenprog) { var data = 'object o1= devices.Get("' + sDevice + '");'; data +='string s2="";'; data +='if (o1) {'; data += 'xmlrpc.PutParamset (o1.Interface(), o1.Address(), "MASTER", "WEEK_PROGRAM_POINTER", '+ wochenprog.toString () +'); s2="SET";'; data += '} else { s2 = "NO DEVICE"; }'; return data } function setPushVar (data) { var options = { host: getObject('system.adapter.hm-rpc.0').native.homematicAddress, port: 8181, path: path, method: 'POST', headers: { 'User-Agent' : 'Mozilla/5.0', 'Content-Type': 'text/plain', 'Content-Length': data.length, } }; return options; } function httpPost (options,data) { var req = http.request(options, function(res) { var body=''; res.on('data', function(d) { body += d.toString (); }); res.on('end', function() { }); }); req.on('error', function(e) { log('ERROR: ' + e.message,"warn"); }); (data ? req.write(data) : log("Daten: keine Daten angegeben")); req.end(); } on ({id: "javascript.0.Heizung_Energiesparmodus", change: 'ne'}, function(obj) { if (getState ("javascript.0.Heizung_Energiesparmodus").val ==1) { var array = ["Wohnzimmer Heizung Gruppe", "Schlafzimmer Heizung Gruppe", "Küche Heizung Gruppe", "Büro Heizung Gruppe", "Kinderzimmer Heizung Gruppe", "Hauswirtschaftsraum Heizung Gruppe", "Badezimmer Wanne Heizung Gruppe", "Badezimmer Dusche Heizung Gruppe", "Flur Heizung Gruppe"]; var i; log ("Heizung_Energiesparmodus ist an"); for (i = 0; i < array.length; i++) { var script = setCCUscript (array[i], 2); httpPost (setPushVar (script),script); } } else { var array = ["Wohnzimmer Heizung Gruppe", "Schlafzimmer Heizung Gruppe", "Küche Heizung Gruppe", "Büro Heizung Gruppe", "Kinderzimmer Heizung Gruppe", "Hauswirtschaftsraum Heizung Gruppe", "Badezimmer Wanne Heizung Gruppe", "Badezimmer Dusche Heizung Gruppe", "Flur Heizung Gruppe"]; var i; log ("Heizung_Energiesparmodus ist aus"); for (i = 0; i < array.length; i++) { var script = setCCUscript (array[i], 0); httpPost (setPushVar (script),script); } } });` Grüße Kevin[/i][/i]
  • Blockly Zeitenstempel prüfen

    Moved
    2
    0 Votes
    2 Posts
    360 Views
    Dr. BakteriusD
    Ich mache das so: [image: 6909_abfrage.png]
  • Mit Blocky übergeben

    Moved
    2
    0 Votes
    2 Posts
    236 Views
    Q
    Funktioniert der Link, den du übergeben willst im Browser, wenn du ihn dort einfach eingibst und absendest? Hast du im javascript Adapter denn einen Haken excect und http request gemacht? Versuch mal den http request: https://github.com/ioBroker/ioBroker.j … equest-url Gesendet von iPhone mit Tapatalk
  • Grundsätzliche Frage zu Javascript bzw. Blockly

    Moved
    2
    0 Votes
    2 Posts
    275 Views
    apollon77A
    Mal javascript Adapter neu gestartet? Oder server rebooted? Falls da noch was laufen sollte geht es damit weg.
  • Fehler im Javascript Adapter bei compareTime ???

    Moved
    4
    0 Votes
    4 Posts
    668 Views
    paul53P
    Das kann ich bei mir nicht nachvollziehen: [image: 493_test_comparetime_astro.jpg] Reiter "Log": javascript.1 2018-08-13 21:06:33.643 info script.js.common.Test3: registered 0 subscriptions and 0 schedules javascript.1 2018-08-13 21:06:33.643 info script.js.common.Test3: false javascript.1 2018-08-13 21:06:33.640 info Start javascript script.js.common.Test3 javascript.0 2018-08-13 21:06:33.638 info Stop script script.js.common.Test3 javascript.1 2018-08-13 21:06:33.636 info Stop script script.js.common.Test3 Host: 1.4.2 Javascript: 3.6.4
  • Script zur Abfrage und Variable schreiben

    Moved
    7
    0 Votes
    7 Posts
    939 Views
    M
    @AlCalzone ja, mache ich später :-) Ich hab gerade nämlich noch etwas geändert und dabei ist mir was aufgefallen: Problem ist: Wenn iibroker frisch gestartet wurde hat die Balkontüre keinen Status. Erst wenn sie das erste mal verändert wurde ändert sich der Status zu einem gültigen Status. Jetzt dachte ich mir ich nehme einfach mal noch die Aktualisierungszeit vom Homepilot dazu als Trigger. Das funktioniert auch, bei der ersten Änderung bekomme ich für die Balkontüre den korrekten Status angezeigt, ABER es erscheint auch eine Warnung im Log mit der ich nichts anfangen kann. 13:33:27.798 [warn] javascript.0 at Object. (script.js.Homepilot.Balkontuere:12:5) ````//aus dem Script Editor javascript.0 2018-08-13 13:33:27.796 warn at Object. <anonymous>(script.js.Homepilot.Balkontuere:12:5) javascript.0 2018-08-13 13:33:27.791 warn Wrong type of javascript.0.scriptEnabled.Homepilot.Balkontuere: "string". Please fix, while deprecated and will not work in next versions.</anonymous> Jetzt ist das genau die Stelle an der das Script 'geschlossen' schreibt und der Status bereits 'geschlossen' ist. Hängt das damit zusammen ? Aber die Fehlermeldung hat ja etwas mit 'String' zun tun … :?: Eines jedenfalls ist sicher, es kommt durch die hinzugefügte object.ID homepilot.uws.aktualisiert Hier noch das script <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="PV@wi;P(7Or}IFr]G;w#" x="-462" y="-413"><field name="COMMENT">Variable erzeugen</field> <next><block type="create" id="hugGY.kjQ/6JbAbp0Coq"><field name="NAME">scriptEnabled.Homepilot.Balkontuere</field> <next><block type="comment" id="RpMUzedZCNLNs1nvcTPp"><field name="COMMENT">Trigger auf beide Sensoren</field> <next><block type="on_ext" id="fvW|9PA`%/Ku(:D{Ja*]"><mutation items="3"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="9MI^=*PdUsRSBiUgrdTM"><field name="oid">parser.0.homepilot.fenstersensor.balkontüre-oben</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="c|b?yGNJrfUJHum.{_vw"><field name="oid">parser.0.homepilot.fenstersensor.balkontüre-unten</field></shadow></value> <value name="OID2"><shadow type="field_oid" id="K%VOr7K8/vt-1ZLkZ{5m"><field name="oid">parser.0.homepilot.uws.aktualisiert</field></shadow></value> <statement name="STATEMENT"><block type="comment" id="4{-X-xbR}W-oA.g80Rj)"><field name="COMMENT">geklappt, offen, geschlossen</field> <next><block type="controls_if" id="8.Y]Z%8a[u@``jU=KJn0"><mutation elseif="2"></mutation> <value name="IF0"><block type="logic_operation" id="6#2g!iIGE*p(|-pLgwc;"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="Xr07{sCUI~9=X.S-YKGM"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="0}BQ|J#W|Vw/tT(bNjt%"><field name="ATTR">val</field> <field name="OID">parser.0.homepilot.fenstersensor.balkontüre-oben</field></block></value> <value name="B"><block type="logic_boolean" id="s]6]r!8A:yN,*bvr6f+{"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="e98Sejq:A3AQ:A#GS@.C"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="QfR[~u%#|Ls}hkSe{w8h"><field name="ATTR">val</field> <field name="OID">parser.0.homepilot.fenstersensor.balkontüre-unten</field></block></value> <value name="B"><block type="logic_boolean" id="^H![P|cPcmdge|+.*yo%"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="update" id="a6_rcw(oeo?0R{!KboQ]"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Homepilot.Balkontuere</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="Z5rAFVN;NX`P8HwBhMQZ"><field name="TEXT">geklappt</field></block></value></block></statement> <value name="IF1"><block type="logic_operation" id="k@q5C{Lpaee|s*mt8+^a"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="]7Lkad!(T0p={_+_HwXF"><field name="OP">EQ</field> <value name="A"><block type="get_value" id=".K^*@R+;*QibAU[0.9+_"><field name="ATTR">val</field> <field name="OID">parser.0.homepilot.fenstersensor.balkontüre-oben</field></block></value> <value name="B"><block type="logic_boolean" id=",tO!n!:nl,[Ip/aL!wX)"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="Ro%]a)~T2f1ssk7p-H~3"><field name="OP">EQ</field> <value name="A"><block type="get_value" id=".0M-VQgDL)ad3(R^d(VN"><field name="ATTR">val</field> <field name="OID">parser.0.homepilot.fenstersensor.balkontüre-unten</field></block></value> <value name="B"><block type="logic_boolean" id="yD/JCW`;myUubZxKZ@(L"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO1"><block type="update" id="W5tQbsYs9^`ZWjx]`OBn"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Homepilot.Balkontuere</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="IT`QVa.4WL1^LFH;@9%9"><field name="TEXT">offen</field></block></value></block></statement> <value name="IF2"><block type="logic_operation" id="m:]a)s.C{D;7o~JJ27L@"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="^PqvNp!a_YLTXW=eMf{P"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="N}L}/|]wJ@7K7v*wMq-F"><field name="ATTR">val</field> <field name="OID">parser.0.homepilot.fenstersensor.balkontüre-oben</field></block></value> <value name="B"><block type="logic_boolean" id="dL!C)uUUW+/FN+-z,0.6"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="j0xXDheR61i8vDfT8vn4"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="u22,f18P,,#F~P;FRVK?"><field name="ATTR">val</field> <field name="OID">parser.0.homepilot.fenstersensor.balkontüre-unten</field></block></value> <value name="B"><block type="logic_boolean" id="=1dQnj(#f]Auc.^}hE+2"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO2"><block type="update" id="0z~WEv|~p-dn4hXzA_!s"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.Homepilot.Balkontuere</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="QhMt4p4iTcaD!{AxyiH5"><field name="TEXT">geschlossen</field></block></value></block></statement></block></next></block></statement></block></next></block></next></block></next></block></xml> Hat jemand eine Idee ? vg, Marc
  • [gelöst] [Blockly]Lampen aus, wenn 15 Minuten keine Bewegung

    Moved
    24
    2
    0 Votes
    24 Posts
    4k Views
    AlCalzoneA
    Prima, dann markiere das Thema im Titel des 1. Beitrags bitte als gelöst.
  • Auswertung in Blockly

    Moved
    7
    0 Votes
    7 Posts
    855 Views
    L
    Danke AlCalzone du hast mir sehr geholfen. Mit Hilfe deines Beispielcodes bin ich weitergekommen.

630

Online

32.7k

Users

82.4k

Topics

1.3m

Posts