Skip to content

Skripten / Logik

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

16.4k Themen 211.8k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 48k
    2k Themen
    48k Beiträge
    P
    @ArnoD Ich habe mich gerade gewundert, warum das Tibber Script nicht wirklich lädt. In der Log habe ich folgendes gefunden: javascript.0 00:42:05.162 error function bestLoadTime: Kein Eintrag gefunden dateStartTime=Wed Nov 26 2025 00:42:05 GMT+0100 (Mitteleuropäische Normalzeit) dateEndTime=Wed Nov 26 2025 00:42:05 GMT+0100 (Mitteleuropäische Normalzeit) javascript.0 00:42:05.163 error Fehler in Funktion tibberSteuerungHauskraftwerk: Cannot read properties of null (reading 'zeit') Kann es sein dass ich mit der neuen NodeJS / JavaScript Version jetzt das Problem habe? Für den Fehler habe ich grad den richtigen Zeitpunkt erwischt, da die Strompreis grad astronomisch sind :-( Nachtrag: Ich bin jetzt wieder auf die alte Version von NodeJS und Java gegangen. Hier reagiert das Tibberscript wenigstens auf Änderungen. Ich denke, das Script muss erst noch an die neuen Versionen angepasst werden.
  • Hilfe für Skripterstellung mit Blockly

    6k 78k
    6k Themen
    78k Beiträge
    Dr. BakteriusD
    @Asgothian sagte in Farbe aus R/G/B rechnet falsch: ggf. erwartet dieser die farbwerte in %, nicht 0-255 Danke, das war's.
  • 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
  • [Noch eine Frage] Neue enum.functions automatisch erstellen möglich?

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    1k Aufrufe
    PeoplesP
    @paul53: Versuche es mal so: ` Ist es auch Möglich die Inhalte des Objekts auf existenz zu prüfen? bspw. enum.function.meinGewerk und ich will abfragen ob:" javascript.0.test.testdurchlauf" vorhanden ist. Möchte das gerne verwenden um beim ersten Scriptdurchlauf die Warnings zu unterdrücken. Habe da was mit:```` (object.toSource());
  • Blockly und timeout

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    4k Aufrufe
    S
    ich hab es jetzt so gemacht und es funktioniert ganz gut 6377_blockly.jpg
  • Rolladen mit Block Steuern

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    950 Aufrufe
    snotechS
    @kxn: Hi snotech, was für Rolladen steuerst du damit? Ich hab Funkrollos von Jarolift (433Mhz) und scheinbar kann man die nicht über broadlink steuern! Ich kann aber in Iobroker alle Signale anleren -auf -ab -stop und pair. Wenn ich jetzt den Rollo auf einlernen stelle und dann die pair taste über iobroker auslöse geht das, dann kann ich z.b. den Rollo auf fahren und dann stop drücken, aber danach geht nix mehr. Der reagiert auf kein Signal mehr. Es gibt wohl wieder eine extra bridge dafür, aber ist das nicht anders zu lösen. z.b. RF sender für mein pi? ` Ich habe verschiedene Systeme. Habe aber die einzelnen Buttons in den Objekten bei Broadlink angelernt und sie funktionieren :) Gruß SNO
  • Blocky Beleuchtung mit externen Schalter

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    388 Aufrufe
    L
    Ich hole mal etwas mehr aus, und zwar habe ich mir ein Vis erstellt welches ich durch durch drücken einzelner Buttons von mir programmierten Stimmungen, An bzw Ausschaltet. Wenn ich nun Manuel per Fernbedienung z.b. die helligkeit ändere bekommt das momentan mein VIS nicht mit und der Button bleibt auch An stehen obwohl diese Stimmung ja nicht mehr ist. Und da habe ich ein denk Fehler wie das realisieren kann. Das problem was ich mit meinem Programm habe das, das Blocky Programm wahrscheinlich schneller Durchläuft als das die Tradfri Datenpunkte aktualisiert sind, also denkt der Blocky Script es ist immer noch False und schaltet sofort wieder False ein. Also sehr unsauber Programmiert
  • Blockly Intervall alle *X* Min ausführen

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    613 Aufrufe
    E
    Hat nicht vll jemand ne Idee wie ich das Lösen könnte? Gerne auch mit einem anderen Ansatz.
  • Stromzähler mit Volkszähler

    Verschoben
    19
    0 Stimmen
    19 Beiträge
    5k Aufrufe
    D
    Moin, da ich damals bei einer Google-Suche zu "ioBroker mit Volkszähler verbinden" als erstes hier gelandet bin, lasse ich mal mein Skript hier, in der Hoffnung, dass es noch jemand anderem helfen kann: https://gist.github.com/digitmind-net/d … 87b2181c04 Der Vorteil gegenüber dem "smartmeter"-Adapter ist, dass es bei schon bestehender Installation vom Volkszähler einfacher einzurichten ist und durch die hohe Kompatiblität des Volkszählers mehr Geräte unterstützt. Das ist aber nur ein Nischenfall für diejenigen, die sowieso schon einen eingerichteten Volkszähler besitzen. Lg Thomas
  • [gelöst] Temperaturwarnung schrittweise triggern (Telegram)

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    416 Aufrufe
    T
    Ich habs jetzt doch via States gelöst, in die ich quasi einen dynamischen Hürdenwert reinschreibe. Initiert werden diese mit der grundsätzlichen Warntemperatur und dann laufend aktualisiert. Diese Hürdentemperatur nutze ich dann nur für Telegram, sayit hat eine eigene Temperatur. Die grundsätzliche Warntemperatur bleibt immer konstant für die VIS Darstellung. Falls es interessiert, hier das Skript. Es erlaubt (nach meinem Dafürhalten) relativ schlank die Überwachung aller Raumtemperaturen und dazugehöriger Fenster: ! ```` /* ! - Skript prüft die IST Temperatur und schickt Warnmeldung, sofern die eingestellte Warntemperaturen unterschritten werden. Zugleich wird die Anzahl der offenen Fenster im Raum geprüft und mitgeteilt. Für VIS gilt die eingestellte Warntemperatur, damit auf der Visualisierung immer alle Räume mit unterschrittener Temperatur angezeigt werden. Für Telegram gilt zunächst die eingstellte Warntemperatur. Nach versenden einer Warnung wird diese raumindividuell um 0.5 Gradschritte abgesenkt, damit nicht alle x-Sekunden die gleiche Meldung kommt sondern immer erst beim nächsten Schritt Sayit hat eigene Warntemperatur. Via 0/1 trigger wird geprüft, ob Sayit schon ausgelöst wurde. Wenn ja, kann die nächste Warnung erst nach 3 Minuten erfolgen. Zudem wird bei Sayit drauf geachtet, ob überhaupt noch Fenster im entsprechenden Raum offen sind. Wenn nein, dann kommt keine Warnung. ! Status v0.8, tempestas 10.3.2018 ! */ ! var debug = false; ! // *********************************************************************** // STATES ANLEGEN FÜR TELEGRAM UND SAYIT, WARNUNG SOWIE TEXTARRAY // *********************************************************************** ! var pfad = 'Raumklima.TempControl.'; var pfadRaum = 'Raumklima.TempControl.Raeume.'; ! createState(pfad+'Telegram', true, { read: true, write: true, name: "Temperatur Warnungen per Telegram senden?", type: "boolean", def: false }); ! createState(pfad+'Sayit', false, { read: true, write: true, name: "Temperatur Warnungen per Sayit ansagen?", type: "boolean", def: false }); ! createState(pfad+'Warnung', false, true, { read: true, write: true, name: "Temperatur Warnung ausgelöst?", type: "boolean", def: false }); ! createState(pfad+'WarnTemp',18.5, true, { name: 'Warntemperatur', type: 'number', min: '12', max: '30', desc: 'Warntemperatur' }); ! createState(pfad+'WarnSayit',16, true, { name: 'Warntemperatur', type: 'number', min: '12', max: '30', desc: 'Warntemperatur' }); ! createState(pfad+'Text', "", true); ! var tts = "sayit.1.tts.text"; var ttsVol = "sayit.1.tts.volume"; ! var idWarnTemp = pfad+'WarnTemp'; var idWarnSayit = pfad+'WarnSayit'; var idTelegram = pfad+'Telegram'; var idSayit = pfad+'Sayit'; var idWarnung =pfad+'Warnung'; var idText = pfad+'Text'; ! var raum; ! // *********************************************************************** // Cache-Selector Temperatur // *********************************************************************** ! var cacheSelector = $('channelstate.id=*.ACTUAL_TEMPERATURE'); ! // *********************************************************************** // Functions // *********************************************************************** ! // Check-Function ! function temperatureCheck(obj) { var textKalt = []; var warn = getState(idWarnTemp).val; var warnSayit = getState(idWarnSayit).val; var telegram = getState(idTelegram).val; if (obj) if(debug) log('Auslösender Aktor: ' + obj.common.name + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat ! cacheSelector.each(function (id, i) { // Schleife über alle gefundenen Objekte var ist = getState(id).val; raum = getObject(id, 'rooms').enumNames[0]; var telegramTemp = Math.min(getState(pfadRaum +raum).val, warn); // Werden initial mit der Warntemperatur eingespielt. Falls zwischenzeitlich Warntemperatur geändert und kleiner als aktuelle telegramTemperatur, nimm diese if (debug) log ("telegramTemp im "+raum + " beträgt "+telegramTemp +". Die IST Temperatur beträgt "+ist); ! // Abschnitt zum Zählen der offenen Fenster im jeweiligen Raum ! var cacheSelectorFenster = $('channelstate.id=*.STATE(rooms=' + raum + ')'); var fenster = 0; var fensterMax = 0; cacheSelectorFenster.each(function (id, i) { ++fensterMax; var status = getState(id).val; if (status == 1 || status === true) ++fenster; }); // Ende Fenster ! if (ist < warn) { // IST-Temperatur ist kleiner als Warntemperatur ! var pushinfo = raum + " : "+ ist + "°C"; textKalt.push(pushinfo); // Rauminfo mit Ist Temperatur zum Array hinzufügen ! // Telegram Benachrichtigung ! if (ist < telegramTemp) { // IST-Temperatur ist kleiner als Vergleichstemperatur für Telegram und es sind Fenster offen setState(pfadRaum +raum, Math.max(12, telegramTemp -0.5)); // telegramTemperatur für diesen Raum für den nächsten Abgleich um 0.5 verringern, damit nicht alle paar Sekunden ausgelöst wird. Ab 12 Grad bleibt es konstant, damit ständig erinnert wird if(debug) log("Telegram-Hürde im "+raum +" wurde auf "+(telegramTemp - 0.5) +" reduziert" ); var nachricht = "Temperatur im " +raum + " beträgt nur noch "+ist +" °C.\n" +fenster +" von "+fensterMax+" Fenstern offen."; if(telegram) sendTo('telegram.0', nachricht ); } else { setState(pfadRaum +raum, warn); // falls Temperatur wieder über Warn ansteigt, dann auf warn setzen } // SayIT Ausgabe via Sonos var sayittext = "Achtung! Temperatur im "+raum +" nur noch bei "+ist +"°C. Bitte Fenster schließen"; ! if(ist <= warnSayit && sayit && compareTime('10:00', '22:00', 'between') && getState(pfadRaum +raum +'.Sayit').val != 1 && fenster > 0) { setState(ttsVol, 15); setState(tts, sayittext ); setState(pfadRaum +raum +'.Sayit', 1); // sayit trigger wird auf 1 gesetzt, damit nicht ständig ausgelöst wird setStateDelayed(pfadRaum +raum +'.Sayit', 0, 3 * 60 * 1000 ); // nach 3 Minuten wird der Trigger wieder zurückgesetzt } } }); // VIS Warnmeldungen schreiben if(debug) log("idText erhält als info: "+textKalt); setState(idText, textKalt.join(' ') ); textKalt.length>0 ? setState(idWarnung, true) : setState(idWarnung, false); } ! // *********************************************************************** // Trigger Änderung IST Temperatur --> Skript wird ausgelöst // *********************************************************************** ! cacheSelector.on(function(obj) { // bei Zustandänderung der IST Temperaturen temperatureCheck(obj); }); ! // Bei Start ! setTimeout(initiate(), 2000); setTimeout(temperatureCheck, 5000); ! // States für alte Temperaturen und Sayit Varialbe anlegen ! function initiate(){ cacheSelector.each(function (id, i) { raum = getObject(id, 'rooms').enumNames[0]; createState(pfadRaum +raum, getState(idWarnTemp).val, true); if(debug) log("State " +pfadRaum +raum +" angelegt"); }); cacheSelector.each(function (id, i) { raum = getObject(id, 'rooms').enumNames[0]; createState(pfadRaum +raum +'.Sayit', 0, true); if(debug) log("State " +pfadRaum +raum +".Sayit angelegt"); }); } ! ````
  • Warum funktioniert alxa-local in node-red nicht mit dem iobroker Adapter?

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    B
    Hallo Werde ich Probieren, hab aber hauptsächlich mit Sonoff Probleme und auch schon Probleme gehabt bevor ich über haupt TV gemacht hab. Wie heiß es so schön Probieren geht über Studieren! :lol:
  • [gelöst] Blockly Script Steuern von Temperatur

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    505 Aufrufe
    P
    Hallo, hatte das Skript versehentlich unter global abgelegt. cu paul
  • $-Selector / Raum dynamisch?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    860 Aufrufe
    T
    Ahh danke. man man man, da hätte ich auch selbst drauf kommen können. Vielen Dank!
  • Objekte unter mqtt zählen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    248 Aufrufe
    Niemand hat geantwortet
  • Tägliches Backup auf USB-Stick

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    T
    SuFu mal benutzt? http://forum.iobroker.net/viewtopic.php … uerbar+vis
  • Zirkulationssteuerung

    Verschoben
    4
    1
    0 Stimmen
    4 Beiträge
    879 Aufrufe
    N
    @paul53 Das war die Lösung Danke an alle die hier gelesen haben und geantwortet. das war es manchmal denkt man einfach viel zu kompliziert und kommt auf die einfachen iden nicht. 2344_zirkulation_geht.jpg
  • Frage zur Logik

    Verschoben
    2
    2
    0 Stimmen
    2 Beiträge
    374 Aufrufe
    FragMikeF
    So….einfach mal dumm rumgetestet. So klappts für mich erst einmal. Habe aktuell über IFTTT die Befehle "schalte" und "fahre" aktiviert. Im Skript kann ich dann pro Schalter/Gerät 2 Alternativen angeben, als auch für das aktivieren. Sage ich was anderes als die Aktivierungswörter ist es automatisch "ausschalten", wobei ich das noch mit den korrekten Begriffen ergänzen werde. Mir gibt es aktuell eine ausreichende Flexibilität, um alles notwendige über Google Assistant zu steuern. 5842_ifttt.png
  • Anbindung Russound CAA66 per rs232 seielle Schnittstelle

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    604 Aufrufe
    M
    @Thisoft: @Micha240373: Hi vielen Dank für die Antwort. Ich möchte eigentlich senden. KNX zu rs232 Russound. Das Problem ist, das ich null Ahnung von Node-red habe. Gibt es auch alternativen? Gruss Michael ` Ja - JavaScript! ;) Weiß zwar nicht, ob das das ist was du hören wolltest, aber der letzte Link oben von pafra führt zu einem ganz brauchbaren Beispiel… ` Ok Danke. werd mal sehen was ich machen kann!
  • Bei Abwesenheit Türen schließen Blockly

    Verschoben
    6
    1
    0 Stimmen
    6 Beiträge
    674 Aufrufe
    C
    Danke läuft alles perfekt :)
  • Harmony Hub Aktivitat über yahka per Skript steuern

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    S
    Versuche seit 3 Tagen den TV über Siri zumindest ein/aus zu schalten. Dank des Forums, habe ich eine brauchbare Lösung gefunden. Dafür vielen Dank an die Community hier. Nun kann ich die Harmony Aktion "Fernsehen" starten und wenn ich ausschalte, spielt es keine Rolle welche Aktion gerade ausgeführt wird "FireTV ect.". Er schalte immer aus. Habe das so gelöst: 2 Szenen erstellt Fernsehen anschalten / Fernsehen ausschalten [image: 6272_yahka4.jpg] Einen State erstellt "true/false" und in Yahka als Switch unter ON eingetragen Und dieses Script (von User jans_ios) angepasst ! ```` on({id: 'javascript.0.scriptEnabled.STECKDOSE.TV', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.scriptEnabled.STECKDOSE.TV").val === true) { setState("scene.Fernsehen_an"/szene.Fernsehen.an.starten/, true); sendTo("telegram.0", "send", { text: 'Fernsehen eingeschaltet' }); } else { setState("scene.Fernseher_aus"/szene.Fernsehen.aus.starten/, true); sendTo("telegram", "send", { text: 'Fernsehen ausgeschaltet' }); } }); Gruß Marco
  • [Gelöst] [Blockly] Rollladen mit Lux wert fahren

    Verschoben
    48
    1
    0 Stimmen
    48 Beiträge
    4k Aufrufe
    cvidalC
    So habe ich es jetzt mit Blockly, dazu habe ich einen Datenpunkt mit Javaskripte erstellt in dem ich <15lux runter und >100lux hoch schreibe. Versucht hatte ich mit dem "zustand erzeugen" Block diesen Datenpunkt zu erstellen aber das hat nicht funktioniert, leider weiß ich nicht warum. Hier das Javaskripte für den Datenpunkt: createState('javascript.0.MyStates.Jalousie_Status', '', { name: 'Jalousie hoch oder runter', type: 'string', unit: '' }); //setState("javascript.0.MyStates.Jalousie_Status"/*Jalousie hoch oder runter*/; Nun das Blockly-skript: [image: 2113_unbenannt.png] Der Export: ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on_ext" id="Qy)NGDj;^0l|=n9pQtz" x="-12901" y="-5946"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="XX]zW,XnCfMsR@1e-]QT"><field name="oid">hm-rpc.0.OEQ0228737.1.LUX</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="1#;l+h3bMm5r;~v2Hg{"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="ExR4=(g#kz(mefuPR9;L"><field name="OP">LT</field> ! <value name="A"><block type="get_value" id="0j7|SjOb[fPk9:g)!Z_e"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0228737.1.LUX</field></block></value> ! <value name="B"><block type="math_number" id="oXDnpKJS07R](Ht6K^-_"><field name="NUM">15</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="!TI0r^RJo[r*cP:VD:*w"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.MyStates.Jalousie_Status</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="text" id="DQ%s6Gaz:%Y@H]puiF-K"><field name="TEXT">runter</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="ACZ^rJN{kif/%*B5l@3Y"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="|+woi|3zU;Fd?Bb])At"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0228737.1.LUX</field></block></value> ! <value name="B"><block type="math_number" id="w/IFv8m%O?Nh}IbxPNsN"><field name="NUM">100</field></block></value></block></value> ! <statement name="DO1"><block type="control" id="DQX::X|fHEb={i14K^p"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.MyStates.Jalousie_Status</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="text" id="1-SmOP87*+!tlvrc*_tF"><field name="TEXT">hoch</field></block></value></block></statement></block></statement> ! <next><block type="on_ext" id="8O%AMJW8E#{uXTF_w86}"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="HWM,#FD.z0b{|@COyKjg"><field name="oid">javascript.0.MyStates.Jalousie_Status</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="=0bv?,bnXv41KN{-;Zm8"><value name="IF0"><block type="logic_compare" id="K;n*.?Sa|T?T*a8(KHr"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="yw;jyN-6p|o@rH+2Jm^"><field name="ATTR">val</field> ! <field name="OID">javascript.0.MyStates.Jalousie_Status</field></block></value> ! <value name="B"><block type="text" id="7Y2D8]C0wP4Q9[U_I)mE"><field name="TEXT">runter</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="jui!FF];6UHJ8a:+OXwm"><mutation delay_input="false"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Eltern</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="ewmyF|}A-q}%iOJe2Zbs"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="m+3u?zl2!x}zK~Q;TWQk"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Kind_1</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">5000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="i8l6B%h![Mgnug(1QSS"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="2_d_cg~-S?L3|BS!P5"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Kind_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">10000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="2F]owzO1Jc?_s%d!PG.I"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="mK,Hv~:d-vf_!L]d.wdd"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Bad</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">15000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="L|ael2~.S/iz94i0BicW"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="ia=Pck@Q@z7c.I)Y]ZpM"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Ankleide</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">20000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="hdTAG2t6%|yi!x?-MG#?"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="Zb:79y,H1*xA@NFZFj"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Gäste_WC</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">25000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="?!@Ot6?.BGT#;jMS.|or"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="_5z0qL:LtZ}M{5DK(FfJ"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Küche_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">30000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id=":0M(r#I6;iFzmB-XM#~;"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="I1A+4S5je]R[?ie0a*8G"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Esszimmer</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">40000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="U@QVbC~xGj;zQ8/5^h]"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="1#u-5PpIlksaJi#.5(c"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Wohnzimmer_1</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">45000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="2OM[W!=QgW|];%)TDc|P"><field name="BOOL">TRUE</field></block></value> ! <next><block type="controls_if" id="qSkhJm!w{pKeYe!t+XVP"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="3fJ5nPi8+9@,OvjI!K]m"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="?ALnR0yk}Jo@r1J-;{l"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.NEQ1157343.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="[hz3Be3t~.D{bZAbJ.@"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO0"><block type="control" id=",TS1])j/1%=}1x*:dlw"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.HWR</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">55000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="E!S?z%fT9UR{@6ONBNBO"><field name="BOOL">TRUE</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="1aBFrX/ce}pd6Ggb6NSN"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Position_Anfahren.HWR</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">55000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="LiH]U*=v[L7gI5DGq6g~"><field name="NUM">50</field></block></value></block></statement> ! <next><block type="controls_if" id=")EkSA1:qL6(Jlx,hN9(3"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="++Z[W?qc][#(zkyR=1A_"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="F*ZtU|U-OS%K8n7xnpeQ"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0226002.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="7z#-|=mEf~%ig;s^zZF9"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="G%K3qBRXJ5|Wz7L8DO!Q"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Wohnzimmer_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">50000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="e|.fcmrvNL;[FM8jjN{0"><field name="BOOL">TRUE</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="Z[^k%KwS{F]6#VpDKFLS"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">50000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="|I[/ln,BpZciU*[|YNjV"><field name="NUM">50</field></block></value></block></statement> ! <next><block type="controls_if" id="Fi~vZ;V;FgcKhcCh#KDN"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="/2dxC=ZE@;*I=F9_2C58"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id=";++-VZ;WQ;x2.({x/3I."><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0420807.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="R%~P4*^9u2e|FCM@QES."><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="=xU2S{VmQ[#tFQ!;C9-"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Küche_1</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">35000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="oHDzGa)khN?GZU7-5R/"><field name="BOOL">TRUE</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="1{qV!z=XH@4.4wKj5M"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Position_Anfahren.Küche_1</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">35000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="zI)T0c~zV1L%SpgTZ93?"><field name="NUM">50</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement></block></next></block></xml> Der Code: ! on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) { ! var value = obj.state.val; ! var oldValue = obj.oldState.val; ! if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 15) { ! setState("javascript.0.MyStates.Jalousie_Status"/Jalousie hoch oder runter/, 'runter'); ! } else if (getState("hm-rpc.0.OEQ0228737.1.LUX").val > 100) { ! setState("javascript.0.MyStates.Jalousie_Status"/Jalousie hoch oder runter/, 'hoch'); ! } ! }); ! on({id: 'javascript.0.MyStates.Jalousie_Status', change: "ne"}, function (obj) { ! var value = obj.state.val; ! var oldValue = obj.oldState.val; ! if (getState("javascript.0.MyStates.Jalousie_Status").val == 'runter') { ! setState("knx.0.Beschattung_OG.Fahren.Eltern"/Eltern/, true); ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_1"/Kind 1/, true, 5000, false); ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_2"/Kind 2/, true, 10000, false); ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Bad"/Bad/, true, 15000, false); ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Ankleide"/Ankleide/, true, 20000, false); ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Gäste_WC"/Gäste WC/, true, 25000, false); ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_2"/Küche 2/, true, 30000, false); ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Esszimmer"/Esszimmer/, true, 40000, false); ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_1"/Wohnzimmer 1/, true, 45000, false); ! if (getState("hm-rpc.0.NEQ1157343.1.STATE").val == false) { ! setStateDelayed("knx.0.Beschattung_EG.Fahren.HWR"/HWR/, true, 55000, false); ! } else { ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/HWR/, 50, 55000, false); ! } ! if (getState("hm-rpc.0.OEQ0226002.1.STATE").val == false) { ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_2"/Wohnzimmer 2/, true, 50000, false); ! } else { ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2"/Wohnzimmer 2/, 50, 50000, false); ! } ! if (getState("hm-rpc.0.OEQ0420807.1.STATE").val == false) { ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_1"/Küche 1/, true, 35000, false); ! } else { ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Küche_1"/Küche 1/, 50, 35000, false); ! } ! } ! }); Gruß Christian
  • Auslesen von Daten einer Webseite

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    4k Aufrufe
    HomoranH
    Danke für das Feedback. Dann markiere den Thread bitte noch als gelöst. Gruß Rainer
  • Blocky Anfänger

    Verschoben
    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    Ralla66R
    Welche App auf welchem Gerät ? Etwa so ? Harmony App Handy -> Harmony Hub -> Philipps Hue und du schaltest etwa so iobroker->Harmony Hub -> Philipps Hue richtig ?

459

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge