Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.8k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 50k
    3k Themen
    50k Beiträge
    maxclaudiM
    freedom [image: 1786230732455-freedom.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    W
    @paul53 Bombe! Vielen Dank! Gleich die erste Version passt perfekt. Möchte nur um 11 Uhr entscheiden ob es sinnvoll ist die Klima einzuschalten. Brauch das nur im Sommer, drum interessiert Winterzeit nicht. Vielen Dank Dir
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    HomoranH
    @andibr sagte: beim auslesen der Victron Forcast aus dem VRM. Wieder [OT] Hängt die pytes bereits per CAN am BMS-CAN vom Cerbo? Und zusätzlich gehst du an den rj45 für RS232? Geht das problemlos? Hab mich das nämlich noch nicht getraut.
  • [Noch eine Frage] Neue enum.functions automatisch erstellen möglich?

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    2k 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
    5k 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
    1k 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
    533 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
    683 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
    6k 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
    544 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
    609 Aufrufe
    P
    Hallo, hatte das Skript versehentlich unter global abgelegt. cu paul
  • $-Selector / Raum dynamisch?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    1k 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
    279 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
    1k 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
    450 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
    761 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
    965 Aufrufe
    C
    Danke läuft alles perfekt :)
  • Harmony Hub Aktivitat über yahka per Skript steuern

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k 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
    7k 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
    3k 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 ?

280

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge