NEWS
Yahka Rolläden mit KNX
-
Sau stark!
Ich versuche es mal morgen einzubauen.
Ich gebe info.
Einbinden muss ich aber immer die JavaScript objecte oder? `
fuer mal bitten diesen code aus, was sagt dein log:
`// Read all enums related to enum.functions functions = getEnums('functions'); // Loop on all values and store members of function "rolladen" to variable for (var i in functions){ if (functions[i].name == 'rolladen'){ var rolladen = functions[i].members; log(rolladen) } }` [/i][/i]
-
wenn ich es global ausführe kommt ziemlich das gleiche wie eben.
wenn ich es nicht global ausführe kommt das hier
` > javascript.0 2017-11-07 18:01:59.633 warn unsubscribe: empty name
javascript.0 2017-11-07 18:01:59.630 info Stop script script.js.Rolläden.Skript1
javascript.0 2017-11-07 18:01:54.337 info script.js.Rolläden.Skript1: registered 2 subscriptions and 0 schedules
javascript.0 2017-11-07 18:01:54.335 warn Object "' undefined '" does not exist
javascript.0 2017-11-07 18:01:54.165 info Start javascript script.js.Rolläden.Skript1 `
-
Anbei 2 Bilder von dem enum
2486_bildschirmfoto_2017-11-07_um_18.04.00.png
2486_bildschirmfoto_2017-11-07_um_18.03.51.png -
Führe Mal bitte den code aus 2 Post zurück
–-----------------------
Send from mobile device
-
javascript.0 2017-11-07 18:16:41.242 info script.js.Rolläden.Schlaf2_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.241 info script.js.Rolläden.Schlaf2_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.241 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.241 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.241 info Start javascript script.js.Rolläden.Schlaf2_Status javascript.0 2017-11-07 18:16:41.240 info script.js.Rolläden.Schlaf1_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.240 info script.js.Rolläden.Schlaf1_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.240 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.240 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.239 info Start javascript script.js.Rolläden.Schlaf1_Pos javascript.0 2017-11-07 18:16:41.239 info script.js.Rolläden.Kind_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.239 info script.js.Rolläden.Kind_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.239 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.238 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.238 info Start javascript script.js.Rolläden.Kind_Pos javascript.0 2017-11-07 18:16:41.238 info script.js.Rolläden.Kind_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.237 info script.js.Rolläden.Kind_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.237 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.236 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.235 info Start javascript script.js.Rolläden.Kind_Status javascript.0 2017-11-07 18:16:41.235 info script.js.Rolläden.Schlaf2_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.235 info script.js.Rolläden.Schlaf2_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.235 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.234 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.234 info Start javascript script.js.Rolläden.Schlaf2_Pos javascript.0 2017-11-07 18:16:41.234 info script.js.Rolläden.Schlaf1_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.234 info script.js.Rolläden.Schlaf1_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.233 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.233 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.233 info Start javascript script.js.Rolläden.Schlaf1_Status javascript.0 2017-11-07 18:16:41.232 info script.js.Rolläden.Büro_OG_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.232 info script.js.Rolläden.Büro_OG_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.232 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.231 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.231 info Start javascript script.js.Rolläden.Büro_OG_Status javascript.0 2017-11-07 18:16:41.231 info script.js.Rolläden.Büro_OG_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.230 info script.js.Rolläden.Büro_OG_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.228 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.228 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.227 info Start javascript script.js.Rolläden.Büro_OG_Pos javascript.0 2017-11-07 18:16:41.227 info script.js.Rolläden.Essen_Pos(4): registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.227 info script.js.Rolläden.Essen_Pos(4): ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.226 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.226 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.226 info Start javascript script.js.Rolläden.Essen_Pos(4) javascript.0 2017-11-07 18:16:41.225 info script.js.Rolläden.Gaderobe_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.225 info script.js.Rolläden.Gaderobe_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.225 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.224 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.224 info Start javascript script.js.Rolläden.Gaderobe_Pos javascript.0 2017-11-07 18:16:41.218 info script.js.Rolläden.WZ_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.218 info script.js.Rolläden.WZ_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.217 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.216 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.216 info Start javascript script.js.Rolläden.WZ_Pos javascript.0 2017-11-07 18:16:41.215 info script.js.Rolläden.Gaderobe_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.215 info script.js.Rolläden.Gaderobe_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.215 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.214 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.214 info Start javascript script.js.Rolläden.Gaderobe_Status javascript.0 2017-11-07 18:16:41.213 info script.js.Rolläden.WZ_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.213 info script.js.Rolläden.WZ_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.212 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.212 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.211 info Start javascript script.js.Rolläden.WZ_Status javascript.0 2017-11-07 18:16:41.211 info script.js.Rolläden.WZ_Tür_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.210 info script.js.Rolläden.WZ_Tür_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.199 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.199 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.199 info Start javascript script.js.Rolläden.WZ_Tür_Status javascript.0 2017-11-07 18:16:41.198 info script.js.Rolläden.WZ_Tür_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.198 info script.js.Rolläden.WZ_Tür_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.198 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.198 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.197 info Start javascript script.js.Rolläden.WZ_Tür_Pos javascript.0 2017-11-07 18:16:41.197 info script.js.Rolläden.Essen_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.197 info script.js.Rolläden.Essen_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.196 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.195 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.195 info Start javascript script.js.Rolläden.Essen_Status javascript.0 2017-11-07 18:16:41.194 info script.js.Rolläden.Küche_Status: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.192 info script.js.Rolläden.Küche_Status: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.191 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.191 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.191 info Start javascript script.js.Rolläden.Küche_Status javascript.0 2017-11-07 18:16:41.190 info script.js.Rolläden.Küche_Pos: registered 4 subscriptions and 0 schedules javascript.0 2017-11-07 18:16:41.190 info script.js.Rolläden.Küche_Pos: ObjectId = ' undefined ', Wert = null javascript.0 2017-11-07 18:16:41.190 warn State '' undefined '' not found javascript.0 2017-11-07 18:16:41.190 warn Object '' undefined '' does not exist javascript.0 2017-11-07 18:16:41.189 info Start javascript script.js.Rolläden.Küche_Pos javascript.0 2017-11-07 18:16:37.949 info Start javascript script.js.Rolläden.Küche_Pos javascript.0 2017-11-07 18:16:37.882 info received all objects javascript.0 2017-11-07 18:16:37.219 info received all states javascript.0 2017-11-07 18:16:36.445 info requesting all objects javascript.0 2017-11-07 18:16:36.442 info requesting all states javascript.0 2017-11-07 18:16:36.428 info starting. Version 3.2.6 in /opt/iobroker/node_modules/iobroker.javascript, node: v6.11.1 javascript.0 2017-11-07 18:16:36.361 info States connected to redis 127.0.0.1:6379
geändert: Code in Code-tags; Homoran (Mod)
-
-Javascript Adapter neu gestartet nachdem du die enum erstellt und gefüllt hast?
–-----------------------
Send from mobile device
-
Nein…. sorry....
ABER.... auch nach java adapter neustart, ändert sich nichts am LOG.
-
Nein…. sorry....
ABER.... auch nach java adapter neustart, ändert sich nichts am LOG. `
Hast ne PN von mir
–-----------------------
Send from mobile device
-
da war noch ein kleiner fehler im script, probier mal version 0.8
`//****************************************** //*****************Dutchman***************** //****revert values to use KNX with yahka*** //*******************V 0.8****************** //****************************************** //****************************************** // Read all enums related to enum.functions functions = getEnums('functions'); // Loop on all values and store members of function "rolladen" to variable for (var i in functions){ if (functions[i].name == 'rolladen'){ var rolladen = functions[i].members; } } //Seperate values in variable "rolladen" to seperate devices //and create new objects reflecting all current devies and states for "rolladen" in javascript tree str = rolladen + ' '; var str_array = str.split(','); for(i = 0; i < str_array.length; i++) { str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, ""); try{ //retrieve device name for all found devices, replace empty spaces in name by _ var objnameT = getObject(str_array[i]).common.name; var objname = objnameT.split(' ').join('_'); var objvalue = 100 - getState(str_array[i]).val; var revName = objname + '_reversed'; //Check if object already exist, otherwise create and sync current value if (typeof(getIdByName(revName)) === 'undefined') { createState("rolladen_reversed_values." + objname, objvalue, { name: revName, read: true, write: true, min: 0, max: 100, type: 'number', role: 'level.hight', unit: "%", linkorigin: str_array[i] }); log('New object "' + revName + '" created within "rolladen_reversed_values"'); } } catch(e){} } // Trigger on value change in reverse values and syncronise to origin on({id: /^javascript.1.rolladen_reversed_values\./, change: "ne"}, function (obj) { //reverse value from Yahka to KNX logic var newvalue = 100 - obj.state.val; //verify is calculated value is different, if yes update Yahka value to reversed object otherwise do nothing if (newvalue !== getState(obj.common.linkorigin).val){ setState (obj.common.linkorigin, newvalue); console.debug('value change based on Yahka trigger, received value = ' + obj.state.val + ' ,calculated to = ' + newvalue); } }); // Trigger on value change in origin values and syncronise to reverse values on({enumName: 'rolladen', change: "ne"}, function (obj) { //reverse value from KNX to Yahka logic var newvalue = 100 - obj.state.val; var objnameT = obj.common.name; var objname = objnameT.split(' ').join('_'); //verify is calculated value is different, if yes update KNX value to reversed object otherwise do nothing if (newvalue !== getState("rolladen_reversed_values." + objname).val){ setState("rolladen_reversed_values." + obj.common.name, newvalue, true); console.debug('value change based on KNX trigger, received value = ' + obj.state.val + ' ,calculated to = ' + newvalue); } });` [/i][/i][/i][/i][/i][/i][/i]
-
So dar waren noch ein par fehlelr drin, mit zusammenarbeit dan im 0.9 geloest.
Wen jemand interessiert ist hier das fertige script, gehen bestimmt sachen besser (tips wilkommen) aber es laeuft soweit
`//****************************************** //*****************Dutchman***************** //****revert values to use KNX with yahka*** //*******************V 0.9****************** //****************************************** //****************************************** // Read all enums related to enum.functions functions = getEnums('functions'); // Loop on all values and store members of function "rolladen" to variable for (var i in functions){ if (functions[i].name == 'rolladen'){ var rolladen = functions[i].members; } } //Seperate values in variable "rolladen" to seperate devices //and create new objects reflecting all current devies and states for "rolladen" in javascript tree str = rolladen + ' '; var str_array = str.split(','); for(i = 0; i < str_array.length; i++) { str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, ""); try{ //retrieve device name for all found devices, replace empty spaces in name by _ var objnameT = getObject(str_array[i]).common.name; var objname = objnameT.split(' ').join('_'); var objvalue = 100 - getState(str_array[i]).val; var revName = objname + '_reversed'; //Check if object already exist, otherwise create and sync current value if (typeof(getIdByName(revName)) === 'undefined') { createState("rolladen_reversed_values." + objname, objvalue, { name: revName, read: true, write: true, min: 0, max: 100, type: 'number', role: 'level.hight', unit: "%", linkorigin: str_array[i] }); log('New object "' + revName + '" created within "rolladen_reversed_values"'); } } catch(e){} } // Trigger on value change in reverse values and syncronise to origin on({id: /^javascript.0.rolladen_reversed_values\./, change: "ne"}, function (obj) { //reverse value from Yahka to KNX logic var newvalue = 100 - obj.state.val; //verify is calculated value is different, if yes update Yahka value to reversed object otherwise do nothing if (newvalue !== getState(obj.common.linkorigin).val){ log("object trigger reverses nach IF"); setState (obj.common.linkorigin, newvalue); console.debug('value change based on Yahka trigger, received value = ' + obj.state.val + ' ,calculated to = ' + newvalue); } }); // Trigger on value change in origin values and syncronise to reverse values on({enumName: 'rolladen', change: "ne"}, function (obj) { //reverse value from KNX to Yahka logic var newvalue = 100 - obj.state.val; var objnameT = obj.common.name; var objname = objnameT.split(' ').join('_'); //verify is calculated value is different, if yes update KNX value to reversed object otherwise do nothing if (newvalue !== getState("rolladen_reversed_values." + objname).val){ setState("rolladen_reversed_values." + objname, newvalue, true); console.debug('value change based on KNX trigger, received value = ' + obj.state.val + ' ,calculated to = ' + newvalue); } });` [/i][/i][/i][/i][/i][/i][/i]
-
Der Entwickler des Adapters hat soeben auf github die Nachricht erstellt das yahka dies zukünftig Standard Unterstützung.
Wer möchte kann bereits die github Version benutzen um zu testen
Danke an den Entwickler !