Skip to content

Skripten / Logik

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

16.5k Topics 213.2k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    P
    Oben steht, dass der Server öfter mal offline ist. Da ist ping meine erste Idee. Ob der Server auf Pings antwortet, weiß ich nicht. Reagiert der Server nicht auf ping, dann evtl. als Ersatz einen httpcheck nehmen. httpcheck nutze ich auf der Synology, bevor die auf den ioBroker zugreift. # ===== HTTP-Check statt Ping ===== curl -s --connect-timeout 3 "$BASE/system.adapter.admin.0.alive" > /dev/null || exit 1 Ist allerdings ein Bash-Skript. Das muss für die Zwecke angepasst werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    S
    @TT-Tom Vielen Dank für den Tip.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Backup der Skripte als zip

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    apollon77A
    bitte mal github issue anlegen
  • Node properties variable gestalten

    Moved
    3
    0 Votes
    3 Posts
    542 Views
    T
    Super, danke sehr für die Antwort. LG Thomas
  • Rechnen mit Astrozeiten - Verständisfrage

    Moved
    1
    0 Votes
    1 Posts
    499 Views
    No one has replied
  • Xiaomi Türkontakt - stündlicher Status

    Moved
    5
    1
    0 Votes
    5 Posts
    1k Views
    eumatsE
    Ersetze mal die Variable state durch value.
  • Anzahl Tage bis Abfall

    Moved
    2
    2
    0 Votes
    2 Posts
    637 Views
    T
    Gibt hier diverse Skripte: http://forum.iobroker.net/viewtopic.php … 282#p92282
  • HM Thermostat: Wechsel Boost <-> Auto

    Moved
    8
    0 Votes
    8 Posts
    996 Views
    K
    @RappiRN: Das hat übrigens nichts mit ioBroker zu tun, wenn du das Gleiche Verhalten in der CCU nachstellst, wird beim Einschalten des Auto-Modus auch der Auto-Wert genommen und nicht der vorher manuell veränderte Wert! ` Stimmt! Das hatte ich gar nicht getestet. Damit werde ich also mit diesem Feature und Unterschied zwischen Bedienung per CCU/ioBroker und vor Ort leben müssen. Danke auch für den Tipp zur (Zwischen-)Speicherung des Sollwerts.
  • Alle Lichter über vis hqwidgets aus- und einschalten

    Moved
    2
    2
    0 Votes
    2 Posts
    1k Views
    arteckA
    reagier doch nur wenn vars.0.wohnung.anyLightsOn false ist `on({id: 'vars.0.wohnung.anyLightsOn', change: 'ne', val: false}, function() { // nur ausführen wenn auf false for (var i=0; i<liste.length; i++)/{/alle/lichter/ausschalten/if/(liste[i].includes("level"))/dimmer/setstate(liste[i],/0);/}/else/schalter/false);/});<e=""></liste.length;>`[/i][/i][/i]
  • Trigger gesucht

    Moved
    5
    0 Votes
    5 Posts
    628 Views
    paul53P
    @cash: Egal ob ich Alle_Sonos_stoppen über Alexa auf true setze oder direkt über den Reiter Objekte in der Admi passiert nichts ` Da auf ack: true getestet wird, muss "bestätigt" auch durch Alexa bzw. im Reiter "Objekte" auf true gesetzt werden. Wenn es mit der anonymen Funktion klappt, sollte auch das funktionieren: on({id: "Systemvariable.0.Alexa.Alle_Sonos_stoppen"/*Alle_Sonos_stoppen*/, val: true}, func_Sonos_Stop);
  • Python paho mqtt - Audio Datei verschicken

    Moved
    1
    0 Votes
    1 Posts
    668 Views
    No one has replied
  • States in beliebigem Adapter anstatt javascript.0 erzeugen

    Moved
    8
    0 Votes
    8 Posts
    876 Views
    paul53P
    @Kiwifranky: Damit können wir den Thread eigentlich beenden… ` Dann markiere bitte das Thema als [geklärt] (im ersten Beitrag).
  • [gelöst] Temperatur in der ccu vom rpi 2.0 Adapter anzeigen lassen

    Moved
    17
    0 Votes
    17 Posts
    1k Views
    paul53P
    @Homer1976: richtig getippt. ` Nicht ganz: Ich habe auf Github in der Datei https://github.com/ioBroker/ioBroker.rpi2/blob/master/admin/words.js nachgesehen.
  • Iobroker objekt (Gerät) in node red anzeigen/befüllen

    Moved
    2
    0 Votes
    2 Posts
    707 Views
    C
    Hallo, ich ergänze meine Frage einmal kurz: Es ist mir ja möglich, in node-red ein Objekt (Wert oder Command) anzulegen. Leider ist es mir nicht möglich, auf diesem Weg ein Objekt als Gerät anzulegen. Entsprechend kann ich die Geräte-Werte auch nicht übertragen. Gleichzeitig werden mir in iobroker angelegte Objekte in node-red nicht anzeigt. Vielleicht erstelle ich sie falsch oder habe eine Option vergessen. Logisch ist mir das noch nicht. Gruß Coffeelover
  • [Gelöst] Ist es möglich die Breite dynamisch anzupassen?

    Moved
    11
    0 Votes
    11 Posts
    2k Views
    PeoplesP
    Hi, ergänzend zu der Javascript-Lösung hier die von mir mittlerweile genutze Umsetzung ohne Scripte direkt in Vis mit Binding. Der Widgetexport (Hier muss das Thermostat noch angepasst werden): ! ```` [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html":" 1 ? 100/40value:'';value > 100? "100" : 100/40value}%">","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"521px","top":"255px","z-index":"3","width":"340px","height":"10px","border-width":"1px","border-style":"solid","border-color":"black","border-radius":"2px","background-color":"#404040"},"widgetSet":"basic"}] Und hier der CSS-Auszug: .temp_horizontal{ background: linear-gradient(to right, #0e16e4 0px,#6488a2 60px,#dfab0d 110px,#fdff00 240px,#f00000 310px); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ }
  • Blockly: ObjectID-Dialog öffent sich nicht

    Moved
    7
    1
    0 Votes
    7 Posts
    952 Views
    liv-in-skyL
    habe das problem auch hier fehler: kommt bei jeder objectid Uncaught Error: Assertion failed at Function.error (jquery-1.11.2.min.js:2) at d (jquery.fancytree-all.min.js:40) at g (jquery.fancytree-all.min.js:40) at r.nodeRender (jquery.fancytree-all.min.js:40) at r.nodeRender (jquery.fancytree-all.min.js:12) at r._callHook (jquery.fancytree-all.min.js:12) at f (jquery.fancytree-all.min.js:13) at r.nodeSetExpanded (jquery.fancytree-all.min.js:13) at r.h (jquery.fancytree-all.min.js:12) at r.nodeSetExpanded (jquery.fancytree-all.min.js:40) error @ jquery-1.11.2.min.js:2 d @ jquery.fancytree-all.min.js:40 g @ jquery.fancytree-all.min.js:40 nodeRender @ jquery.fancytree-all.min.js:40 (anonymous) @ jquery.fancytree-all.min.js:12 _callHook @ jquery.fancytree-all.min.js:12 f @ jquery.fancytree-all.min.js:13 nodeSetExpanded @ jquery.fancytree-all.min.js:13 h @ jquery.fancytree-all.min.js:12 nodeSetExpanded @ jquery.fancytree-all.min.js:40 (anonymous) @ jquery.fancytree-all.min.js:12 _callHook @ jquery.fancytree-all.min.js:12 setExpanded @ jquery.fancytree-all.min.js:12 setIt @ selectID.js:280 setIt @ selectID.js:283 setIt @ selectID.js:283 restoreExpandeds @ selectID.js:285 initTreeDialog @ selectID.js:2616 show @ selectID.js:3170 $.fn.selectId @ selectID.js:3524 Blockly.FieldOID.showEditor_ @ field_oid.js:99 Blockly.Field.onMouseUp_ @ blockly_compressed.js:935 e @ blockly_compressed.js:1399
  • PC fährt einfach wieder hoch

    Moved
    1
    0 Votes
    1 Posts
    310 Views
    No one has replied
  • Hilfe beim parsen / JSON / Landroid

    Moved
    6
    0 Votes
    6 Posts
    733 Views
    MatzebhvM
    Ich hab jetzt noch nicht alles drin, aber so sieht es aus und funktioniert. Ist natürlich sehr hemdsärmelig. Schöner wäre es, den Inhalt des JSON auch zum anlegen und aktualisieren der DP zu nutzen ( über Schleifen ). Dafür bräuchte ich von den Pro's tatsächlich noch mal Hilfe. ! ```` //Datenpunkte ezeugen ! createState('worxx.landroid_state', {name: 'Roboter Status', desc: 'Roboter Status', type: 'string', unit: '', role: 'state'}); createState('worxx.landroid_boardTemperature', {name: 'Temperatur Mainboard', desc: 'Temperatur Mainboard', type: 'number', unit: '°C', role: 'value'}); createState('worxx.landroid_distance', {name: 'Wegstrecke', desc: 'Wegstrecke', type: 'number', unit: 'm', role: 'value'}); createState('worxx.landroid_wheelLeftDistance', {name: 'Wegstrecke Rad Links', desc: 'Wegstrecke Rad Links', type: 'number', unit: 'm', role: 'value'}); createState('worxx.landroid_wheelRightDistance', {name: 'Wegstrecke Rad Rechts', desc: 'Wegstrecke Rad Rechts', type: 'number', unit: 'm', role: 'value'}); createState('worxx.landroid_angle', {name: 'Winkel', desc: 'Winkel', type: 'number', unit: '°', role: 'value'}); createState('worxx.landroid_rainSensor', {name: 'Regensensor', desc: 'Regensensor', type: 'number', unit: '', role: 'value'}); createState('worxx.battery_percentage', {name: 'Batterielevel', desc: 'Batterielevel', type: 'number', unit: '%', role: 'value'}); createState('worxx.battery_voltage', {name: 'Batteriespannung', desc: 'Batteriespannung', type: 'number', unit: 'V', role: 'value'}); createState('worxx.battery_temperature', {name: 'Batterietemperatur', desc: 'Batterietemperatur', type: 'number', unit: '°C', role: 'value'}); createState('worxx.battery_ntcResistance', {name: 'Widerstandswert NTC', desc: 'Widerstandswert NTC', type: 'number', unit: 'Ohm', role: 'value'}); createState('worxx.batterycharger_state', {name: 'Ladegerät Status', desc: 'Ladegerät Status', type: 'string', unit: '', role: 'value'}); createState('worxx.batterycharger_chargeCurrent', {name: 'Ladegerät Ladestrom', desc: 'Ladegerät Ladestrom', type: 'number', unit: 'mA', role: 'value'}); ! createState('worxx.motor1_Speed', {name: 'Geschwindigket Motor1', desc: 'Geschwindigket Motor1', type: 'number', unit: '', role: 'value'}); createState('worxx.motor1_maxSpeed', {name: 'max Geschwindigket Motor1', desc: 'max Geschwindigket Motor1', type: 'number', unit: '', role: 'value'}); createState('worxx.motor1_SpeedReduction', {name: 'Reduzierung Motor1', desc: 'Reduzierung Motor1', type: 'number', unit: '', role: 'value'}); createState('worxx.motor1_rpm', {name: 'RPM Motor1', desc: 'RPM Motor1', type: 'number', unit: 'U/Min', role: 'value'}); createState('worxx.motor1_feedbackError', {name: 'Feedbackerror Motor1', desc: 'Feedbackerror Motor1', type: 'number', unit: '', role: 'value'}); createState('worxx.motor1_acceleration', {name: 'Beschleunigung Motor1', desc: 'Beschleunigung Motor1', type: 'number', unit: '', role: 'value'}); createState('worxx.motor1_deceleration', {name: 'Verzögerung Motor1', desc: 'Verzögerung Motor1', type: 'number', unit: '', role: 'value'}); createState('worxx.motor1_fault', {name: 'Fehler Motor1', desc: 'Fehler Motor1', type: 'boolean', unit: '', role: 'value'}); ! createState('worxx.motor2_Speed', {name: 'Geschwindigket Motor2', desc: 'Geschwindigket Motor2', type: 'number', unit: '', role: 'value'}); createState('worxx.motor2_maxSpeed', {name: 'max Geschwindigket Motor2', desc: 'max Geschwindigket Motor2', type: 'number', unit: '', role: 'value'}); createState('worxx.motor2_SpeedReduction', {name: 'Reduzierung Motor2', desc: 'Reduzierung Motor2', type: 'number', unit: '', role: 'value'}); createState('worxx.motor2_rpm', {name: 'RPM Motor2', desc: 'RPM Motor2', type: 'number', unit: 'U/Min', role: 'value'}); createState('worxx.motor2_feedbackError', {name: 'Feedbackerror Motor2', desc: 'Feedbackerror Motor2', type: 'number', unit: '', role: 'value'}); createState('worxx.motor2_acceleration', {name: 'Beschleunigung Motor2', desc: 'Beschleunigung Motor2', type: 'number', unit: '', role: 'value'}); createState('worxx.motor2_deceleration', {name: 'Verzögerung Motor2', desc: 'Verzögerung Motor2', type: 'number', unit: '', role: 'value'}); createState('worxx.motor2_fault', {name: 'Fehler Motor2', desc: 'Fehler Motor2', type: 'boolean', unit: '', role: 'value'}); ! createState('worxx.motor3_Speed', {name: 'Geschwindigket Motor3', desc: 'Geschwindigket Motor3', type: 'number', unit: '', role: 'value'}); createState('worxx.motor3_maxSpeed', {name: 'max Geschwindigket Motor3', desc: 'max Geschwindigket Motor3', type: 'number', unit: '', role: 'value'}); createState('worxx.motor3_SpeedReduction', {name: 'Reduzierung Motor3', desc: 'Reduzierung Motor3', type: 'number', unit: '', role: 'value'}); createState('worxx.motor3_rpm', {name: 'RPM Motor3', desc: 'RPM Motor3', type: 'number', unit: 'U/Min', role: 'value'}); createState('worxx.motor3_feedbackError', {name: 'Feedbackerror Motor3', desc: 'Feedbackerror Motor3', type: 'number', unit: '', role: 'value'}); createState('worxx.motor3_acceleration', {name: 'Beschleunigung Motor3', desc: 'Beschleunigung Motor3', type: 'number', unit: '', role: 'value'}); createState('worxx.motor3_deceleration', {name: 'Verzögerung Motor3', desc: 'Verzögerung Motor3', type: 'number', unit: '', role: 'value'}); createState('worxx.motor3_fault', {name: 'Fehler Motor3', desc: 'Fehler Motor3', type: 'boolean', unit: '', role: 'value'}); ! const landroid_state = 'worxx.landroid_state'; const landroid_boardTemperature = 'worxx.landroid_boardTemperature'; const landroid_distance = 'worxx.landroid_distance'; const landroid_wheelLeftDistance = 'worxx.landroid_wheelLeftDistance'; const landroid_wheelRightDistance = 'worxx.landroid_wheelRightDistance'; const landroid_angle = 'worxx.landroid_angle'; const landroid_rainSensor = 'worxx.landroid_rainSensor'; const battery_percentage = 'worxx.battery_percentage'; const battery_voltage = 'worxx.battery_voltage'; const battery_temperature = 'worxx.battery_temperature'; const battery_ntcResistance = 'worxx.battery_ntcResistance'; const batterycharger_state = 'worxx.batterycharger_state'; const batterycharger_chargeCurrent = 'worxx.batterycharger_chargeCurrent'; ! const motor1_Speed = 'worxx.motor1_Speed'; const motor1_maxSpeed = 'worxx.motor1_maxSpeed'; const motor1_SpeedReduction = 'worxx.motor1_SpeedReduction'; const motor1_rpm = 'worxx.motor1_rpm'; const motor1_feedbackError = 'worxx.motor1_feedbackError'; const motor1_acceleration = 'worxx.motor1_acceleration'; const motor1_deceleration = 'worxx.motor1_deceleration'; const motor1_fault = 'worxx.motor1_fault'; ! const motor2_Speed = 'worxx.motor2_Speed'; const motor2_maxSpeed = 'worxx.motor2_maxSpeed'; const motor2_SpeedReduction = 'worxx.motor2_SpeedReduction'; const motor2_rpm = 'worxx.motor2_rpm'; const motor2_feedbackError = 'worxx.motor2_feedbackError'; const motor2_acceleration = 'worxx.motor2_acceleration'; const motor2_deceleration = 'worxx.motor2_deceleration'; const motor2_fault = 'worxx.motor2_fault'; ! const motor3_Speed = 'worxx.motor3_Speed'; const motor3_maxSpeed = 'worxx.motor3_maxSpeed'; const motor3_SpeedReduction = 'worxx.motor3_SpeedReduction'; const motor3_rpm = 'worxx.motor3_rpm'; const motor3_feedbackError = 'worxx.motor3_feedbackError'; const motor3_acceleration = 'worxx.motor3_acceleration'; const motor3_deceleration = 'worxx.motor3_deceleration'; const motor3_fault = 'worxx.motor3_fault'; ! //Funktion aufrufen ! var request = require('request'); ! Intervall = setInterval(SendRequest,10000); ! function SendRequest(){ ! var options = { url: 'http://admin:xxxx@192.168.178.64/jsonDebug.cgi' }; request(options,function (error, response, body){ if (!error){ //console.log(body); var data = JSON.parse(body); var arr_motor = data.landroid.motor; var arr_accell_gravity = data.landroid.accelerometer.gravity; var arr_accell_angle = data.landroid.accelerometer.angle; var arr_gyro_angularSpeed = data.landroid.gyroscope.angularSpeed; var arr_gyro_angle = data.landroid.gyroscope.angle; //console.warn(arr_gravity[0]); //console.warn(data.landroid.accelerometer.gravity); //Datenpunkte setzen ! setState(landroid_state,(data.landroid.state)); setState(landroid_boardTemperature,(data.landroid.boardTemperature)); setState(landroid_distance,(data.landroid.distance)); setState(landroid_wheelLeftDistance,(data.landroid.wheelLeftDistance)); setState(landroid_wheelRightDistance,(data.landroid.wheelRightDistance)); setState(landroid_angle,(data.landroid.angle)); setState(landroid_rainSensor,(data.landroid.rainSensor)); setState(battery_percentage,(data.landroid.battery.percentage)); setState(battery_voltage,(data.landroid.battery.voltage)); setState(battery_temperature,(data.landroid.battery.temperature)); setState(battery_ntcResistance,(data.landroid.battery.ntcResistance)); setState(batterycharger_state,(data.landroid.batteryCharger.state)); setState(batterycharger_chargeCurrent,(data.landroid.batteryCharger.chargeCurrent)); setState(motor1_Speed,(arr_motor[0].speed)); setState(motor1_maxSpeed,(arr_motor[0].maxSpeed)); setState(motor1_SpeedReduction,(arr_motor[0].speedReduction)); setState(motor1_rpm,(arr_motor[0].rpm)); setState(motor1_feedbackError,(arr_motor[0].feedbackError)); setState(motor1_acceleration,(arr_motor[0].acceleration)); setState(motor1_deceleration,(arr_motor[0].deceleration)); setState(motor1_fault,(arr_motor[0].fault)); setState(motor2_Speed,(arr_motor[1].speed)); setState(motor2_maxSpeed,(arr_motor[1].maxSpeed)); setState(motor2_SpeedReduction,(arr_motor[1].speedReduction)); setState(motor2_rpm,(arr_motor[1].rpm)); setState(motor2_feedbackError,(arr_motor[1].feedbackError)); setState(motor2_acceleration,(arr_motor[1].acceleration)); setState(motor2_deceleration,(arr_motor[1].deceleration)); setState(motor2_fault,(arr_motor[1].fault)); setState(motor3_Speed,(arr_motor[2].speed)); setState(motor3_maxSpeed,(arr_motor[2].maxSpeed)); setState(motor3_SpeedReduction,(arr_motor[2].speedReduction)); setState(motor3_rpm,(arr_motor[2].rpm)); setState(motor3_feedbackError,(arr_motor[2].feedbackError)); setState(motor3_acceleration,(arr_motor[2].acceleration)); setState(motor3_deceleration,(arr_motor[2].deceleration)); setState(motor3_fault,(arr_motor[2].fault)); } else{ console.error(error);} }); ! }//Ende ! ```` Gruß Matze
  • (gelöst) Blocky für Fenstersensor (MAX!) und Thermostat (Homematic)

    Moved
    18
    1
    0 Votes
    18 Posts
    2k Views
    M
    Jetzt funktioniert es so wie gewünscht. Vielen Dank an @paul53. Es gab wohl irgendwie noch Stress mit der Variable "value", die wurde nicht ausgewertet oder passte nicht zu dem Block, jedenfalls wurden die Statusänderungen des Fenstersensors nicht vom Skript erkannt. Nachdem ich den kleinen Block entfernt und neu angelegt hatte da fluppte es wie es soll. Daher für alle die das gerne nachbauen wollen: ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"> ! <block type="on_ext" id="E;zsSlF|Wq:}1G^F;0q" x="63" y="63"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="(sxO/REdna0^OVt6DeUp"><field name="oid">maxcube.0.devices.contact_0d5c46.opened</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="+gUM?%8ubybNMqlhjD_*"><mutation else="1"></mutation> ! <value name="IF0"><block type="variables_get" id="3ZAY1A0v)_!p9D(-ZYW-"><field name="VAR">value</field></block></value> ! <statement name="DO0"><block type="control" id="a*0{4@}gVK[9|4OSx0P+"><mutation delay_input="false"></mutation> ! <field name="OID">hm-rpc.0.OEQ0664559.4.MANU_MODE</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="math_number" id="g(u(_F0I6F7:VB1,J*It"><field name="NUM">12</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="u);Y.B7MQpHh,#z_TX/,"><mutation delay_input="false"></mutation> ! <field name="OID">hm-rpc.0.OEQ0664559.4.AUTO_MODE</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="8iM,,OYn-Lvc(HuDAS09"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> ! <next><block type="on_ext" id="vfMUu2c^cxVBgv4YO%Ie"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="hILF9#alzhQgZ{!X]]F"><field name="oid">hm-rpc.0.OEQ0664559.4.CONTROL_MODE</field></shadow></value> ! <statement name="STATEMENT"><block type="debug" id="o-;;Q|%W2pFWqC~IXEQ@"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="fs3T.rGHz`HkSR(oL_#z"><field name="TEXT">Modeänderung</field></shadow> ! <block type="text_join" id="kWRnmjATh4TKlM;lkcCN"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="j.s6K?|f!g1cYODN[D|E"><field name="TEXT">HKT Mode:</field></block></value> ! <value name="ADD1"><block type="variables_get" id="s};j7yMuZGuOlcB[rEaD"><field name="VAR">value</field></block></value></block></value></block></statement></block></next></block></xml> [image: 4941_bildschirmfoto_2018-01-23_um_13.51.48.png]
  • 0 Votes
    3 Posts
    417 Views
    B
    Aaaaaah. Vielen Dank werde es gleich mal testen.
  • Zustandsabfragen innerhalb vom Scripten wechseln nicht

    Moved
    2
    0 Votes
    2 Posts
    272 Views
    arteckA
    @cash: Wenn nun per schedule die Funktion _Wecken ausgeführt wird zieht er sich jedesmal vorher die Variablen Definitionen die oberhalb der Funktion sind? ` natürlich nicht warum auch.. das ist nur die Varaiblendeklaration. wenn du willst das diese immer gefüllt werden wen die funktion gestartet wird dann must du das so machen. Am anfang des Scriptes Deklarieren und dann demäntsprechend füllen. var _Weckzeit; var _Arbeitstag; var _Anwesenheit; var _Krank; var _Schranklicht; var _Sonos_Schlafzimmer; var _Musikwecker; var _Sonos_Play; function _Wecken() { _Weckzeit = getState("hm-rega.0.21758").val; _Arbeitstag = getState("Systemvariable.0.Arbeitstag").val; _Anwesenheit = getState("hm-rega.0.2185"/*SV Anwesenheit*/).val; _Krank = getState("hm-rega.0.2426"/*SV Krank zu Hause*/).val; _Schranklicht = getState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/).val; _Sonos_Schlafzimmer = getState("sonos.0.root.192_168_178_47.coordinator").val; _Musikwecker = getState("Systemvariable.0.Musikwecker").val; _Sonos_Play = getState("sonos.0.root.192_168_178_47.state").val; if ((_Anwesenheit) && (!_Krank)) { if (_Arbeitstag && _Wecker == 1) { if (!_Schranklicht) { setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, true); } } setTimeout(function() { if (_Schranklicht) { setState("hm-rpc.0.LEQ0928629.1.STATE"/*Schlafzimmer Schranklicht:1.STATE*/, false); } }, 25 * 60000); // 25 Minuten Verzögerung
  • Javascript Schleife über mehrere Datenpunkte

    Moved
    3
    0 Votes
    3 Posts
    490 Views
    E
    Als Beispiel _id: milight-smart-light.0.Leselampe.fullColor-3.hue" und id": "milight-smart-light.0.Flurlicht.fullColor-1.hue" Im Prinzip möchte ich am Ende ein Script haben, welches bei einer Änderung eines der Datenpunkte auf einen bestimmten Wert, diesem einen anderen Wert setzt. Und das ohne, dass ich 20 Datenpunt im script eintragen muss, die sich zur Zeit auch noch laufen ändern. :-) LG Andreas

714

Online

32.6k

Users

82.2k

Topics

1.3m

Posts