Skip to content

Skripten / Logik

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

16.5k Themen 213.2k Beiträge

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Themen
    49k Beiträge
    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 Themen
    79k Beiträge
    S
    @TT-Tom Vielen Dank für den Tip.
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Themen
    13k Beiträge
    S
    welche Palette hast du installiert, damit du den "AND" Baustein hast?
  • Backup der Skripte als zip

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    1k Aufrufe
    apollon77A
    bitte mal github issue anlegen
  • Node properties variable gestalten

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    542 Aufrufe
    T
    Super, danke sehr für die Antwort. LG Thomas
  • Rechnen mit Astrozeiten - Verständisfrage

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    500 Aufrufe
    Niemand hat geantwortet
  • Xiaomi Türkontakt - stündlicher Status

    Verschoben
    5
    1
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    eumatsE
    Ersetze mal die Variable state durch value.
  • Anzahl Tage bis Abfall

    Verschoben
    2
    2
    0 Stimmen
    2 Beiträge
    637 Aufrufe
    T
    Gibt hier diverse Skripte: http://forum.iobroker.net/viewtopic.php … 282#p92282
  • HM Thermostat: Wechsel Boost <-> Auto

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    997 Aufrufe
    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

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

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    628 Aufrufe
    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

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    668 Aufrufe
    Niemand hat geantwortet
  • States in beliebigem Adapter anstatt javascript.0 erzeugen

    Verschoben
    8
    0 Stimmen
    8 Beiträge
    876 Aufrufe
    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

    Verschoben
    17
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    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

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

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

    Verschoben
    7
    1
    0 Stimmen
    7 Beiträge
    952 Aufrufe
    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

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    310 Aufrufe
    Niemand hat geantwortet
  • Hilfe beim parsen / JSON / Landroid

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    733 Aufrufe
    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)

    Verschoben
    18
    1
    0 Stimmen
    18 Beiträge
    2k Aufrufe
    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]
  • [gelöst] Problem bei meinen ersten Schritten mit Blockly und Mi Vacuum

    Verschoben
    3
    1
    0 Stimmen
    3 Beiträge
    417 Aufrufe
    B
    Aaaaaah. Vielen Dank werde es gleich mal testen.
  • Zustandsabfragen innerhalb vom Scripten wechseln nicht

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    272 Aufrufe
    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

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    490 Aufrufe
    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

471

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge