Weiter zum Inhalt

Skripten / Logik

16.7k Themen 215.9k 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
    paul53P
    @maxclaudi [sagte]: Seriennummer physisch auf dem Gehäuse/Typenschild ablesbar ist? Ja.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    haus-automatisierungH
    Stell den Timer hoch. So hält deine "Sperre" doch nur 1 Sekunde. Und bei der Art von der Trigger (ist wahr) muss es keine Änderung geben. Auch ein erneutes Setzen auf true löst den Trigger wieder aus. Da Du eh Wert im falls prüfst, kannst Du auch auf wurde geändert stellen um das Problem zu umgehen.
  • Hilfe für Skripterstellung mit Node-RED

    964 13k
    964 Themen
    13k Beiträge
    A
    @OliverIO Für mich als ex. Elektroninstallateur ist es eben vielfach einfacher in einer Maske zu sehen was der Code eigentlich machen sollte, als in einem strukturierten Text. Wir verwenden bei uns im Job auch sehr viel strukturierte Text für Steuerungsfunktionen, aber das ist in der Regel eine andere Abteilung, ich bin nur zuständig, dass die Elektropläne korrekt und vollständig für alle sind. Klar, dass interesse an den Möglichkeiten ist schon lange geweckt, aber wie bei allem, wenn man das nicht oft macht, vergisst man sehr vieles wieder. Bei mir ist entstehen solche Dinge eben manchmal aus "dummen" Ideen, oder eben aus "herausforderungen" die man nicht direkt sucht. Ich arbeite mich jetzt mal rund um und schaue was da raus kommt. Nochmals herzlichen Dank Gruss Andi (aus der überhitzten Schweiz)
  • [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
    1k 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
    469 Aufrufe
    Niemand hat geantwortet
  • Hilfe beim parsen / JSON / Landroid

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    872 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
    530 Aufrufe
    B
    Aaaaaah. Vielen Dank werde es gleich mal testen.
  • Zustandsabfragen innerhalb vom Scripten wechseln nicht

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    378 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
    665 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
  • USA Shutdown betrifft Nasa-Webseite und damit ISS-RSS-Skript

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    610 Aufrufe
    BBTownB
    ohne Worte :lol: :lol:
  • [Frage] Create state ausserhalb der Javascript Instanz möglich?

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    apollon77A
    Mache ich ebenso. neue Skripte kommen erstmal in die .1, andere in die .0. Aber am Ende wenn ich eins schiebe legen meine Skripte Ihre States selbst an. Ich muss nur ggf nötige Startwerte nochmal manuell setzen. Minimaler Aufwand
  • Taupunkt als berechneter Datapoint?

    Verschoben
    11
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    eric2905E
    Moin, @Fabian: Wenn ich keine CCU habe, dann interessieren mich die "Enums" also nicht? ` nun ja … Die enum.rooms und enum.function werden zwar automatisch durch die CCU (bzw. über den hm-rega) befüllt, aber Du kannst sie auch selber befüllen. Du könntest z.B. Nicht-Homematic-Geräte / -Datenpunkte manuell den Räumen und Gewerken zuordnen und dies dann z.B. in Scripten nutzen. Deswegen wird enum.rooms und enum.functions auch nicht automatisch durch den hm-rega bereinigt ... dann wären alle manuellen Eingaben weg. Gruß, Eric
  • Hilfe zur Ventilatorsteuerung

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    937 Aufrufe
    BBTownB
    Eine Fernbedienungstaste kennt ja nur einen Zustand: = gedrückt (true) Daher legst Du im CloudAdapter 5 SmartGeräte an: Stufe 1 Stufe 2 Stufe 3 Licht Ventilator Ventiltator (aus) Diese SmartGeräte haben als Datenpunkt jeweils deine angelernte Taste der Fernbedienung. "Alexa, schalte Stufe 1 ein" "Alexa, schalte Ventilator aus" Du kannst aber auch Einen Datenpunkt "Ventilator" anlegen und dort hinterlegst Du im Script für "an" bspw. "Stufe 1" und für "aus" "Ventilator aus". Dann kannst du auch mit "Alexa, schalte den Ventilator ein" die Stufe 1 anschalten und den Ventilator wie im obigen Beispiel ausschalten.
  • Löschen von ungewöhnlichen Objekten (\ im Namen)

    Verschoben
    8
    1
    0 Stimmen
    8 Beiträge
    2k Aufrufe
    L
    Danke, hat funktioniert ;)
  • [gelöst] clearTimeout -> Prüfen ob Timeout gesetzt ist?

    Verschoben
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    B
    Ah ok, dann setze ich das immer auf null. Hatte in der Docu geschaut und da war das Beispiel immer ohne auf null setzen.
  • Meldung: ReferenceError: require is not defined

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    837 Aufrufe
    Niemand hat geantwortet
  • [Gelöst] Blockly –> warum geht Lampe nicht aus?

    Verschoben
    29
    1
    0 Stimmen
    29 Beiträge
    4k Aufrufe
    C
    OK, dann geht das in die Richtung, die ich mir gedacht hab. :) Im ursprünglichen Fall wäre es mir wahrscheinlich egal, da es sich ja um max. 2 zusätzliche Vorgänge pro Tag handelt und die, zumal HUE, kaum Einfluss haben dürften. Aber klar, der Gedankengang dahinter ist mir jetzt klar.
  • VIS Script für HarmonyStatus

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    448 Aufrufe
    Niemand hat geantwortet
  • Blockly-Script funktioniert nicht

    Verschoben
    24
    1
    0 Stimmen
    24 Beiträge
    5k Aufrufe
    BBTownB
    bitte immer screenshots beifügen. Kommen wir zurück zu dem was Matzehbv angefragt an. was passiert denn wenn unter "Objekte" den Datenpunkt den Du im Script von "true" auf "false" setzen willst, dort von true auf false (und umgekehrt) setzt?
  • Blockly Hilfe, PV-Leistung

    Verschoben
    84
    0 Stimmen
    84 Beiträge
    16k Aufrufe
    rantanplanR
    @Micro1959: Verstehe, also muss ich für jeden State ein Skript machen, um darauf zu reagieren, falls sich etwas verändert. ` Ein Trigger kann auch mehrere States abfragen. Meinen Tipp in dem Forum Blockly Threads zu lesen hast Du übersehen? @Micro1959: Ich hatte ursprünglich gedacht, das möglicherweise ein globales sckript immer durchlaufen wird, in dem ich dann die States abfragen kann. ` ioBroker ist das globale Script. ;)
  • Überprüfen ob bereits eine Harmony aktivität gestartet ist.

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    428 Aufrufe
    Niemand hat geantwortet

388

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge