PK }T0I:[j[jindex.js(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports"], factory); } else if (typeof exports !== "undefined") { factory(exports); } else { var mod = { exports: {} }; factory(mod.exports); global.unknown = mod.exports; } })(this, function (_exports) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; !function (global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { module.exports = runtime; } return; } runtime = global.regeneratorRuntime = inModule ? module.exports || {} : {}; function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { prototype[method] = function (arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function (genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function (genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; runtime.awrap = function (arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function (unwrapped) { result.value = unwrapped; resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; runtime.async = function (innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; context.method = "throw"; context.arg = record.arg; } } }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (!info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { context[delegate.resultName] = info.value; context.next = delegate.nextLoc; if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { return info; } context.delegate = null; return ContinueSentinel; } defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; Gp[iteratorSymbol] = function () { return this; }; Gp.toString = function () { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function (skipTempReset) { this.prev = 0; this.next = 0; this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function () { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function (exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { context.method = "next"; context.arg = undefined; } return !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function (type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function (record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function (finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function (tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function (iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { this.arg = undefined; } return ContinueSentinel; } }; }(function () { return this || typeof self === "object" && self; }() || Function("return this")()); const disableBlocks = { debug: [], upload: [] }; const mustLoginBlocks = []; const triggerBlocksStatus = async (mode, app) => {}; class ExtImpl {} const extTranslationMap = { "zh": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "de": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "es": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "fr": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "id": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "ja": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "ja-jph": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "ko": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "pl": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "uk": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "zh-hant": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "nl": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "it": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "hr": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "ru": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "pt": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "fi": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "tr": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "tk": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }, "en": { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" } }; const codeSnippets = { arduinoc: {} }; const extGenerators = [{ lang: 'arduinoc', template: `// generated by mBlock5 for // codes make you happy //( include //) #include //( lib //) //({ this.$ALL_VARIABLES.length==0?'':this.$ALL_VARIABLES.map(v=>"float "+v+" = 0;").join('\\n') }//) //( declare //) void _delay(float seconds) { long endTime = millis() + seconds * 1000; while(millis() < endTime) _loop(); } //( void setup() { //( setup //) //( code //) } //) void _loop() { //( _loop //) } void loop() { _loop(); }`, splitor: { frame: { left: "//(", right: "//)" }, expression: { left: "/*{", right: "}*/" } }, reducers: [{ name: 'include', reduce: codes => { let codes1 = []; for (let code of codes) { let codeStr = ''; if (typeof code === 'string') { codeStr = code; } else if (typeof code === 'function') { codeStr = code(); } if (codes1.indexOf(codeStr) === -1) { codes1.push(codeStr); } } if (codes1.length === 0) { return undefined; } return codes1.map(code => { return '#include ' + code; }).join('\n') + '\n'; } }] }]; const extSources = { arduino: [] }; const extFacePanels = {}; const ExtHandler = { onLoad: function onLoad(app, target) { const that = this; if (!that.__workerSetupInstance) { that.__workerSetupInstance = that.workerSetup({ app }).then(() => { that.worker.remote.runExtension('onLoad', target.id); }); } }, onUnload: function onUnload(app) { this.__workerSetupInstance = null; this.worker.remote.runExtension('onUnload'); this.worker.dispose(); }, onConnect: function onConnect(app, device) { this.worker.remote.runExtension('onConnect', device.id); }, onDisconnect: function onDisconnect(app, device) { this.worker.remote.runExtension('onDisconnect', device.id); }, onStopAll: function onStopAll(app, device) { this.worker.remote.runExtension('onStopAll', device.id); }, beforeChangeUploadMode: function beforeChangeUploadMode(app, device) { return this.worker.remote.runExtension('beforeChangeUploadMode', device.id); }, beforeChangeDebugMode: function beforeChangeDebugMode(app, device) { return this.worker.remote.runExtension('beforeChangeDebugMode', device.id); }, afterChangeUploadMode: function afterChangeUploadMode(app, device) { this.worker.remote.runExtension('afterChangeUploadMode', device.id); }, afterChangeDebugMode: function afterChangeDebugMode(app, device) { this.worker.remote.runExtension('afterChangeDebugMode', device.id); }, onSelect: function onSelect(app, device) { if (!this.worker) { setTimeout(() => { this.onSelect(app, device); }, 200); return; } this.worker.remote.runExtension('onSelect', device.id); }, onUnselect: function onUnselect(app, device) { this.worker.remote.runExtension('onUnselect', device.id); }, beforeCodeUpload: function beforeCodeUpload(app, device) { this.worker.remote.runExtension('beforeCodeUpload', device.id); }, afterCodeUpload: function afterCodeUpload(app, device) { this.worker.remote.runExtension('afterCodeUpload', device.id); }, onRead: function onRead(app, device) { this.worker.remote.runExtension('onRead', device.id); }, beforeFirmwareUpdate: function beforeFirmwareUpdate(app, device) { this.worker.remote.runExtension('beforeFirmwareUpdate', device.id); }, afterFirmwareUpdate: function afterFirmwareUpdate(app, device) { this.worker.remote.runExtension('afterFirmwareUpdate', device.id); } }; class ExtVdrGroveWifiV2 { constructor() { this.checkFirmwareInForce = typeof checkFirmwareInForce !== 'undefined' ? checkFirmwareInForce : false; const handlerProxyUrl = window.MbApi.getExtResPath('vdr_grove_wifi_v2/handlerProxy.js', 'vdr_grove_wifi_v2'); const that = this; that.workerSetup = async function (exports) { that.worker = await window.__web_worker_rpc.create(handlerProxyUrl, exports).then(worker => { worker.CONFIG.TIMEOUT = 42000; worker.CONFIG.HEARTBEAT = 4200; worker.onFail = () => { that.worker = null; that.workerSetup(exports); const app = exports.app; if (app) { app.workspace.resetEvents(); } }; return worker; }); }; this.funcs = { 'BLOCK_1653778053438': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778053438', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778053703': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778053703', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778053907': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778053907', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653947300182': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653947300182', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778054314': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778054314', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778054501': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778054501', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778054769': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778054769', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653860366115': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653860366115', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778055189': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778055189', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778055407': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778055407', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778055607': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778055607', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778055799': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778055799', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } }, 'BLOCK_1653778056017': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock('BLOCK_1653778056017', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args)); } } }; } getInfo() { return { "id": "vdr_grove_wifi_v2", "targets": [{ "name": "arduino_mega2560", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } }, { "name": "arduino_uno", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } }], "codeTypes": ["arduinoc"], "version": "1.0.0", "platform": ["mblockpc"], "categories": [{ "name": "cate_4da4ebd6", "colors": ["#0079FF", "#006DE6", "#0061CC"], "menuIconURI": "", "blockIcon": { "type": "image", "width": 28, "height": 26, "src": window.MbApi.getExtResPath('vdr_grove_wifi_v2/imgs/a3b6c9c85ea546c4a58fc2eac47faea2.png', 'vdr_grove_wifi_v2') }, "blocks": [{ "opcode": "BLOCK_1653778053438", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1653778053438_PINDIGIT" } }, "branchCount": 0, "codes": { "arduinoc": { "sections": { "declare": `#define DEBUG true\r\n#define HTML_MAX_LENGTH 150\r\n\r\nSoftwareSerial ESP8285(/*{pinDigit}*/, /*{pinDigit}*/+1);\r\n\r\nchar WifiLocalIP[15];\r\nchar WifiDnsServerIP[15];\r\nchar WifiGatewayIP[15];\r\nchar WifiSubnetMask[15];\r\nString wifiRequest;\r\nbool wififirstParam=true;\r\nbool serveur_initialised=false;\r\nbool sending=false;\r\nbool WifiSucceed = false;\r\n\r\n//****************************************************\r\n// ESP8285 initialisation\r\n//****************************************************\r\n\r\nString ESP8285_getData(int timeout){\r\n String response = \"\";\r\n long int time = millis();\r\n bool waitReply = true;\r\n while (waitReply==true){\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n response+=c;\r\n }\r\n if (millis() >= (timeout + time)){\r\n waitReply=false;\r\n }\r\n }\r\n if(DEBUG) Serial.println(response);\r\n return response;\r\n}\r\n\r\nvoid ESP8285_getOk(int timeout){\r\n String response = \"\";\r\n long int time = millis();\r\n bool waitReply = true;\r\n if(DEBUG) Serial.print(\"waiting...\");\r\n while (waitReply==true){\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n response+=c;\r\n }\r\n if (millis() >= (timeout + time)){\r\n waitReply=false;\r\n }\r\n }\r\n WifiSucceed = (response.indexOf(\"OK\")>0);\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n}\r\n\r\nvoid ESP8285_initialise(){\r\n ESP8285.begin(9600);\r\n ESP8285.println(\"AT+RST\");\r\n ESP8285_getOk(2000);\r\n ESP8285.println(\"AT+CWMODE=3\");\r\n ESP8285_getOk(500);\r\n}\r\n\r\n//****************************************************\r\n// Gestion des IP\r\n//****************************************************\r\nvoid Atttrib_ESP8285_IP(bool ap){\r\n int ethMode=0;\r\n String cmd = \"\";\r\n if (ap){\r\n cmd=\"AT+CIPAP_CUR=\\\"\";\r\n }else{\r\n cmd=\"AT+CIPSTA_CUR=\\\"\";\r\n }\r\n if(strlen(WifiLocalIP)>0) {\r\n ethMode=1;\r\n if(strlen(WifiGatewayIP)>0) {\r\n ethMode=2;\r\n if(strlen(WifiSubnetMask)>0) {\r\n ethMode=3;\r\n }\r\n }\r\n }\r\n\r\n if(strlen(WifiDnsServerIP)>0){\r\n ESP8285.print(\"AT+CIPDNS_CUR=1,\\\"\");\r\n ESP8285.print(WifiDnsServerIP);\r\n ESP8285.println(\"\\\"\");\r\n ESP8285_getOk(1000);\r\n }\r\n \r\n switch (ethMode) {\r\n case 0:\r\n if (ap){\r\n ESP8285.println(\"AT+CWDHCP=1,2\");\r\n }else{\r\n ESP8285.println(\"AT+CWDHCP=1,1\");\r\n }\r\n break;\r\n case 1:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n case 2:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiGatewayIP);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n case 3:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiGatewayIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiSubnetMask);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n }\r\n ESP8285_getOk(3000);\r\n\r\n}`, "setup": `Serial.begin(9600);\r\nESP8285_initialise();` } } }, "handler": this.funcs.BLOCK_1653778053438 }, { "opcode": "BLOCK_1653778053703", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "IPmode": { "type": "fieldMenu", "defaultValue": "0", "menu": "BLOCK_1653778053703_IPMODE" }, "IP": { "type": "string", "defaultValue": "172.16.127.1" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `setWifiIP(/*{IP}*/,/*{IPmode}*/);`, "sections": { "declare": `\r\nvoid setWifiIP(String IP, int type){\r\n switch (type) {\r\n case 0:\r\n IP.toCharArray(WifiLocalIP, 16);\r\n break;\r\n case 1:\r\n IP.toCharArray(WifiGatewayIP, 16);\r\n break;\r\n case 2:\r\n IP.toCharArray(WifiSubnetMask, 16);\r\n break;\r\n case 3:\r\n IP.toCharArray(WifiDnsServerIP, 16);\r\n break;\r\n }\r\n}` } } }, "handler": this.funcs.BLOCK_1653778053703 }, { "opcode": "BLOCK_1653778053907", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "wifi_ssid": { "type": "string", "defaultValue": "" }, "wifi_pwd": { "type": "string", "defaultValue": "" }, "ap": { "type": "fieldMenu", "defaultValue": "false", "menu": "BLOCK_1653778053907_AP" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_initialise_wifi(/*{wifi_ssid}*/,/*{wifi_pwd}*/,/*{ap}*/);\r`, "sections": { "include": [""], "declare": `void ESP8285_initialise_wifi(const String ssid,const String pwd, bool ap){\r\n if(ap){\r\n ESP8285.print(\"AT+CWSAP=\\\"\");\r\n ESP8285.print(ssid);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(pwd);\r\n if(pwd.length()>0){\r\n ESP8285.println(\"\\\",1,3\");\r\n }else{\r\n ESP8285.println(\"\\\",1,0\"); //accès libre\r\n }\r\n ESP8285_getOk(4000);\r\n Atttrib_ESP8285_IP(true);\r\n }else{\r\n ESP8285.print(\"AT+CWJAP=\\\"\");\r\n ESP8285.print(ssid);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(pwd);\r\n ESP8285.println(\"\\\"\");\r\n ESP8285_getOk(8000);\r\n Atttrib_ESP8285_IP(false);\r\n }\r\n}`, "setup": "\r\n\r\n" } } }, "handler": this.funcs.BLOCK_1653778053907 }, { "opcode": "BLOCK_1653947300182", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `WifiSucceed` } }, "handler": this.funcs.BLOCK_1653947300182 }, { "opcode": "BLOCK_1653778054314", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": { "ap": { "type": "fieldMenu", "defaultValue": "false", "menu": "BLOCK_1653778053907_AP" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_GetIP(/*{ap}*/)`, "sections": { "declare": `String ESP8285_GetIP(bool ap){\r\n ESP8285.println(\"AT+CIFSR\");\r\n String reponse = ESP8285_getData(500);\r\n int pos1;\r\n if (ap){\r\n pos1 = reponse.indexOf(\"CIFSR:APIP,\\\"\")+12;\r\n }else{\r\n pos1 = reponse.indexOf(\"CIFSR:STAIP,\\\"\")+13;\r\n }\r\n if (pos1>0){\r\n int pos2 = reponse.indexOf(\"\\\"\",pos1);\r\n return reponse.substring(pos1,pos2);\r\n }\r\n}\r` } } }, "handler": this.funcs.BLOCK_1653778054314 }, { "opcode": "BLOCK_1653778054501", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "champ": { "type": "string", "defaultValue": "" }, "valeur": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiAddHttpData(String(/*{champ}*/),String(/*{valeur}*/));`, "sections": { "declare": `void wifiAddHttpData(String field, String value){\r\n if (wififirstParam){\r\n wififirstParam=false;\r\n wifiRequest=\"\";\r\n }else{\r\n wifiRequest=wifiRequest+\"&\";\r\n }\r\n wifiRequest=wifiRequest+field+\"=\"+value;\r\n}` } } }, "handler": this.funcs.BLOCK_1653778054501 }, { "opcode": "BLOCK_1653778054769", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "server": { "type": "string", "defaultValue": "api.thingspeak.com" }, "port": { "type": "number", "defaultValue": 80 }, "page": { "type": "string", "defaultValue": "/update" }, "POST": { "type": "fieldMenu", "defaultValue": "false", "menu": "BLOCK_1653778054769_POST" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_HttpRequest(/*{server}*/,/*{port}*/,/*{page}*/,/*{POST}*/);`, "sections": { "declare": `void ESP8285_HttpRequest(String server, int port, String page, bool post){\r\n\r\n ESP8285.println(\"AT+CIPMUX=0\");\r\n ESP8285_getOk(1000);\r\n \r\n ESP8285.print(\"AT+CIPSTART=\\\"TCP\\\",\\\"\");\r\n ESP8285.print(server);\r\n ESP8285.print(\"\\\",\");\r\n ESP8285.println(port);\r\n ESP8285_getOk(1000);\r\n \r\n wififirstParam=true;\r\n WifiSucceed = false;\r\n int len=0;\r\n if (post){\r\n len = page.length() + server.length() + wifiRequest.length() + String(wifiRequest.length()).length() + 137;\r\n }else{\r\n len = page.length() + server.length() + wifiRequest.length() + 70;\r\n }\r\n ESP8285.print(\"AT+CIPSEND=\");\r\n ESP8285.println(len);\r\n\r\n wififirstParam=true;\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"waiting...\");\r\n if(ESP8285.find(\">\")) {\r\n if (post){\r\n ESP8285.print(\"POST \");\r\n ESP8285.print(page);\r\n ESP8285.println(\" HTTP/1.1\");\r\n ESP8285.print(\"Host: \");\r\n ESP8285.println(server);\r\n ESP8285.print(\"Content-Length: \");\r\n ESP8285.println(wifiRequest.length());\r\n ESP8285.println(\"Content-Type: application/x-www-form-urlencoded\");\r\n ESP8285.println(\"Connection: close\");\r\n ESP8285.println(\"User-Agent: Arduino/1.0\");\r\n ESP8285.println();\r\n ESP8285.println(wifiRequest);\r\n }else{\r\n ESP8285.print(\"GET \");\r\n ESP8285.print(page);\r\n ESP8285.print(\"?\");\r\n ESP8285.print(wifiRequest);\r\n ESP8285.println(\" HTTP/1.1\");\r\n ESP8285.print(\"Host: \");\r\n ESP8285.println(server);\r\n ESP8285.println(\"Connection: close\");\r\n ESP8285.println(\"User-Agent: Arduino/1.0\");\r\n ESP8285.println();\r\n }\r\n if(ESP8285.find(\"SEND OK\")){\r\n if(DEBUG) Serial.println(\"OK\");\r\n ESP8285.println(\"AT+CIPCLOSE\");\r\n ESP8285_getOk(1000);\r\n WifiSucceed = true;\r\n }\r\n }\r\n}\r` } } }, "handler": this.funcs.BLOCK_1653778054769 }, { "opcode": "BLOCK_1653860366115", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "port": { "type": "number", "defaultValue": 80 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_server_initialise(/*{port}*/);`, "sections": { "declare": `void ESP8285_server_initialise(int port){\r\n ESP8285.println(\"AT+CIPMUX=1\");\r\n ESP8285_getOk(1000);\r\n ESP8285.print(\"AT+CIPSERVER=1,\");\r\n ESP8285.println(port);\r\n ESP8285_getOk(4000);\r\n}` } } }, "handler": this.funcs.BLOCK_1653860366115 }, { "opcode": "BLOCK_1653778055189", "blockType": "conditional", "checkboxInFlyout": false, "gap": 12, "arguments": { "titre": { "type": "string", "defaultValue": "ma page" }, "refresh": { "type": "fieldMenu", "defaultValue": "0", "menu": "BLOCK_1653778055189_REFRESH" } }, "branchCount": 1, "codes": { "arduinoc": { "code": `while(1){\r\n if(ESP8285.available()){ //\r\n if (ESP8285.find(\"+IPD,\")){\r\n delay(1000);\r\n int connectionId = ESP8285.read()-48;\r\n if (!sending){\r\n sending=true;\r\n\r\n wifiRequest=\"\";\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n wifiRequest+=c;\r\n }\r\n _loop();\r\n wifiRequest=\"\";\r\n\r\n int len=0;\r\n len = String(\"ma page\").length() + 248;\r\n if(/*{refresh}*/>0) len = len + 11 + String(5).length();\r\n ESP8285_SrvSendCmd(connectionId,len);\r\n\r\n if(DEBUG) Serial.print(\"envoyer...\");\r\n ESP8285.print(\"HTTP/1.1 400 OK\\r\\n\");\r\n if(/*{refresh}*/>0){\r\n ESP8285.print(\"Refresh: \");\r\n ESP8285.println(String(/*{refresh}*/));\r\n }\r\n ESP8285.print(\"Content-Type: text/html\\r\\n\\r\\n\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"ma page\");\r\n ESP8285.print(\"\");\r\n WifiSucceed=(ESP8285.find(\"SEND OK\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n\r\n /*{$BRANCH1}*/ \r\n\r\n wifiRequest += \"\";\r\n ESP8285_SendHtml(connectionId,true);\r\n wifiRequest=\"\";\r\n\r\n ESP8285.print(\"AT+CIPCLOSE=\");\r\n ESP8285.println(connectionId);\r\n ESP8285_getOk(200);\r\n\r\n sending=false;\r\n }\r\n }\r\n } \r\n} \r\ndelay (100);`, "sections": { "declare": `void ESP8285_SrvSendCmd(int connectionId, long len){\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"sending...\");\r\n ESP8285.print(\"AT+CIPSEND=\");\r\n ESP8285.print(connectionId);\r\n ESP8285.print(\",\");\r\n ESP8285.println(len);\r\n WifiSucceed=(ESP8285.find(\">\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n}\r\n\r\nvoid ESP8285_SendHtml(int connectionId, bool force){\r\n if(wifiRequest.length()>HTML_MAX_LENGTH or force){\r\n ESP8285_SrvSendCmd(connectionId,wifiRequest.length());\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"envoyer...\");\r\n ESP8285.print(wifiRequest);\r\n wifiRequest=\"\";\r\n WifiSucceed=(ESP8285.find(\"SEND OK\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n }\r\n}\r` } } }, "handler": this.funcs.BLOCK_1653778055189 }, { "opcode": "BLOCK_1653778055407", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "texte": { "type": "string", "defaultValue": "" }, "style": { "type": "fieldMenu", "defaultValue": "\"p\"", "menu": "BLOCK_1653778055407_STYLE" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiRequest += \"<\";\r\nwifiRequest += /*{style}*/;\r\nwifiRequest += \">\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);` } }, "handler": this.funcs.BLOCK_1653778055407 }, { "opcode": "BLOCK_1653778055607", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiRequest += \"
\";` } }, "handler": this.funcs.BLOCK_1653778055607 }, { "opcode": "BLOCK_1653778055799", "blockType": "conditional", "checkboxInFlyout": false, "gap": 12, "arguments": { "texte": { "type": "string", "defaultValue": "" }, "action": { "type": "string", "defaultValue": "" } }, "branchCount": 1, "codes": { "arduinoc": { "code": `wifiRequest += \"\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);`, "sections": { "_loop": `if (wifiRequest.indexOf(\"?\"+String(/*{action}*/)) >0){\r\n /*{$BRANCH1}*/ \r\n}` } } }, "handler": this.funcs.BLOCK_1653778055799 }, { "opcode": "BLOCK_1653778056017", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "texte": { "type": "string", "defaultValue": "" }, "url": { "type": "string", "defaultValue": "http://" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiRequest += \"\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);` } }, "handler": this.funcs.BLOCK_1653778056017 }], "menus": { "BLOCK_1653778053438_PINDIGIT": [{ "text": "BLOCK_1653778053438_PINDIGIT_0", "value": "2" }, { "text": "BLOCK_1653778053438_PINDIGIT_1", "value": "3" }, { "text": "BLOCK_1653778053438_PINDIGIT_2", "value": "4" }, { "text": "BLOCK_1653778053438_PINDIGIT_3", "value": "5" }, { "text": "BLOCK_1653778053438_PINDIGIT_4", "value": "6" }, { "text": "BLOCK_1653778053438_PINDIGIT_5", "value": "7" }, { "text": "BLOCK_1653778053438_PINDIGIT_6", "value": "8" }], "BLOCK_1653778053703_IPMODE": [{ "text": "BLOCK_1653778053703_IPMODE_0", "value": "0" }, { "text": "BLOCK_1653778053703_IPMODE_1", "value": "1" }, { "text": "BLOCK_1653778053703_IPMODE_2", "value": "2" }, { "text": "BLOCK_1653778053703_IPMODE_3", "value": "3" }], "BLOCK_1653778053907_AP": [{ "text": "BLOCK_1653778053907_AP_0", "value": "false" }, { "text": "BLOCK_1653778053907_AP_1", "value": "true" }], "BLOCK_1653778054769_POST": [{ "text": "BLOCK_1653778054769_POST_0", "value": "false" }, { "text": "BLOCK_1653778054769_POST_1", "value": "true" }], "BLOCK_1653778055189_REFRESH": [{ "text": "BLOCK_1653778055189_REFRESH_0", "value": "0" }, { "text": "BLOCK_1653778055189_REFRESH_1", "value": "5" }, { "text": "BLOCK_1653778055189_REFRESH_2", "value": "10" }, { "text": "BLOCK_1653778055189_REFRESH_3", "value": "30" }], "BLOCK_1653778055407_STYLE": [{ "text": "BLOCK_1653778055407_STYLE_0", "value": "\"p\"" }, { "text": "BLOCK_1653778055407_STYLE_1", "value": "\"H1\"" }, { "text": "BLOCK_1653778055407_STYLE_2", "value": "\"H2\"" }] } }], "generators": extGenerators, "translationMap": extTranslationMap, "snippets": codeSnippets, "generatorStartBlocks": [], "feature": ["worker"], "mustLoginBlocks": [], "disabledOffline": [], "disabledOnline": [] }; } getHandler() { if (typeof ExtHandler === 'object') { return ExtHandler; } else if (typeof ExtHandler === 'function') { return new ExtHandler(); } } } var _default = ExtVdrGroveWifiV2; _exports.default = _default; });PK }Tvq55handlerProxy.js"use strict";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){return void reject(error)}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}var gen=fn.apply(self,args);_next(void 0)})}}function _instanceof(left,right){return null!=right&&"undefined"!=typeof Symbol&&right[Symbol.hasInstance]?!!right[Symbol.hasInstance](left):left instanceof right}function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}self.rpc.CONFIG.TIMEOUT=42e3,self.rpc.CONFIG.HEARTBEAT=4200;var __context={app:self.rpc.remote.app,getDevice:function(deviceId){return new Proxy({},{get:function get(target,name){return"id"==name?deviceId:function(){for(var runDevice=__context.app.runDevice,_len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return runDevice.apply(void 0,[deviceId,name].concat(args))}}})}};!function(global){"use strict";function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&_instanceof(outerFn.prototype,Generator)?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return generator._invoke=makeInvokeMethod(innerFn,self,context),generator}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)}}catch(err){return{type:"throw",arg:err}}}function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){prototype[method]=function(arg){return this._invoke(method,arg)}})}function AsyncIterator(generator){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"===record.type)reject(record.arg);else{var result=record.arg,value=result.value;return value&&"object"===_typeof(value)&&hasOwn.call(value,"__await")?Promise.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject)},function(err){invoke("throw",err,resolve,reject)}):Promise.resolve(value).then(function(unwrapped){result.value=unwrapped,resolve(result)},function(error){return invoke("throw",error,resolve,reject)})}}function enqueue(method,arg){function callInvokeWithMethodAndArg(){return new Promise(function(resolve,reject){invoke(method,arg,resolve,reject)})}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}var previousPromise;this._invoke=enqueue}function makeInvokeMethod(innerFn,self,context){var state="suspendedStart";return function(method,arg){if(state==="executing")throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult()}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg)}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done}}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg)}}}function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(void 0===method){if(context.delegate=null,"throw"===context.method){if(delegate.iterator.return&&(context.method="return",context.arg=void 0,maybeInvokeDelegate(delegate,context),"throw"===context.method))return ContinueSentinel;context.method="throw",context.arg=new TypeError("The iterator does not provide a 'throw' method")}return ContinueSentinel}var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;if(!info)return context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel;if(info.done)context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=void 0);else return info;return context.delegate=null,ContinueSentinel}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry)}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0)}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { return handle("end") } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true) } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc) } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true) } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc) } } else { throw new Error("try statement without catch or finally") } } } }, abrupt: function(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { finallyEntry = null } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel } return this.complete(record) }, complete: function(record, afterLoc) { if (record.type === "throw") { throw record.arg } if (record.type === "break" || record.type === "continue") { this.next = record.arg } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end" } else if (record.type === "normal" && afterLoc) { this.next = afterLoc } return ContinueSentinel }, finish: function(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel } } }, "catch": function(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry) } return thrown } } throw new Error("illegal catch attempt") }, delegateYield: function(iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { this.arg = undefined } return ContinueSentinel } } }(function() { return this || typeof self === "object" && self }() || Function("return this")()); // enter your javascript code here const disableBlocks = { debug: [], upload: [] }; const mustLoginBlocks = []; const triggerBlocksStatus = async (mode, app) => {} class ExtVdrGroveWifiV2 { constructor() { this.funcs = { 'BLOCK_1653778053438': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778053438', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778053703': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778053703', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778053907': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778053907', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653947300182': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653947300182', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778054314': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778054314', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778054501': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778054501', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778054769': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778054769', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653860366115': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653860366115', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778055189': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778055189', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778055407': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778055407', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778055607': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778055607', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778055799': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778055799', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } }, 'BLOCK_1653778056017': { onRun: (args, app, device, block) => { return this.worker.remote.runBlock( 'BLOCK_1653778056017', 'onRun', device.id, { id: block.id, opcode: block.opcode, arguments: block.arguments }, Object.assign({}, args) ); } } }; } getInfo() { return { "id": "vdr_grove_wifi_v2", "targets": [{ "name": "arduino_mega2560", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } }, { "name": "arduino_uno", "options": { "upload": { "middlewares": [{ "name": "arduino", "params": { "sources": extSources.arduino } }] } } } ], "codeTypes": [ "arduinoc" ], "version": "1.0.0", "platform": [ "mblockpc" ], "categories": cates(facepanels), "generators": extGenerators, "translationMap": extTranslationMap, "snippets": codeSnippets, "generatorStartBlocks": [], "feature": [ "worker" ], "mustLoginBlocks": [], "disabledOffline": [], "disabledOnline": [] }; } getHandler() { if (typeof extHandler === 'object') { return extHandler; } else if (typeof extHandler === 'function') { return new extHandler(); } } } export default ExtVdrGroveWifiV2;PK }T"v&&src/snippets.jsexport default [ "arduinoc: {}" ];PK }TI~src/generators.jsexport default [({ lang: 'arduinoc', template: `// generated by mBlock5 for // codes make you happy //( include //) #include //( lib //) //({ this.$ALL_VARIABLES.length==0?'':this.$ALL_VARIABLES.map(v=>"float "+v+" = 0;").join('\\n') }//) //( declare //) void _delay(float seconds) { long endTime = millis() + seconds * 1000; while(millis() < endTime) _loop(); } //( void setup() { //( setup //) //( code //) } //) void _loop() { //( _loop //) } void loop() { _loop(); }`, splitor: { frame: { left: "//(", right: "//)", }, expression: { left: "/*{", right: "}*/", } }, reducers: [{ name: 'include', reduce: (codes) => { let codes1 = [] for (let code of codes) { let codeStr = ''; if (typeof code === 'string') { codeStr = code; } else if (typeof code === 'function') { codeStr = code(); } if (codes1.indexOf(codeStr) === -1) { codes1.push(codeStr); } } if (codes1.length === 0) { return undefined; } return codes1.map(code => { return '#include ' + code; }).join('\n') + '\n' } }] })];PK }T)src/arduinosources.jsexport default [];PK }TEsrc/facepanels.jsexport default {};PK }T_[[src/exthandler.jsconst ExtHandler = { // when extension is loaded onLoad(app, target) {}, // when extension is unloaded onUnload(app) { // TODO }, // when device is connected onConnect(app, device) { // TODO }, // when device is disconnected onDisconnect(app, device) { // TODO }, // when stop button is clicked onStopAll(app, device) { // TODO }, // before switch to upload mode beforeChangeUploadMode(app, device) { // TODO return true; }, // before switch to debug mode beforeChangeDebugMode(app, device) { // TODO return true; }, // after switched to upload mode afterChangeUploadMode(app, device) { // TODO return true; }, // after switched to debug mode afterChangeDebugMode(app, device) { // TODO return true; }, // when device is selected onSelect(app, device) { // TODO }, // when device is unselected onUnselect(app, device) { // TODO }, // before upload code beforeCodeUpload(app, device) { // TODO }, // after code uploaded afterCodeUpload(app, device) { // TODO }, // when receiving and reading byte onRead(app, device) { // TODO } } export default ExtHandler;PK }T(fVFFsrc/handlerProxy.jsself.rpc.CONFIG.TIMEOUT = 42000; self.rpc.CONFIG.HEARTBEAT = 4200; const __context = { app: self.rpc.remote.app, getDevice: function getDevice(deviceId) { return new Proxy({}, { get(target, name) { if (name == "id") { return deviceId; } return function (...args) { let runDevice = __context.app.runDevice; return runDevice(deviceId, name, ...args); }; } }); } }; !function (global) { "use strict"; var Op = Object.prototype; var hasOwn = Op.hasOwnProperty; var undefined; var $Symbol = typeof Symbol === "function" ? Symbol : {}; var iteratorSymbol = $Symbol.iterator || "@@iterator"; var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { module.exports = runtime; } return; } runtime = global.regeneratorRuntime = inModule ? module.exports || {} : {}; function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; var generator = Object.create(protoGenerator.prototype); var context = new Context(tryLocsList || []); generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; IteratorPrototype[iteratorSymbol] = function () { return this; }; var getProto = Object.getPrototypeOf; var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { IteratorPrototype = NativeIteratorPrototype; } var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { prototype[method] = function (arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function (genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function (genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; if (!(toStringTagSymbol in genFun)) { genFun[toStringTagSymbol] = "GeneratorFunction"; } } genFun.prototype = Object.create(Gp); return genFun; }; runtime.awrap = function (arg) { return { __await: arg }; }; function AsyncIterator(generator) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (record.type === "throw") { reject(record.arg); } else { var result = record.arg; var value = result.value; if (value && typeof value === "object" && hasOwn.call(value, "__await")) { return Promise.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }); } return Promise.resolve(value).then(function (unwrapped) { result.value = unwrapped; resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } } var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return new Promise(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); AsyncIterator.prototype[asyncIteratorSymbol] = function () { return this; }; runtime.AsyncIterator = AsyncIterator; runtime.async = function (innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } return doneResult(); } context.method = method; context.arg = arg; while (true) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (context.method === "next") { context.sent = context._sent = context.arg; } else if (context.method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw context.arg; } context.dispatchException(context.arg); } else if (context.method === "return") { context.abrupt("return", context.arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { state = context.done ? GenStateCompleted : GenStateSuspendedYield; if (record.arg === ContinueSentinel) { continue; } return { value: record.arg, done: context.done }; } else if (record.type === "throw") { state = GenStateCompleted; context.method = "throw"; context.arg = record.arg; } } }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (method === undefined) { context.delegate = null; if (context.method === "throw") { if (delegate.iterator.return) { context.method = "return"; context.arg = undefined; maybeInvokeDelegate(delegate, context); if (context.method === "throw") { return ContinueSentinel; } } context.method = "throw"; context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if (record.type === "throw") { context.method = "throw"; context.arg = record.arg; context.delegate = null; return ContinueSentinel; } var info = record.arg; if (!info) { context.method = "throw"; context.arg = new TypeError("iterator result is not an object"); context.delegate = null; return ContinueSentinel; } if (info.done) { context[delegate.resultName] = info.value; context.next = delegate.nextLoc; if (context.method !== "return") { context.method = "next"; context.arg = undefined; } } else { return info; } context.delegate = null; return ContinueSentinel; } defineIteratorMethods(Gp); Gp[toStringTagSymbol] = "Generator"; Gp[iteratorSymbol] = function () { return this; }; Gp.toString = function () { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return next.next = next; } } return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function (skipTempReset) { this.prev = 0; this.next = 0; this.sent = this._sent = undefined; this.done = false; this.delegate = null; this.method = "next"; this.arg = undefined; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { this[name] = undefined; } } } }, stop: function () { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function (exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; if (caught) { context.method = "next"; context.arg = undefined; } return !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function (type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.method = "next"; this.next = finallyEntry.finallyLoc; return ContinueSentinel; } return this.complete(record); }, complete: function (record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = this.arg = record.arg; this.method = "return"; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } return ContinueSentinel; }, finish: function (finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, "catch": function (tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function (iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }; if (this.method === "next") { this.arg = undefined; } return ContinueSentinel; } }; }(function () { return this || typeof self === "object" && self; }() || Function("return this")()); const disableBlocks = { debug: [], upload: [] }; const mustLoginBlocks = []; const triggerBlocksStatus = async (mode, app) => {}; const blockHandlers = { 'BLOCK_1653778053438': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778053703': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778053907': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653947300182': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778054314': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778054501': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778054769': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653860366115': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778055189': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778055407': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778055607': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778055799': { onRun: (args, app, device, block) => {} }, 'BLOCK_1653778056017': { onRun: (args, app, device, block) => {} } }; const ExtHandler = { onLoad(app, target) {}, onUnload(app) {}, onConnect(app, device) {}, onDisconnect(app, device) {}, onStopAll(app, device) {}, beforeChangeUploadMode(app, device) { return true; }, beforeChangeDebugMode(app, device) { return true; }, afterChangeUploadMode(app, device) { return true; }, afterChangeDebugMode(app, device) { return true; }, onSelect(app, device) {}, onUnselect(app, device) {}, beforeCodeUpload(app, device) {}, afterCodeUpload(app, device) {}, onRead(app, device) {} }; self.rpc.exports = { runBlock: function runBlock(opcode, method, deviceId, block, args) { var blockHandler = blockHandlers[opcode]; if (!blockHandler) { console.error('cannot find opcode of ' + opcode); return null; } var handle = blockHandler[method]; let app = __context.app; let device = __context.getDevice(deviceId); if (method === 'onRun') { return handle(args, app, device, block); } else { return handle(app, device, block); } }, runExtension: function runExtension(srcMethod, deviceId) { var method = ExtHandler[srcMethod]; if (!method) { console.error('method of ' + srcMethod + ' is no valid'); return null; } let app = __context.app; if (deviceId) { let device = __context.getDevice(deviceId); return method(app, device); } else { return method(app); } } };PK }T src/cates/PK }Tsrc/cates/cate_4da4ebd6/PK }TΉ+ src/cates/cate_4da4ebd6/index.jsimport blocks from './blocks.js'; const cate_4da4ebd6 = (facepanels) => ({ "name": "cate_4da4ebd6", "colors": [ "#0079FF", "#006DE6", "#0061CC" ], "menuIconURI": "", "blockIcon": { "type": "image", "width": 28, "height": 26, "src": window.MbApi.getExtResPath('vdr_grove_wifi_v2/imgs/a3b6c9c85ea546c4a58fc2eac47faea2.png', 'vdr_grove_wifi_v2') }, "blocks": blocks(facepanels), "menus": { "BLOCK_1653778053438_PINDIGIT": [{ "text": "BLOCK_1653778053438_PINDIGIT_0", "value": "2" }, { "text": "BLOCK_1653778053438_PINDIGIT_1", "value": "3" }, { "text": "BLOCK_1653778053438_PINDIGIT_2", "value": "4" }, { "text": "BLOCK_1653778053438_PINDIGIT_3", "value": "5" }, { "text": "BLOCK_1653778053438_PINDIGIT_4", "value": "6" }, { "text": "BLOCK_1653778053438_PINDIGIT_5", "value": "7" }, { "text": "BLOCK_1653778053438_PINDIGIT_6", "value": "8" } ], "BLOCK_1653778053703_IPMODE": [{ "text": "BLOCK_1653778053703_IPMODE_0", "value": "0" }, { "text": "BLOCK_1653778053703_IPMODE_1", "value": "1" }, { "text": "BLOCK_1653778053703_IPMODE_2", "value": "2" }, { "text": "BLOCK_1653778053703_IPMODE_3", "value": "3" } ], "BLOCK_1653778053907_AP": [{ "text": "BLOCK_1653778053907_AP_0", "value": "false" }, { "text": "BLOCK_1653778053907_AP_1", "value": "true" } ], "BLOCK_1653778054769_POST": [{ "text": "BLOCK_1653778054769_POST_0", "value": "false" }, { "text": "BLOCK_1653778054769_POST_1", "value": "true" } ], "BLOCK_1653778055189_REFRESH": [{ "text": "BLOCK_1653778055189_REFRESH_0", "value": "0" }, { "text": "BLOCK_1653778055189_REFRESH_1", "value": "5" }, { "text": "BLOCK_1653778055189_REFRESH_2", "value": "10" }, { "text": "BLOCK_1653778055189_REFRESH_3", "value": "30" } ], "BLOCK_1653778055407_STYLE": [{ "text": "BLOCK_1653778055407_STYLE_0", "value": "\"p\"" }, { "text": "BLOCK_1653778055407_STYLE_1", "value": "\"H1\"" }, { "text": "BLOCK_1653778055407_STYLE_2", "value": "\"H2\"" } ] } }); export default cate_4da4ebd6;PK }T*E̐src/cates/index.jsimport cate_4da4ebd6 from './cate_4da4ebd6/index.js'; const cates = (facepanels) => ([ cate_4da4ebd6(facepanels) ]); export default cates;PK }Tǭ6|N|N!src/cates/cate_4da4ebd6/blocks.jsconst blocks = (extFacePanels) => ([{ "opcode": "BLOCK_1653778053438", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "pinDigit": { "type": "fieldMenu", "defaultValue": "2", "menu": "BLOCK_1653778053438_PINDIGIT" } }, "branchCount": 0, "codes": { "arduinoc": { "sections": { "declare": `#define DEBUG true\r\n#define HTML_MAX_LENGTH 150\r\n\r\nSoftwareSerial ESP8285(/*{pinDigit}*/, /*{pinDigit}*/+1);\r\n\r\nchar WifiLocalIP[15];\r\nchar WifiDnsServerIP[15];\r\nchar WifiGatewayIP[15];\r\nchar WifiSubnetMask[15];\r\nString wifiRequest;\r\nbool wififirstParam=true;\r\nbool serveur_initialised=false;\r\nbool sending=false;\r\nbool WifiSucceed = false;\r\n\r\n//****************************************************\r\n// ESP8285 initialisation\r\n//****************************************************\r\n\r\nString ESP8285_getData(int timeout){\r\n String response = \"\";\r\n long int time = millis();\r\n bool waitReply = true;\r\n while (waitReply==true){\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n response+=c;\r\n }\r\n if (millis() >= (timeout + time)){\r\n waitReply=false;\r\n }\r\n }\r\n if(DEBUG) Serial.println(response);\r\n return response;\r\n}\r\n\r\nvoid ESP8285_getOk(int timeout){\r\n String response = \"\";\r\n long int time = millis();\r\n bool waitReply = true;\r\n if(DEBUG) Serial.print(\"waiting...\");\r\n while (waitReply==true){\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n response+=c;\r\n }\r\n if (millis() >= (timeout + time)){\r\n waitReply=false;\r\n }\r\n }\r\n WifiSucceed = (response.indexOf(\"OK\")>0);\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n}\r\n\r\nvoid ESP8285_initialise(){\r\n ESP8285.begin(9600);\r\n ESP8285.println(\"AT+RST\");\r\n ESP8285_getOk(2000);\r\n ESP8285.println(\"AT+CWMODE=3\");\r\n ESP8285_getOk(500);\r\n}\r\n\r\n//****************************************************\r\n// Gestion des IP\r\n//****************************************************\r\nvoid Atttrib_ESP8285_IP(bool ap){\r\n int ethMode=0;\r\n String cmd = \"\";\r\n if (ap){\r\n cmd=\"AT+CIPAP_CUR=\\\"\";\r\n }else{\r\n cmd=\"AT+CIPSTA_CUR=\\\"\";\r\n }\r\n if(strlen(WifiLocalIP)>0) {\r\n ethMode=1;\r\n if(strlen(WifiGatewayIP)>0) {\r\n ethMode=2;\r\n if(strlen(WifiSubnetMask)>0) {\r\n ethMode=3;\r\n }\r\n }\r\n }\r\n\r\n if(strlen(WifiDnsServerIP)>0){\r\n ESP8285.print(\"AT+CIPDNS_CUR=1,\\\"\");\r\n ESP8285.print(WifiDnsServerIP);\r\n ESP8285.println(\"\\\"\");\r\n ESP8285_getOk(1000);\r\n }\r\n \r\n switch (ethMode) {\r\n case 0:\r\n if (ap){\r\n ESP8285.println(\"AT+CWDHCP=1,2\");\r\n }else{\r\n ESP8285.println(\"AT+CWDHCP=1,1\");\r\n }\r\n break;\r\n case 1:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n case 2:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiGatewayIP);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n case 3:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiGatewayIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiSubnetMask);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n }\r\n ESP8285_getOk(3000);\r\n\r\n}`, "setup": `Serial.begin(9600);\r\nESP8285_initialise();` } } }, "handler": this.funcs.BLOCK_1653778053438 }, { "opcode": "BLOCK_1653778053703", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "IPmode": { "type": "fieldMenu", "defaultValue": "0", "menu": "BLOCK_1653778053703_IPMODE" }, "IP": { "type": "string", "defaultValue": "172.16.127.1" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `setWifiIP(/*{IP}*/,/*{IPmode}*/);`, "sections": { "declare": `\r\nvoid setWifiIP(String IP, int type){\r\n switch (type) {\r\n case 0:\r\n IP.toCharArray(WifiLocalIP, 16);\r\n break;\r\n case 1:\r\n IP.toCharArray(WifiGatewayIP, 16);\r\n break;\r\n case 2:\r\n IP.toCharArray(WifiSubnetMask, 16);\r\n break;\r\n case 3:\r\n IP.toCharArray(WifiDnsServerIP, 16);\r\n break;\r\n }\r\n}` } } }, "handler": this.funcs.BLOCK_1653778053703 }, { "opcode": "BLOCK_1653778053907", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "wifi_ssid": { "type": "string", "defaultValue": "" }, "wifi_pwd": { "type": "string", "defaultValue": "" }, "ap": { "type": "fieldMenu", "defaultValue": "false", "menu": "BLOCK_1653778053907_AP" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_initialise_wifi(/*{wifi_ssid}*/,/*{wifi_pwd}*/,/*{ap}*/);\r`, "sections": { "include": [ "" ], "declare": `void ESP8285_initialise_wifi(const String ssid,const String pwd, bool ap){\r\n if(ap){\r\n ESP8285.print(\"AT+CWSAP=\\\"\");\r\n ESP8285.print(ssid);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(pwd);\r\n if(pwd.length()>0){\r\n ESP8285.println(\"\\\",1,3\");\r\n }else{\r\n ESP8285.println(\"\\\",1,0\"); //accès libre\r\n }\r\n ESP8285_getOk(4000);\r\n Atttrib_ESP8285_IP(true);\r\n }else{\r\n ESP8285.print(\"AT+CWJAP=\\\"\");\r\n ESP8285.print(ssid);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(pwd);\r\n ESP8285.println(\"\\\"\");\r\n ESP8285_getOk(8000);\r\n Atttrib_ESP8285_IP(false);\r\n }\r\n}`, "setup": "\r\n\r\n" } } }, "handler": this.funcs.BLOCK_1653778053907 }, { "opcode": "BLOCK_1653947300182", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `WifiSucceed` } }, "handler": this.funcs.BLOCK_1653947300182 }, { "opcode": "BLOCK_1653778054314", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "arguments": { "ap": { "type": "fieldMenu", "defaultValue": "false", "menu": "BLOCK_1653778053907_AP" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_GetIP(/*{ap}*/)`, "sections": { "declare": `String ESP8285_GetIP(bool ap){\r\n ESP8285.println(\"AT+CIFSR\");\r\n String reponse = ESP8285_getData(500);\r\n int pos1;\r\n if (ap){\r\n pos1 = reponse.indexOf(\"CIFSR:APIP,\\\"\")+12;\r\n }else{\r\n pos1 = reponse.indexOf(\"CIFSR:STAIP,\\\"\")+13;\r\n }\r\n if (pos1>0){\r\n int pos2 = reponse.indexOf(\"\\\"\",pos1);\r\n return reponse.substring(pos1,pos2);\r\n }\r\n}\r` } } }, "handler": this.funcs.BLOCK_1653778054314 }, { "opcode": "BLOCK_1653778054501", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "champ": { "type": "string", "defaultValue": "" }, "valeur": { "type": "string", "defaultValue": "" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiAddHttpData(String(/*{champ}*/),String(/*{valeur}*/));`, "sections": { "declare": `void wifiAddHttpData(String field, String value){\r\n if (wififirstParam){\r\n wififirstParam=false;\r\n wifiRequest=\"\";\r\n }else{\r\n wifiRequest=wifiRequest+\"&\";\r\n }\r\n wifiRequest=wifiRequest+field+\"=\"+value;\r\n}` } } }, "handler": this.funcs.BLOCK_1653778054501 }, { "opcode": "BLOCK_1653778054769", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "server": { "type": "string", "defaultValue": "api.thingspeak.com" }, "port": { "type": "number", "defaultValue": 80 }, "page": { "type": "string", "defaultValue": "/update" }, "POST": { "type": "fieldMenu", "defaultValue": "false", "menu": "BLOCK_1653778054769_POST" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_HttpRequest(/*{server}*/,/*{port}*/,/*{page}*/,/*{POST}*/);`, "sections": { "declare": `void ESP8285_HttpRequest(String server, int port, String page, bool post){\r\n\r\n ESP8285.println(\"AT+CIPMUX=0\");\r\n ESP8285_getOk(1000);\r\n \r\n ESP8285.print(\"AT+CIPSTART=\\\"TCP\\\",\\\"\");\r\n ESP8285.print(server);\r\n ESP8285.print(\"\\\",\");\r\n ESP8285.println(port);\r\n ESP8285_getOk(1000);\r\n \r\n wififirstParam=true;\r\n WifiSucceed = false;\r\n int len=0;\r\n if (post){\r\n len = page.length() + server.length() + wifiRequest.length() + String(wifiRequest.length()).length() + 137;\r\n }else{\r\n len = page.length() + server.length() + wifiRequest.length() + 70;\r\n }\r\n ESP8285.print(\"AT+CIPSEND=\");\r\n ESP8285.println(len);\r\n\r\n wififirstParam=true;\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"waiting...\");\r\n if(ESP8285.find(\">\")) {\r\n if (post){\r\n ESP8285.print(\"POST \");\r\n ESP8285.print(page);\r\n ESP8285.println(\" HTTP/1.1\");\r\n ESP8285.print(\"Host: \");\r\n ESP8285.println(server);\r\n ESP8285.print(\"Content-Length: \");\r\n ESP8285.println(wifiRequest.length());\r\n ESP8285.println(\"Content-Type: application/x-www-form-urlencoded\");\r\n ESP8285.println(\"Connection: close\");\r\n ESP8285.println(\"User-Agent: Arduino/1.0\");\r\n ESP8285.println();\r\n ESP8285.println(wifiRequest);\r\n }else{\r\n ESP8285.print(\"GET \");\r\n ESP8285.print(page);\r\n ESP8285.print(\"?\");\r\n ESP8285.print(wifiRequest);\r\n ESP8285.println(\" HTTP/1.1\");\r\n ESP8285.print(\"Host: \");\r\n ESP8285.println(server);\r\n ESP8285.println(\"Connection: close\");\r\n ESP8285.println(\"User-Agent: Arduino/1.0\");\r\n ESP8285.println();\r\n }\r\n if(ESP8285.find(\"SEND OK\")){\r\n if(DEBUG) Serial.println(\"OK\");\r\n ESP8285.println(\"AT+CIPCLOSE\");\r\n ESP8285_getOk(1000);\r\n WifiSucceed = true;\r\n }\r\n }\r\n}\r` } } }, "handler": this.funcs.BLOCK_1653778054769 }, { "opcode": "BLOCK_1653860366115", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "port": { "type": "number", "defaultValue": 80 } }, "branchCount": 0, "codes": { "arduinoc": { "code": `ESP8285_server_initialise(/*{port}*/);`, "sections": { "declare": `void ESP8285_server_initialise(int port){\r\n ESP8285.println(\"AT+CIPMUX=1\");\r\n ESP8285_getOk(1000);\r\n ESP8285.print(\"AT+CIPSERVER=1,\");\r\n ESP8285.println(port);\r\n ESP8285_getOk(4000);\r\n}` } } }, "handler": this.funcs.BLOCK_1653860366115 }, { "opcode": "BLOCK_1653778055189", "blockType": "conditional", "checkboxInFlyout": false, "gap": 12, "arguments": { "titre": { "type": "string", "defaultValue": "ma page" }, "refresh": { "type": "fieldMenu", "defaultValue": "0", "menu": "BLOCK_1653778055189_REFRESH" } }, "branchCount": 1, "codes": { "arduinoc": { "code": `while(1){\r\n if(ESP8285.available()){ //\r\n if (ESP8285.find(\"+IPD,\")){\r\n delay(1000);\r\n int connectionId = ESP8285.read()-48;\r\n if (!sending){\r\n sending=true;\r\n\r\n wifiRequest=\"\";\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n wifiRequest+=c;\r\n }\r\n _loop();\r\n wifiRequest=\"\";\r\n\r\n int len=0;\r\n len = String(\"ma page\").length() + 248;\r\n if(/*{refresh}*/>0) len = len + 11 + String(5).length();\r\n ESP8285_SrvSendCmd(connectionId,len);\r\n\r\n if(DEBUG) Serial.print(\"envoyer...\");\r\n ESP8285.print(\"HTTP/1.1 400 OK\\r\\n\");\r\n if(/*{refresh}*/>0){\r\n ESP8285.print(\"Refresh: \");\r\n ESP8285.println(String(/*{refresh}*/));\r\n }\r\n ESP8285.print(\"Content-Type: text/html\\r\\n\\r\\n\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"ma page\");\r\n ESP8285.print(\"\");\r\n WifiSucceed=(ESP8285.find(\"SEND OK\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n\r\n /*{$BRANCH1}*/ \r\n\r\n wifiRequest += \"\";\r\n ESP8285_SendHtml(connectionId,true);\r\n wifiRequest=\"\";\r\n\r\n ESP8285.print(\"AT+CIPCLOSE=\");\r\n ESP8285.println(connectionId);\r\n ESP8285_getOk(200);\r\n\r\n sending=false;\r\n }\r\n }\r\n } \r\n} \r\ndelay (100);`, "sections": { "declare": `void ESP8285_SrvSendCmd(int connectionId, long len){\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"sending...\");\r\n ESP8285.print(\"AT+CIPSEND=\");\r\n ESP8285.print(connectionId);\r\n ESP8285.print(\",\");\r\n ESP8285.println(len);\r\n WifiSucceed=(ESP8285.find(\">\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n}\r\n\r\nvoid ESP8285_SendHtml(int connectionId, bool force){\r\n if(wifiRequest.length()>HTML_MAX_LENGTH or force){\r\n ESP8285_SrvSendCmd(connectionId,wifiRequest.length());\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"envoyer...\");\r\n ESP8285.print(wifiRequest);\r\n wifiRequest=\"\";\r\n WifiSucceed=(ESP8285.find(\"SEND OK\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n }\r\n}\r` } } }, "handler": this.funcs.BLOCK_1653778055189 }, { "opcode": "BLOCK_1653778055407", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "texte": { "type": "string", "defaultValue": "" }, "style": { "type": "fieldMenu", "defaultValue": "\"p\"", "menu": "BLOCK_1653778055407_STYLE" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiRequest += \"<\";\r\nwifiRequest += /*{style}*/;\r\nwifiRequest += \">\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);` } }, "handler": this.funcs.BLOCK_1653778055407 }, { "opcode": "BLOCK_1653778055607", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": {}, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiRequest += \"
\";` } }, "handler": this.funcs.BLOCK_1653778055607 }, { "opcode": "BLOCK_1653778055799", "blockType": "conditional", "checkboxInFlyout": false, "gap": 12, "arguments": { "texte": { "type": "string", "defaultValue": "" }, "action": { "type": "string", "defaultValue": "" } }, "branchCount": 1, "codes": { "arduinoc": { "code": `wifiRequest += \"\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);`, "sections": { "_loop": `if (wifiRequest.indexOf(\"?\"+String(/*{action}*/)) >0){\r\n /*{$BRANCH1}*/ \r\n}` } } }, "handler": this.funcs.BLOCK_1653778055799 }, { "opcode": "BLOCK_1653778056017", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "arguments": { "texte": { "type": "string", "defaultValue": "" }, "url": { "type": "string", "defaultValue": "http://" } }, "branchCount": 0, "codes": { "arduinoc": { "code": `wifiRequest += \"\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);` } }, "handler": this.funcs.BLOCK_1653778056017 } ]); export default blocks;PK }T src/langs/PK }T7z#src/langs/zh.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/de.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/es.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/fr.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/id.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/ja.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/ja-jph.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/ko.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/pl.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/uk.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/zh-hant.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/nl.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/it.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/hr.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/ru.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/pt.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/fi.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/tr.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/tk.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }T7z#src/langs/en.jsexport default { "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" };PK }Tiisrc/langs/index.jsimport zh from './zh.js'; import de from './de.js'; import es from './es.js'; import fr from './fr.js'; import id from './id.js'; import ja from './ja.js'; import jaJph from './ja-jph.js'; import ko from './ko.js'; import pl from './pl.js'; import uk from './uk.js'; import zhHant from './zh-hant.js'; import nl from './nl.js'; import it from './it.js'; import hr from './hr.js'; import ru from './ru.js'; import pt from './pt.js'; import fi from './fi.js'; import tr from './tr.js'; import tk from './tk.js'; import en from './en.js'; const langs = { 'zh': zh, 'de': de, 'es': es, 'fr': fr, 'id': id, 'ja': ja, 'ja-jph': jaJph, 'ko': ko, 'pl': pl, 'uk': uk, 'zh-hant': zhHant, 'nl': nl, 'it': it, 'hr': hr, 'ru': ru, 'pt': pt, 'fi': fi, 'tr': tr, 'tk': tk, 'en': en }; export default langs;PK }T.> manifest.json{ "id": "vdr_grove_wifi_v2", "iconURL": "vdr_grove_wifi_v2/imgs/f45cfff946714d7fb2d25aa3320ce2c7.JPG", "coverURL": "./res/f45cfff946714d7fb2d25aa3320ce2c7.JPG", "name": { "zh": "vdr grove wifi V2", "de": "vdr grove wifi V2", "es": "vdr grove wifi V2", "fr": "vdr grove wifi V2", "id": "vdr grove wifi V2", "ja": "vdr grove wifi V2", "ja-jph": "vdr grove wifi V2", "ko": "vdr grove wifi V2", "pl": "vdr grove wifi V2", "uk": "vdr grove wifi V2", "zh-hant": "vdr grove wifi V2", "nl": "vdr grove wifi V2", "it": "vdr grove wifi V2", "hr": "vdr grove wifi V2", "ru": "vdr grove wifi V2", "pt": "vdr grove wifi V2", "fi": "vdr grove wifi V2", "tr": "vdr grove wifi V2", "tk": "vdr grove wifi V2", "en": "vdr grove wifi V2" }, "description": { "zh": "", "de": "", "es": "", "fr": "", "id": "", "ja": "", "ja-jph": "", "ko": "", "pl": "", "uk": "", "zh-hant": "", "nl": "", "it": "", "hr": "", "ru": "", "pt": "", "fi": "", "tr": "", "tk": "", "en": "" }, "targets": [ "arduino_mega2560", "arduino_uno" ], "main": "vdr_grove_wifi_v2/index.js", "codeTypes": [ "arduinoc" ], "device": false, "sortId": 999, "version": "1.0.0", "extApiVersion": [ "1.0.3" ], "platform": [ "mblockpc" ], "homepage": "", "feature": [ "worker" ] }PK }T data.bak/PK }Tx@@data.bak/ext.json{ "identify": "vdr_grove_wifi_v2", "version": "1.0.0", "device": false, "template": "arduinoc", "cover": { "name": "wifi.JPG", "url": "https://mblock-expanded.oss-cn-shenzhen.aliyuncs.com/f45cfff946714d7fb2d25aa3320ce2c7.JPG" }, "codeTypes": [ "arduinoc" ], "generator": { "arduinoc": { "template": "// generated by mBlock5 for \n// codes make you happy\n\n//( include //)\n#include \n//( lib //)\n\n//({\n this.$ALL_VARIABLES.length==0?'':this.$ALL_VARIABLES.map(v=>\"float \"+v+\" = 0;\").join('\\\\n')\n}//)\n\n//( declare //)\n\n\nvoid _delay(float seconds) {\n long endTime = millis() + seconds * 1000;\n while(millis() < endTime) _loop();\n}\n\n//(\nvoid setup() {\n //( setup //)\n //( code //)\n}\n//)\n\nvoid _loop() {\n //( _loop //)\n}\n\nvoid loop() {\n _loop();\n}", "generator": "({\n lang: 'arduinoc',\n template: `<%=template%>`,\n splitor: {\n frame: {\n left: \"//(\",\n right: \"//)\",\n },\n expression: {\n left: \"/*{\",\n right: \"}*/\",\n }\n },\n reducers: [\n {\n name: 'include',\n reduce: (codes) => {\n let codes1 = []\n for (let code of codes) {\n let codeStr = '';\n if (typeof code === 'string') {\n codeStr = code;\n } else if (typeof code === 'function') {\n codeStr = code();\n }\n if (codes1.indexOf(codeStr) === -1) {\n codes1.push(codeStr);\n }\n }\n if (codes1.length === 0) {\n return undefined;\n }\n return codes1.map(code => {\n return '#include ' + code;\n }).join('\\n') + '\\n'\n }\n }\n ]\n})", "snippets": "", "sources": [] } }, "platform": [ "mblockpc" ], "extApiVersion": [ "1.0.3" ], "name": "vdr grove wifi V2", "targets": [ "arduino_mega2560", "arduino_uno" ], "id": "18721", "sort": 999, "description": "", "homepage": "", "sourceFiles": "", "code": "// enter your javascript code here\n", "handler": "\nconst ExtHandler = {\n\n // when extension is loaded\n onLoad(app, target) {\n },\n\n // when extension is unloaded\n onUnload(app) {\n // TODO\n },\n\n // when device is connected\n onConnect(app, device) {\n // TODO\n },\n\n // when device is disconnected\n onDisconnect(app, device) {\n // TODO\n },\n\n // when stop button is clicked\n onStopAll(app, device) {\n // TODO\n },\n\n // before switch to upload mode\n beforeChangeUploadMode(app, device) {\n // TODO\n return true;\n },\n\n // before switch to debug mode\n beforeChangeDebugMode(app, device) {\n // TODO\n return true;\n },\n\n // after switched to upload mode\n afterChangeUploadMode(app, device) {\n // TODO\n return true;\n },\n\n // after switched to debug mode\n afterChangeDebugMode(app, device) {\n // TODO\n return true;\n },\n\n // when device is selected\n onSelect(app, device) {\n // TODO\n },\n\n // when device is unselected\n onUnselect(app, device) {\n // TODO\n },\n\n // before upload code\n beforeCodeUpload(app, device) {\n // TODO\n },\n\n // after code uploaded\n afterCodeUpload(app, device) {\n // TODO\n },\n\n // when receiving and reading byte\n onRead(app, device) {\n // TODO\n }\n}\n" }PK }T`Tdata.bak/categroy.json[ { "identify": "cate_4da4ebd6", "name": "vdr grove wifi V2", "menuIconURI": "", "blockIcon": { "name": "wifi.png", "url": "https://mblock-expanded.oss-cn-shenzhen.aliyuncs.com/a3b6c9c85ea546c4a58fc2eac47faea2.png" }, "colors": "#0079FF", "eid": "18721", "id": "31817", "sort": 999, "create_time": 1634911077, "modify_time": 1653935674, "uid": 1281238 } ]PK }Ts_U~v~vdata.bak/block.json[ { "eid": "18721", "cid": "31817", "name": "Initialise WIFI @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653778053438", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 0, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "#define DEBUG true\r\n#define HTML_MAX_LENGTH 150\r\n\r\nSoftwareSerial ESP8285(/*{pinDigit}*/, /*{pinDigit}*/+1);\r\n\r\nchar WifiLocalIP[15];\r\nchar WifiDnsServerIP[15];\r\nchar WifiGatewayIP[15];\r\nchar WifiSubnetMask[15];\r\nString wifiRequest;\r\nbool wififirstParam=true;\r\nbool serveur_initialised=false;\r\nbool sending=false;\r\nbool WifiSucceed = false;\r\n\r\n//****************************************************\r\n// ESP8285 initialisation\r\n//****************************************************\r\n\r\nString ESP8285_getData(int timeout){\r\n String response = \"\";\r\n long int time = millis();\r\n bool waitReply = true;\r\n while (waitReply==true){\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n response+=c;\r\n }\r\n if (millis() >= (timeout + time)){\r\n waitReply=false;\r\n }\r\n }\r\n if(DEBUG) Serial.println(response);\r\n return response;\r\n}\r\n\r\nvoid ESP8285_getOk(int timeout){\r\n String response = \"\";\r\n long int time = millis();\r\n bool waitReply = true;\r\n if(DEBUG) Serial.print(\"waiting...\");\r\n while (waitReply==true){\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n response+=c;\r\n }\r\n if (millis() >= (timeout + time)){\r\n waitReply=false;\r\n }\r\n }\r\n WifiSucceed = (response.indexOf(\"OK\")>0);\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n}\r\n\r\nvoid ESP8285_initialise(){\r\n ESP8285.begin(9600);\r\n ESP8285.println(\"AT+RST\");\r\n ESP8285_getOk(2000);\r\n ESP8285.println(\"AT+CWMODE=3\");\r\n ESP8285_getOk(500);\r\n}\r\n\r\n//****************************************************\r\n// Gestion des IP\r\n//****************************************************\r\nvoid Atttrib_ESP8285_IP(bool ap){\r\n int ethMode=0;\r\n String cmd = \"\";\r\n if (ap){\r\n cmd=\"AT+CIPAP_CUR=\\\"\";\r\n }else{\r\n cmd=\"AT+CIPSTA_CUR=\\\"\";\r\n }\r\n if(strlen(WifiLocalIP)>0) {\r\n ethMode=1;\r\n if(strlen(WifiGatewayIP)>0) {\r\n ethMode=2;\r\n if(strlen(WifiSubnetMask)>0) {\r\n ethMode=3;\r\n }\r\n }\r\n }\r\n\r\n if(strlen(WifiDnsServerIP)>0){\r\n ESP8285.print(\"AT+CIPDNS_CUR=1,\\\"\");\r\n ESP8285.print(WifiDnsServerIP);\r\n ESP8285.println(\"\\\"\");\r\n ESP8285_getOk(1000);\r\n }\r\n \r\n switch (ethMode) {\r\n case 0:\r\n if (ap){\r\n ESP8285.println(\"AT+CWDHCP=1,2\");\r\n }else{\r\n ESP8285.println(\"AT+CWDHCP=1,1\");\r\n }\r\n break;\r\n case 1:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n case 2:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiGatewayIP);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n case 3:\r\n ESP8285.print(cmd);\r\n ESP8285.print(WifiLocalIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiGatewayIP);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(WifiSubnetMask);\r\n ESP8285.println(\"\\\"\");\r\n break;\r\n }\r\n ESP8285_getOk(3000);\r\n\r\n}", "setup": "Serial.begin(9600);\r\nESP8285_initialise();", "code": "", "_loop": "" } }, "args": [ { "type": "fieldMenu", "name": "pinDigit", "menus": [ { "text": "D2", "value": "2" }, { "text": "D3", "value": "3" }, { "text": "D4", "value": "4" }, { "text": "D5", "value": "5" }, { "text": "D6", "value": "6" }, { "text": "D7", "value": "7" }, { "text": "D8", "value": "8" } ], "val": "2" } ], "id": "311897", "create_time": 1634911077, "modify_time": 1653948884, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Définir IP @[Dropdown](fieldMenu) @[String](string) ", "opcode": "BLOCK_1653778053703", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 1, "args": [ { "type": "fieldMenu", "name": "IPmode", "menus": [ { "text": "IP", "value": "0" }, { "text": "Passerelle", "value": "1" }, { "text": "Masque", "value": "2" }, { "text": "DNS", "value": "3" } ], "val": "0" }, { "type": "string", "name": "IP", "checkNumber": false, "val": "172.16.127.1" } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "\r\nvoid setWifiIP(String IP, int type){\r\n switch (type) {\r\n case 0:\r\n IP.toCharArray(WifiLocalIP, 16);\r\n break;\r\n case 1:\r\n IP.toCharArray(WifiGatewayIP, 16);\r\n break;\r\n case 2:\r\n IP.toCharArray(WifiSubnetMask, 16);\r\n break;\r\n case 3:\r\n IP.toCharArray(WifiDnsServerIP, 16);\r\n break;\r\n }\r\n}", "setup": "", "code": "setWifiIP(/*{IP}*/,/*{IPmode}*/);", "_loop": "" } }, "id": "311898", "create_time": 1634911077, "modify_time": 1653947384, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Connexion WIFI SSID @[String](string) Mot de passe @[String](string) mode @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653778053907", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 2, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": [ "" ], "lib": "", "declare": "void ESP8285_initialise_wifi(const String ssid,const String pwd, bool ap){\r\n if(ap){\r\n ESP8285.print(\"AT+CWSAP=\\\"\");\r\n ESP8285.print(ssid);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(pwd);\r\n if(pwd.length()>0){\r\n ESP8285.println(\"\\\",1,3\");\r\n }else{\r\n ESP8285.println(\"\\\",1,0\"); //accès libre\r\n }\r\n ESP8285_getOk(4000);\r\n Atttrib_ESP8285_IP(true);\r\n }else{\r\n ESP8285.print(\"AT+CWJAP=\\\"\");\r\n ESP8285.print(ssid);\r\n ESP8285.print(\"\\\",\\\"\");\r\n ESP8285.print(pwd);\r\n ESP8285.println(\"\\\"\");\r\n ESP8285_getOk(8000);\r\n Atttrib_ESP8285_IP(false);\r\n }\r\n}", "setup": "\r\n\r\n", "code": "ESP8285_initialise_wifi(/*{wifi_ssid}*/,/*{wifi_pwd}*/,/*{ap}*/);\r\n", "_loop": "" } }, "args": [ { "type": "string", "name": "wifi_ssid", "checkNumber": false, "val": "" }, { "type": "string", "name": "wifi_pwd", "val": "", "checkNumber": false }, { "type": "fieldMenu", "name": "ap", "val": "false", "menus": [ { "text": "Client", "value": "false" }, { "text": "Borne", "value": "true" } ] } ], "id": "311899", "create_time": 1634911077, "modify_time": 1653947384, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "succès", "opcode": "BLOCK_1653947300182", "blockType": "boolean", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "id": "312728", "sort": 3, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "WifiSucceed", "_loop": "" } }, "create_time": 1634911077, "modify_time": 1653947384, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Adresse IP @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653778054314", "blockType": "string", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 4, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "String ESP8285_GetIP(bool ap){\r\n ESP8285.println(\"AT+CIFSR\");\r\n String reponse = ESP8285_getData(500);\r\n int pos1;\r\n if (ap){\r\n pos1 = reponse.indexOf(\"CIFSR:APIP,\\\"\")+12;\r\n }else{\r\n pos1 = reponse.indexOf(\"CIFSR:STAIP,\\\"\")+13;\r\n }\r\n if (pos1>0){\r\n int pos2 = reponse.indexOf(\"\\\"\",pos1);\r\n return reponse.substring(pos1,pos2);\r\n }\r\n}\r\n", "setup": "", "code": "ESP8285_GetIP(/*{ap}*/)", "_loop": "" } }, "args": [ { "type": "fieldMenu", "name": "ap", "menus": [ { "text": "Client", "value": "false" }, { "text": "Borne", "value": "true" } ], "val": "false" } ], "id": "311901", "create_time": 1634911077, "modify_time": 1653947384, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Ajouter donnée URL Champ @[String](string) Valeur @[String](string) ", "opcode": "BLOCK_1653778054501", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 5, "args": [ { "type": "string", "name": "champ", "checkNumber": false, "val": "" }, { "type": "string", "name": "valeur", "val": "", "checkNumber": false } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void wifiAddHttpData(String field, String value){\r\n if (wififirstParam){\r\n wififirstParam=false;\r\n wifiRequest=\"\";\r\n }else{\r\n wifiRequest=wifiRequest+\"&\";\r\n }\r\n wifiRequest=wifiRequest+field+\"=\"+value;\r\n}", "setup": "", "code": "wifiAddHttpData(String(/*{champ}*/),String(/*{valeur}*/));", "_loop": "" } }, "id": "311902", "create_time": 1634911077, "modify_time": 1653947385, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Accéder page WEB : Serveur @[String](string) Port @[Number](number) Page @[String](string) Méthode @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653778054769", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 6, "args": [ { "type": "string", "name": "server", "val": "api.thingspeak.com", "checkNumber": false }, { "type": "number", "name": "port", "val": 80 }, { "type": "string", "name": "page", "val": "/update", "checkNumber": false }, { "type": "fieldMenu", "name": "POST", "val": "false", "menus": [ { "text": "GET", "value": "false" }, { "text": "POST", "value": "true" } ] } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void ESP8285_HttpRequest(String server, int port, String page, bool post){\r\n\r\n ESP8285.println(\"AT+CIPMUX=0\");\r\n ESP8285_getOk(1000);\r\n \r\n ESP8285.print(\"AT+CIPSTART=\\\"TCP\\\",\\\"\");\r\n ESP8285.print(server);\r\n ESP8285.print(\"\\\",\");\r\n ESP8285.println(port);\r\n ESP8285_getOk(1000);\r\n \r\n wififirstParam=true;\r\n WifiSucceed = false;\r\n int len=0;\r\n if (post){\r\n len = page.length() + server.length() + wifiRequest.length() + String(wifiRequest.length()).length() + 137;\r\n }else{\r\n len = page.length() + server.length() + wifiRequest.length() + 70;\r\n }\r\n ESP8285.print(\"AT+CIPSEND=\");\r\n ESP8285.println(len);\r\n\r\n wififirstParam=true;\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"waiting...\");\r\n if(ESP8285.find(\">\")) {\r\n if (post){\r\n ESP8285.print(\"POST \");\r\n ESP8285.print(page);\r\n ESP8285.println(\" HTTP/1.1\");\r\n ESP8285.print(\"Host: \");\r\n ESP8285.println(server);\r\n ESP8285.print(\"Content-Length: \");\r\n ESP8285.println(wifiRequest.length());\r\n ESP8285.println(\"Content-Type: application/x-www-form-urlencoded\");\r\n ESP8285.println(\"Connection: close\");\r\n ESP8285.println(\"User-Agent: Arduino/1.0\");\r\n ESP8285.println();\r\n ESP8285.println(wifiRequest);\r\n }else{\r\n ESP8285.print(\"GET \");\r\n ESP8285.print(page);\r\n ESP8285.print(\"?\");\r\n ESP8285.print(wifiRequest);\r\n ESP8285.println(\" HTTP/1.1\");\r\n ESP8285.print(\"Host: \");\r\n ESP8285.println(server);\r\n ESP8285.println(\"Connection: close\");\r\n ESP8285.println(\"User-Agent: Arduino/1.0\");\r\n ESP8285.println();\r\n }\r\n if(ESP8285.find(\"SEND OK\")){\r\n if(DEBUG) Serial.println(\"OK\");\r\n ESP8285.println(\"AT+CIPCLOSE\");\r\n ESP8285_getOk(1000);\r\n WifiSucceed = true;\r\n }\r\n }\r\n}\r\n", "setup": "", "code": "ESP8285_HttpRequest(/*{server}*/,/*{port}*/,/*{page}*/,/*{POST}*/);", "_loop": "" } }, "id": "311903", "create_time": 1634911077, "modify_time": 1653948817, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Démarrer serveur WEB port @[Number](number) ", "opcode": "BLOCK_1653860366115", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "id": "312493", "sort": 7, "args": [ { "type": "number", "name": "port", "val": 80 } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void ESP8285_server_initialise(int port){\r\n ESP8285.println(\"AT+CIPMUX=1\");\r\n ESP8285_getOk(1000);\r\n ESP8285.print(\"AT+CIPSERVER=1,\");\r\n ESP8285.println(port);\r\n ESP8285_getOk(4000);\r\n}", "setup": "", "code": "ESP8285_server_initialise(/*{port}*/);", "_loop": "" } }, "create_time": 1634911077, "modify_time": 1653947385, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Afficher la page WEB Titre @[String](string) rafraichir @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653778055189", "blockType": "conditional", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 8, "args": [ { "type": "string", "name": "titre", "checkNumber": false, "val": "ma page" }, { "type": "fieldMenu", "name": "refresh", "val": "0", "menus": [ { "text": "Jamais", "value": "0" }, { "text": "5 s", "value": "5" }, { "text": "10 s", "value": "10" }, { "text": "30 s ", "value": "30" } ] } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "void ESP8285_SrvSendCmd(int connectionId, long len){\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"sending...\");\r\n ESP8285.print(\"AT+CIPSEND=\");\r\n ESP8285.print(connectionId);\r\n ESP8285.print(\",\");\r\n ESP8285.println(len);\r\n WifiSucceed=(ESP8285.find(\">\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n}\r\n\r\nvoid ESP8285_SendHtml(int connectionId, bool force){\r\n if(wifiRequest.length()>HTML_MAX_LENGTH or force){\r\n ESP8285_SrvSendCmd(connectionId,wifiRequest.length());\r\n WifiSucceed = false;\r\n if(DEBUG) Serial.print(\"envoyer...\");\r\n ESP8285.print(wifiRequest);\r\n wifiRequest=\"\";\r\n WifiSucceed=(ESP8285.find(\"SEND OK\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n }\r\n}\r\n", "setup": "", "code": "while(1){\r\n if(ESP8285.available()){ //\r\n if (ESP8285.find(\"+IPD,\")){\r\n delay(1000);\r\n int connectionId = ESP8285.read()-48;\r\n if (!sending){\r\n sending=true;\r\n\r\n wifiRequest=\"\";\r\n while(ESP8285.available()){\r\n char c = ESP8285.read(); // read the next character.\r\n wifiRequest+=c;\r\n }\r\n _loop();\r\n wifiRequest=\"\";\r\n\r\n int len=0;\r\n len = String(\"ma page\").length() + 248;\r\n if(/*{refresh}*/>0) len = len + 11 + String(5).length();\r\n ESP8285_SrvSendCmd(connectionId,len);\r\n\r\n if(DEBUG) Serial.print(\"envoyer...\");\r\n ESP8285.print(\"HTTP/1.1 400 OK\\r\\n\");\r\n if(/*{refresh}*/>0){\r\n ESP8285.print(\"Refresh: \");\r\n ESP8285.println(String(/*{refresh}*/));\r\n }\r\n ESP8285.print(\"Content-Type: text/html\\r\\n\\r\\n\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"\");\r\n ESP8285.print(\"ma page\");\r\n ESP8285.print(\"\");\r\n WifiSucceed=(ESP8285.find(\"SEND OK\"));\r\n if(DEBUG){\r\n if (WifiSucceed){\r\n Serial.println(\"OK\");\r\n }else{\r\n Serial.println(\"FAILED\");\r\n }\r\n }\r\n\r\n /*{$BRANCH1}*/ \r\n\r\n wifiRequest += \"\";\r\n ESP8285_SendHtml(connectionId,true);\r\n wifiRequest=\"\";\r\n\r\n ESP8285.print(\"AT+CIPCLOSE=\");\r\n ESP8285.println(connectionId);\r\n ESP8285_getOk(200);\r\n\r\n sending=false;\r\n }\r\n }\r\n } \r\n} \r\ndelay (100);", "_loop": "" } }, "id": "311905", "create_time": 1634911077, "modify_time": 1653952733, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Texte @[String](string) Style @[Dropdown](fieldMenu) ", "opcode": "BLOCK_1653778055407", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 9, "args": [ { "type": "string", "name": "texte", "checkNumber": false, "val": "" }, { "type": "fieldMenu", "name": "style", "val": "\"p\"", "menus": [ { "text": "texte", "value": "\"p\"" }, { "text": "Titre1", "value": "\"H1\"" }, { "text": "Titre2", "value": "\"H2\"" } ] } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "wifiRequest += \"<\";\r\nwifiRequest += /*{style}*/;\r\nwifiRequest += \">\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);", "_loop": "" } }, "id": "311906", "create_time": 1634911077, "modify_time": 1653947385, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Retour chariot", "opcode": "BLOCK_1653778055607", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 10, "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "wifiRequest += \"
\";", "_loop": "" } }, "id": "311907", "create_time": 1634911077, "modify_time": 1653947385, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Bouton Texte @[String](string) Action @[String](string) ", "opcode": "BLOCK_1653778055799", "blockType": "conditional", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 11, "args": [ { "type": "string", "name": "texte", "checkNumber": false, "val": "" }, { "type": "string", "name": "action", "val": "", "checkNumber": false } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "wifiRequest += \"\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);", "_loop": "if (wifiRequest.indexOf(\"?\"+String(/*{action}*/)) >0){\r\n /*{$BRANCH1}*/ \r\n}" } }, "id": "311908", "create_time": 1634911077, "modify_time": 1653947385, "uid": 1281238 }, { "eid": "18721", "cid": "31817", "name": "Lien texte @[String](string) URL @[String](string) ", "opcode": "BLOCK_1653778056017", "blockType": "command", "checkboxInFlyout": false, "gap": 12, "disableOnline": false, "disableOffline": false, "generatorCode": false, "blockState": "incomplete", "sort": 12, "args": [ { "type": "string", "name": "texte", "val": "", "checkNumber": false }, { "type": "string", "name": "url", "val": "http://", "checkNumber": false } ], "handler": { "onRun": "(args, app, device, block) => {\n // JavaScript code\n}" }, "codes": { "arduinoc": { "include": "", "lib": "", "declare": "", "setup": "", "code": "wifiRequest += \"\";\r\nwifiRequest += /*{texte}*/;\r\nwifiRequest += \"\";\r\nESP8285_SendHtml(connectionId,false);", "_loop": "" } }, "id": "311909", "create_time": 1634911077, "modify_time": 1653947385, "uid": 1281238 } ]PK }T)L data.bak/translate.json[]PK }T)L data.bak/facepanel.json[]PK }Timgs/PK }T   )imgs/a3b6c9c85ea546c4a58fc2eac47faea2.pngPNG  IHDRddpTiCCPICC profile(}=H@_JEv(":Y(U,Vh/hҐ8 ?.κ: "ƃ~{ SM$j5#ܪ! Qz"w~ѯMxD95 fMOd%I!>'0ď\~\YA#'. x8 Y[J_k+iAKH 2("jH~?lU#P!~?ݭYr1Ų>.jXeN3pu&0Izm⺣{z%C%/MPr-зoC`H.3~rʙ߱bKGD pHYs.#.#x?vtIME3m\tEXtCommentCreated with GIMPW IDATx{pTofCP`0ъ*JU/EնZiRЂy`B$K@X &{{sՖ@Hror?Bu xLQX___>s/P_QBL,τa!a+eYfECJCg>qq!9$زeK1۶4'O|`ڵ' Bh3~bFs&a^8Zq?od2%I@וO@!@,)++k,))o9NeYq@ 8@ku}e[[sӦMxFcb$c֎55Wqί$qp)!cܟڶ#W!l(u9BBHG}1~DūygmsA۶+!^b=zt"`RJMӼ>wڵoTU m1/HKKU+Ici#lg:vX>A]瘦zh$=}s΋dY~sn{ !\;|(5>K) [ccci_C7߮Hd2KSԈQ"jY zwr5i~d!%IwY)oɺW4O9۷Bc!N*B6rqO>W Otuuv>v:;7`[]xqQ+;%eyB(<PSS3s>s>6iQSɂ͛?͇o۶m=By1"J.{IJ^*)Ih{{ȶTU9ta!=8pΏeRmmmsET*u#D4y}=} `$I .Heb3,"۶+mnn,(E3MsS/,˻;E=WMUW90n1 }8RJ˲>ey^* Hť=c>p͚+EQr\>ʶXje.Np;d2y89U?rf͚ofӎT&ՍmmuBϵ u}s,f9^t?~l֭[|֚yBh5c :@i*`߷!bx' Cj +x{:::s'E"Ai)*Re.T!i)ph Y+0ƫcN;[[['jAN Ûiv!I)`@ p(klVhm`0Be&]QTUu+4 A+*F%eQڔ;#1UABH4?Hwc[}1YӴ?ٶ8#oZru沼ԩS!]W{hvmۿbSfILj./eY;$$@nݺ2qX6L1\!=Ui#GLTA4M[b m/f2hOa۶erᅵE"M }Pr1y%so8Z_D4A3si/X mODץ.5hFr/lj Cᄑ8N?8Nf( 9vE$I7 Rm<Bl'HVu[[1BDJUU]]Wi' ǎ}= zeJd29N9,Z9WQMӺc]wɲB]˲H L^ >>>yHte8\~A]xرc[}YlBȁ3cd2y?SLuuuyO>FW\Y\Ez@o3gϑdDA=RzEh4g#TU Uxp87; QZZ:3Bh_T !d/GBBa=xD{{AH_sNm!ПAFbXJi.}ן~ Lηmnnnߟ~DQ=iFMgl8PN)]!K)9ܡ"QL@ӵP$r1֯_w?Ml0IENDB`PK }Tfww)imgs/f45cfff946714d7fb2d25aa3320ce2c7.JPGJFIFHH ~ExifII*bj(1 r2iHHGIMP 2.10.302022:04:13 17:30:47x $*KJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( )Vpp=i7ari%X.PmLvYWҸbg>fTR@5jivMFyo7uky^$֮cU ^H|I]gS^C{kOy3H2zsXO+rNOsBD9" tc 9v=(?SWZ- v\ϦEM 1v5 9+ǫ=zm=N}>1 Cq-Ƙ.G +%Y"7w֌y1$g׵e*jE)qI'ηNF\VHNৃVv@J0sUB/\n 15.F0:W=ܸX/ϿzE\3$(Jȝ:^84`A 2psqQ$WYTKmJwU giaЊ3vzIYnU9t!>ՙ챫o#7ϵi[Σ3r<|׊nGu4&vZG2΁N}SĜq^Nh:\uf9NK_woOhVEI"?xk֑[QT ((((($($jhq}p?A^OWQ;3*ާSɩO%ZNd]qO֐צzM^YQzix\{PUzʤլ;n0´kEጩpbu#`h!ٯ2lRvNJ9/?J(]iK߉'̷BB#Z\G:#W tem9wE3H>zn7 ͤnA.u^{`V.zoS# dc\׉mRA,g9-l&c+pE㓊~(..' n ʣýKݔRq  DŽ~(=Y$yg;kWJ$H8L(s\d^:IQ:N>E6 G5]:a&Q֯vȕaW5Zn*EVfEPEPEKSլSq{2ƃO'F]$pp*c+X2\ݏr}\G$^ۭG٭s{Yz]pm3)- hk] !'}h>+m#JۧYeNz͌dں 'ÍpV[F?3uV% Oc9;ŕe#Ēlu#OPu-:NfOAߦ5kJe lG1)o~fX\P[6gz޼uMJZj]ͥz2:/=ZFco~l'W} Pn3 d٣Ѳ5Ҕ`/M'ַVaP(0Osצj;l-֕! !o *ÿ]pU*0ū3RwGGkf{x -mG~2^d.rWARSnVp kN*W7u$c6^na2]Χ9X}k4 W=JioofLGi?#rMvs R*(UoVt%mQE((4i1iWSYEu4@ע<rY![]*Ī2J3 mB2)iEA^햫J)d7z]6%yJ3sOZUkDyi*VE$-sq]1H#k=<APHGwIaY\]=f G<߅rxH7?WԮz6CXl:.rw*O$\Dme_2C.?K ]An)r2,_75Zuxn@I3>Vv(r^v2cwlե;DG0sr-ʧazzo(piZBvЎ[5I$@Ppm[H/V1Mu=G\u5PTjf1Sd*4;c{b]#oj䠊KK( \SZھfI3܅,SǸy=7+6r{ 7Hodu"\}1^d/d%OC^7j 2rC]Ə=#8 !s#l=xYPjdw5 ^_X fT}͞1F~7F<֧׵}"<T^kͅ^;e8r_c Or1ָ޲2z _Z%BfSU})Wb#W NU<2ﱇ\Mus޽6pqt\rz8ꗞ:ڏ i?.mgn$C `QŪ0R\okb͆_JEQEQERk="ծ/&TA<4 ep2zW6Z8x,..ʩq,uY~f闺ąW]pè.z(z ̍9?(C}Ǿ'7EN?Jι43qu<}+fw.Ԛf&uzu@m%t#PGX Ū7{gI nC}k+c-qgOiyqe0B;Jvյd{2[Юƈ@ڋlzq֮h:yH #~0GVCkm~ JuV;ӥ۹sML]qҰ G,YtÃ|sҬj Vݤh""D^>PFAqvlIol~u7:SNr7g[o*6q *3[\@ݾ3] X\[+Y (3+GbRc4R,qn\װEJ8ݶ9$_U:L:A)P>M q׵tڇ,5=l goүًX1e#^q?ASH%xj۴1Dz]͡Y7ՈLwFw\,*vPOˡ7VȋnE+?OaI`F":TX+-^_ X]BmaaO]#mmK/; #kM7Gqs0ys$>Rt2޹\fi >KŠG֩G^Zgc5+zt7ik^e%̷#ѐy2@Cs{Tx7C̀cc>(W)Y:qj*OFzݽ2Elup3($khԁӣ[v5;vvGQJqМeP 9cRgwwlrb pBZ]<lߺ5N931%GNÞHYnu5,w<"X 畹';p~k:p)A@tAZ0-lQEQEQEQE- ZAo;wC[PTGInp>pb ބWږ2هZ5 y7 I+]4+h)+s9Ep*s]4Ӛcgv p}4n$+= 2,^F"Rϡ rE4js-G|횖oi%iS^o;DP`Vt]jxVH? T -$kz @\<2r)WSjnuz: &<=v{jViYKRm%y o}"{0*մ剑e?!#am4 EݕV1}+4_:tPjg'u"TZEi0X֙#c5#tBpqN%~ ͶWlj3ыWM6h\,~>_ޢ -ݸsV1ԏs[ >0+\5gF;iƭΎ6F!7dw<^skl2ء9ҷ 4/t+߄-t-V+8j7<<7qy$}~vƣ`!@ M= UډSz1QjFTN((((((jasC?vV.}F(´O xdY̍)SRj n= ˦q[^OasL.Wud]]/M5[˔/Vҗ5!Xs#F0+cCXFld "W=E+ckp?{o{{h-QEQEQEQEQEQEQEQEQEW]įk,6js( kY\c ּ>X,yK)?کi0IQ2dϕ4md\z@2\#3h姹>k|9uc9ᗑ^Djh8jӕ=zVb'\gb2N#þldxJ1gU'3\ꌲ VwWh 6,QkX_*@DT@+Ϋ^UR{n2oqԴQXQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ *+rڧGPKu#󮲊i V0 !=JcOH0wv&Ih(0(((((((((http://ns.adobe.com/xap/1.0/ 0A0D97E03F35916DC7A4036BA944876A 20D92C4E36CDC45C9002AB26813EC50D 5630B4E40F7C73F7A3B9344AB54C8B1A 5B978DC267C42C2772B6FDD440FF192C 61086551C2CBAE46EFF7788AD772B181 65F83E7BF248301D4D9BE4A8DD9FFED4 72CC170CD10EDF780B08BBE69233CD6F 7CAC1F43B5C95E1D1EA963AAE5A7EC51 884D2D8EB867C942ECF0E09D6F80EEBD C7207B35A116B59BC70EFFFC9C83F9D3 adobe:docid:photoshop:1276f465-c842-117a-93d1-f3cfa7f5a3b0 adobe:docid:photoshop:33184193-fc4d-f84d-95da-ef1da37357a8 adobe:docid:photoshop:5f90a64c-c842-117a-93d1-f3cfa7f5a3b0 adobe:docid:photoshop:76d10a50-c83e-117a-93d1-f3cfa7f5a3b0 adobe:docid:photoshop:818b8012-c6e1-117a-bbe4-a763a911c00c adobe:docid:photoshop:991b252a-35c3-e34a-b15b-67078bd0f29e adobe:docid:photoshop:ce995f58-c83c-117a-93d1-f3cfa7f5a3b0 adobe:docid:photoshop:db5ce4fe-c83d-117a-93d1-f3cfa7f5a3b0 adobe:docid:photoshop:f654d918-c83e-117a-93d1-f3cfa7f5a3b0 xmp.did:CB090E777E7611E7AA4AE97DF43177EE XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmLPhotoshop 3.08BIM0Z%G7 2022-04-130<17:30:47-17:30C C        pq/G8&Wo`0Xڇ-vrN=?Ez4w cw̮h, W;0[Vz;8%Φ>G[Z]|>bLѧאU>saڿ qW]kz|qekĵV^کڧ9Ͻ*Ͻw5s"8‡Ru%Cofճ-Ҧ&XZ75mUņ[>fDտX{^$2Ǧ/ӻ>w6-ƯTG4F|nϣد#1#.XOͿϲ5Jr=KXqw[knB[7kmJ\5{g+y{篞׳E6uX[sYZ}/<} 5; c[w#Jɒ.E_nEg`wˉ'/O5qK_X5hЉo+,;?@i;oG=5~JyNI w6a[xsF¯7KQWU{Y|uyU<{95y3wn6m=u.f~}v򫛐QR>ql;K>^ueRP_p,36XrQ-.$m⏼9F8$s nޥ6j xOy?G i'[.T-5Eh?}o{'}[2ƳO<"+>{+y3Ek/]Exi?Lm1t"f l2O(جN-5m_oXvq-0ߎl >.ek{Xge7"q[mcCNat }4GGc^`'8ҳBԆ"EתhWAЙ#؄\C͹[@ EŖ@]͍Q*,>ƬC 2>x>8k5ʓrk6!Zt ]J왱6Zh٠T ً[=r c3[6V3s0XaEqKT` YZ}ZH\'>geqSۯLyR)Jub̼QJRXW2!"1 02@AQaq#P? ]=|bcTʷQ{N._Iq\- eUcxi襸vR|nlܟ47)Ԏ>"\(wANQd]'APaT1uO'ݛ@]nWNQaM6&.Q,;%SӘoZHV>gjyAL/7j@TCZ 6je=Χ]_XqNP&S)2mg jܦICc k:r AkY_AӃNNIR%:MRS 0LfT,M٪E_U4ΏOFrB1a/6!1"A02@ #QaqBPb?%L;×SbNC L " {ԛ!eDۦ@߷K^YU[4Da ".*tٰsvܡQ~mdtULjr qd8̆AHۮh#(7 "*5'NgXxB- fʂHϊ#ev}hh gRT7~z߄)sjo6)c6{}O4)PG#b8fC`2wNmŗHR> 0ӜE2/w˭SSX&t}r]Jƹchm۟D7uzZD7S"mb2Gi˓Jk?ꤟP]tˬQVMX}S=ꦤ Dַ 4iUnyyT%$R-Ր 5nQD$SR1#Z>h!S Is)Zmez$H41.pP6Sז!&ȹu (Iqw˩{ 7%9d6 E%\{|G`q {%:v_]YMD RCåwS XCb+ղjz2``vb7 0U4#(苍7{#Am£ki!z Hߊ8FFRde2ɲ-XtB 4.i|_SPec䣐H5=Hq̢O@[ܤզUMP6\)XہuHSo?E-eΈ~[C_$N4]MT\skj("7.gGLk;t鳽EF_q o *YQN$N7!YI \&9xVǖjg*{jA!1A"Qaq#2B0 3@RCr$%PSb?ɯ+6 XR(+*Հh1f wєyXT` w+aКe JĘ8n@@NxpvN[j\ LJ|.UCì :;*[|=zg S7$ₖ*¨oL ^vUE|m([.Гױ)ΦfYro75m _X]r SrhVq-QkY;@p eJHR7i!g02)Uhk|PlڵeJǐ hmB@ٺo7F+\op&6Pw3%GTԑ GUݟɫhuzzlTT^_>^QJ]uYMT G6G+E"ޑڍJij7 CS iV.#vPeZJ;Bn_-!Rx|20e@p|-fMTڮaHmśUՊWwaSNua ?ڧ,$d3<y~WUPFqSgmk s@mn*P@MXQ#AJ ȿᏜZ9=T>#=Y;8T1bU%'5_QQHF>0UuMk?zlX'd@qj,BK6:8Fibb~Z]gVV 2 p5۔do#183s)`H#1H+9X;#E#3ZIUj.MOkm&y aXqKτ_qaQ  Rһ$Xu[MH#-F`-` ң$+ښSv~.7xV0[m:9;qdI ZTZ; fM[ٵ$ $Mm S.0vl|!'eh8˪8C46- ٗ_H50gZlO}/!G_X3%d&*g(H9)ZvM1L2-g:`F{szˆGw5:j_}[ߺ5;fHN?-۠8ҭ;jaPUY[rmtHTy0}͜˭,Ʒ]H*/&ԙp( (p`O*:,#5UQU3+M[hYKcy5iSV0(['g/OSU츃ZET1#<mq(\υ) /_dqmY*kLqLhM;DXuNfA_|zVݥG)[9q47fZN)oZij/KE;Ap3s5Ql*BI&+)"ԘZW:AmeB/EJc|.\-3_c\*YO(B\lQ$?#mUJq]􅸭8w2ڱTj`*VB7~NzjHUń5(LlL4 LY@m*!1AQaq 0@P?! )d080.p_l7Yrx1Y\q  2[Zy!t]}]c/+Fwەe`IX+LcE|s  Šxt_9(2R!,jGu7QӇ%p 8ǹ`/bO0ExZ6\9Sgx6=ʨ/`@uYGO5st׎T^rmO|xr}]Gw9 nhb^D]-Hc/J~8F'gB'iFsg9i=&2"XN$˘'VB!<<Ś?iגebdE"DRLff&4p6qqOdL)Fi|ܸ<-a矨#|h^xԥ4vmNr*FǓ10RQ"C;Q|JPБ:d6A|o2>ֿc8ԒJϱ]=Gr9LOӦeHL F„ǃ#k XH+{ K9cB:&jien XKRFr%b@[׃_ȵB2oñ:jBRߓ0#7:ϦDY||c^GGBbr5ą/`2$z^uq|)!b \~/n`acx֡g"}Շ@6poI)el'zu߃a Ks-13v1^`E"ʹmC+ pvy{V2(\ -GI_vfRPݔ-knsoV)vBYV;}X);ڧ[iT)@ i>ジ "TF(PF3 O[W2QSO4vţ+]yp\{Uz8)EhZuw*7/~M:, &A"8@?H1TGK~V74Gba#~jLZ/c⸫`&,dQVӽjpOCվ!D.ph[^I .'s~ELvTXw#ml.vGt@rp]f)ţ/[&ϵ~86DTS;4t XPAHw?>V20y>{ 1t 'P~LDUq5DHDnͫ6G*>4=`[_/s!qG $6pa X<3)s;  "_~2W幰q%TvIDkTĵZP(@R>3jd\i~PnjtDYo7tD'N|.o@JeaI2Z#v" $Cﮀ*oA0rC9NȀ q7/3qWbX8 )􃸰xDdÝ&2þ rY˛r7R:ijnƾꚫtzȄ֐#v=ָI6"U9C"fମ t,<ܢcDLMlzKa PC{aO6(6t <9 Q"@$;MZi '$lr٨r':T18c)<E #b uL @m;{ ֨3Ty*>7)@W*!1AQaq0@ P?%7iFl9@\(*SB iX3({P<>t],GTHM?pT[$׊'5D Fʗlv7B@ @uGhm)Tꟴ0R (NT>B %2c1sQpL08w{a&O-QVa.Gr# 좘(ƨYlL s4͎ߨ/G SŠ@ܦkD24p2/j|t:}Sw1y:{ʤTpo.EFcW'tq ƻk?f.|loo 8Wp(>*J9.Κ?Pm f(&n6X%C `pm|6+aX&x5 ^p<9FmqeAIDޛoYS@j|ut'{Go ; @xd$S2d P( s8)8n6! 1 /9Cx061f ZXMc"rHX܉NfFvWIqSFSy_HzƲ= |ЎJ9 joT r(Z@ BA$υFZ' I@""Lf7[B)[mǦ*e.D>zH]F8^`@Gwkq7bÒG\ܢṹNl= ֳ2 (\7? @#SO7EʌcPiPNht57jk ,JîRYwt>N-zD%ƣWiR(!*+‹10j m]ĵ\(.L7،'Q8>K}!WG`JFW#Fcyh48M4Rlpܺ8; Gܖ%:E&rSE`:ԧaՐ A C=#"OPFB\lЀ$ylYw-v -g|DK\qQD0F94<9pa)!1AQaq 0@P? @AW0>^:tNz2_,q?%G]bONNbdAγJM~[%Q^ËC$`ysr]e2g\/}.v]^QC~LP#K^/n$G^7 8kjv|kB,5..I*\ ;|z88 pFse a8*d_(Db49gg(6l3vrq4t(@p"k8C @ʼʷ:w'T=$ʨ>&!8E,1u'`EЧHT Abp@s V%7nP摷q! 1dsw?2x#<C+g^' 1"(0A(ړn 2E`㏠!1_[xXTJ ,mhC~; qxE5ཁSZm6 *Î:T㣛6R"/>^mP-xh@N4< Î/mfD0'b8<Tz*!Cس99R3*Hx Phh#ǁY\\lcXBPITSW1pT& |@ [~6=d("@r:^z6<\0. i 8a:V \2r2bjIȩ>U&%ۍjZ -((c6'NL\*U \a7 P82vx_,<Z_w*5J@ y/ Wj!b+A/3q 4Bp!骞&A R%Brv뺆EeSQ:EyŔ0<֕y8?,BU[xU0 xv 6v4'Inlwr|W`j1嬶XT4,ྵ\t9}c=qxA,2f/ < 1}`? " ޣY[2.T@Uk?HIQicF,d fD2Qp 2,Q& a9`s *u?''o&ػl1lb ϝtHbs0KD't.r 9vO12)u@N*4d9sYf080gbZ!N,89L< 5%=m`wPF([P"Ųf#' +pDV%_9x |炘;3lj@eDyc?]+Gt)RUMK'pw(7+5L8i؎yUٳ,Ʋ>0Qs2ꊡR4)w@F|ˡ(VLҁ"ˇg4ɯL(D+zN{_+P $(S %o ]L0ZO.框fJ>w݅0c?ع=5>rzxHs8p扎AW84&)8'u< Dg78M2HT`x[̦)H a5edv3#2EƧL!N렠O|}Pm|^`{`8%#Uu 3*KXt#r^#!zg,&PzR) 4uHdA4JǘxG‰t P!:8<<$97qv3'*Ev<8 .G(AB#/VpFgm=4='wP? &:w/CL^2-.-j%F}Dv#21U`Caѽ+/e80#VFlmCvA|DQi}2ҕ|y5ǯWPK }Tres/PK }Ti18n/PK }T i18n/zh.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/de.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/es.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/fr.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/id.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/ja.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }Ti18n/ja-jph.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/ko.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/pl.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/uk.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }Ti18n/zh-hant.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/nl.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/it.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/hr.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/ru.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/pt.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/fi.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/tr.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/tk.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T i18n/en.json{ "vdr_grove_wifi_v2": "vdr grove wifi V2", "extensionName": "vdr grove wifi V2", "extensionDescription": "", "BLOCK_1653778053438_PINDIGIT_0": "D2", "BLOCK_1653778053438_PINDIGIT_1": "D3", "BLOCK_1653778053438_PINDIGIT_2": "D4", "BLOCK_1653778053438_PINDIGIT_3": "D5", "BLOCK_1653778053438_PINDIGIT_4": "D6", "BLOCK_1653778053438_PINDIGIT_5": "D7", "BLOCK_1653778053438_PINDIGIT_6": "D8", "BLOCK_1653778053438": "Initialise WIFI [pinDigit] ", "BLOCK_1653778053703_IPMODE_0": "IP", "BLOCK_1653778053703_IPMODE_1": "Passerelle", "BLOCK_1653778053703_IPMODE_2": "Masque", "BLOCK_1653778053703_IPMODE_3": "DNS", "BLOCK_1653778053703": "Définir IP [IPmode] [IP] ", "BLOCK_1653778053907_AP_0": "Client", "BLOCK_1653778053907_AP_1": "Borne", "BLOCK_1653778053907": "Connexion WIFI SSID [wifi_ssid] Mot de passe [wifi_pwd] mode [ap] ", "BLOCK_1653947300182": "succès", "BLOCK_1653778054314": "Adresse IP [ap] ", "BLOCK_1653778054501": "Ajouter donnée URL Champ [champ] Valeur [valeur] ", "BLOCK_1653778054769_POST_0": "GET", "BLOCK_1653778054769_POST_1": "POST", "BLOCK_1653778054769": "Accéder page WEB : Serveur [server] Port [port] Page [page] Méthode [POST] ", "BLOCK_1653860366115": "Démarrer serveur WEB port [port] ", "BLOCK_1653778055189_REFRESH_0": "Jamais", "BLOCK_1653778055189_REFRESH_1": "5 s", "BLOCK_1653778055189_REFRESH_2": "10 s", "BLOCK_1653778055189_REFRESH_3": "30 s ", "BLOCK_1653778055189": "Afficher la page WEB Titre [titre] rafraichir [refresh] ", "BLOCK_1653778055407_STYLE_0": "texte", "BLOCK_1653778055407_STYLE_1": "Titre1", "BLOCK_1653778055407_STYLE_2": "Titre2", "BLOCK_1653778055407": "Texte [texte] Style [style] ", "BLOCK_1653778055607": "Retour chariot", "BLOCK_1653778055799": "Bouton Texte [texte] Action [action] ", "BLOCK_1653778056017": "Lien texte [texte] URL [url] ", "cate_4da4ebd6": "vdr grove wifi V2" }PK }T0I:[j[jindex.jsPK }Tvq55jhandlerProxy.jsPK }Tsrc/PK }TŮCjCj ʠsrc/index.jsPK }T"v&&7 src/snippets.jsPK }TI~ src/generators.jsPK }T)Usrc/arduinosources.jsPK }TEsrc/facepanels.jsPK }T_[[src/exthandler.jsPK }T(fVFFesrc/handlerProxy.jsPK }T .^src/cates/PK }TV^src/cates/cate_4da4ebd6/PK }TΉ+ ^src/cates/cate_4da4ebd6/index.jsPK }T*E̐ksrc/cates/index.jsPK }Tǭ6|N|N!Tlsrc/cates/cate_4da4ebd6/blocks.jsPK }T src/langs/PK }T7z#7src/langs/zh.jsPK }T7z#Isrc/langs/de.jsPK }T7z#[src/langs/es.jsPK }T7z#msrc/langs/fr.jsPK }T7z#src/langs/id.jsPK }T7z#src/langs/ja.jsPK }T7z#src/langs/ja-jph.jsPK }T7z#src/langs/ko.jsPK }T7z#src/langs/pl.jsPK }T7z#src/langs/uk.jsPK }T7z# src/langs/zh-hant.jsPK }T7z#src/langs/nl.jsPK }T7z#src/langs/it.jsPK }T7z#*$src/langs/hr.jsPK }T7z#<,src/langs/ru.jsPK }T7z#N4src/langs/pt.jsPK }T7z#`<src/langs/fi.jsPK }T7z#rDsrc/langs/tr.jsPK }T7z#Lsrc/langs/tk.jsPK }T7z#Tsrc/langs/en.jsPK }Tii\src/langs/index.jsPK }T.> A`manifest.jsonPK }T fdata.bak/PK }Tx@@gdata.bak/ext.jsonPK }T`Tudata.bak/categroy.jsonPK }Ts_U~v~vwdata.bak/block.jsonPK }T)L Rdata.bak/translate.jsonPK }T)L data.bak/facepanel.jsonPK }Timgs/PK }T   )imgs/a3b6c9c85ea546c4a58fc2eac47faea2.pngPK }Tfww)7imgs/f45cfff946714d7fb2d25aa3320ce2c7.JPGPK }Tures/PK }T$ui18n/PK }T Gui18n/zh.jsonPK }T F}i18n/de.jsonPK }T Ei18n/es.jsonPK }T Di18n/fr.jsonPK }T Ci18n/id.jsonPK }T Bi18n/ja.jsonPK }TAi18n/ja-jph.jsonPK }T Di18n/ko.jsonPK }T Ci18n/pl.jsonPK }T Bi18n/uk.jsonPK }TAi18n/zh-hant.jsonPK }T Ei18n/nl.jsonPK }T Di18n/it.jsonPK }T Ci18n/hr.jsonPK }T Bi18n/ru.jsonPK }T Ai18n/pt.jsonPK }T @i18n/fi.jsonPK }T ?i18n/tr.jsonPK }T >i18n/tk.jsonPK }T = i18n/en.jsonPKEE<