@pittini
das habe ich ja ursprünglich gemacht. weil dann nicht ein wert kam außer verbindung true habe ich ja nach der miot geschaut und da steht eben nix von power oder all den anderen abfragen sondern die heißen eben da zb "switch status"
aktuell bin ich zurück gerudert und habe die js datei und das skript wie folgt, und auch nach neustart des js und des skripts und miio und mihome und alles irgendwie kommt die gleiche fehlermeldung weiterhin.
const Device = require('../device-miio');
module.exports = class extends Device {
static model = 'dmaker.fan.p15';
static name = 'Mi Smart Standing Fan Pro';
static image = 'http://static.home.mi.com/app/image/get/file/developer_1541408255kg3xtr1j.png';
constructor(opts) {
super(opts);
this._miotSpecType = 'urn:miot-spec-v2:device:fan:0000A005:dmaker-p15:1';
this._propertiesToMonitor = [
'power',
'angle',
'angle_enable',
'speed_level',
'natural_level',
'child_lock',
'poweroff_time',
'buzzer',
'led_b'];
}
getPower() {
const { power } = this.properties;
if (power === 'on') return true;
if (power === 'off') return false;
return undefined;
}
getFanLevel() {
const fanLevel = parseInt(this.properties.speed_level, 10);
const naturalLevel = parseInt(this.properties.natural_level, 10);
if (naturalLevel > 0) return naturalLevel;
if (fanLevel > 0) return fanLevel;
return undefined;
}
getFanSwing() {
const fanSwing = this.properties.angle_enable;
if (fanSwing === 'on') return true;
if (fanSwing === 'off') return false;
return undefined;
}
getSleepMode() {
const naturalLevel = parseInt(this.properties.natural_level, 10);
if (naturalLevel > 0) return true;
if (naturalLevel === 0) return false;
return undefined;
}
getBuzzer() {
const { buzzer } = this.properties;
if (buzzer === 'on') return true;
if (buzzer === 'off') return false;
return undefined;
}
getTimer() {
return this.properties.poweroff_time;
}
setPower(v) {
return this.miioCall('set_power', [v ? 'on' : 'off']);
}
setFanLevel(v) {
const method = this.getSleepMode() ? 'set_natural_level' : 'set_speed_level';
return this.miioCall(method, [v]);
}
setSleepMode(v) {
const method = v ? 'set_natural_level' : 'set_speed_level';
const fanSpeed = this.getFanLevel();
return this.miioCall(method, [fanSpeed]);
}
setSwing(v) {
return this.miioCall('set_angle_enable', [v ? 'on' : 'off']);
}
setSwingAngle(v) {
return this.miioCall('set_angle', [v]);
}
setBuzzer(v) {
return this.miioCall('set_buzzer', [v]);
}
setLcdBrightness(v) {
return this.miioCall('set_led_b', [v]);
}
setTimer(v) {
return this.miioCall('set_poweroff_time', [v]);
}
};
die anpassung im skript sieht so aus:
DefineDevice[17] = {
info: {},
model: "dmaker.fan.p15",
description: "Smartmi Standing Fan PRO",
setter: {
"power": async function (obj, val) { await device[obj].setPower(val) },
"angle": async function (obj, val) { await device[obj].setFanLevel(val) },
"angle_enable": async function (obj, val) { await device[obj].setSwing(val ? 'on' : 'off') },
"fan_level": async function (obj, val) { await device[obj].setFanLevel(val) },
"buzzer": async function (obj, val) { await device[obj].setBuzzer(val ? 'on' : 'off') },
"child_lock": async function (obj, val) { await device[obj].setChildLock(val ? 'on' : 'off') },
"led_b": async function (obj, val) { await device[obj].setLcdBrightness(val) },
"speed_level": async function (obj, val) { await device[obj].setSleepMode(val) },
"poweroff_time": async function (obj, val) { await device[obj].setTimer(val) }
},
common:
[{ name: "power", type: "boolean", role: "switch", read: true, write: true },
{ name: "Switch_Status", type: "boolean", role: "switch", read: true, write: true },
{ name: "angle", type: "number", read: true, write: true, min: 30, max: 140 },
{ name: "angle_enable", type: "boolean", role: "switch", read: true, write: true },
{ name: "fan_level", type: "number", read: true, write: true, min: 1, max: 4 },
{ name: "buzzer", type: "boolean", role: "switch", read: true, write: true },
{ name: "child_lock", type: "boolean", role: "switch", read: true, write: true },
{ name: "led_b", type: "boolean", role: "switch", read: true, write: true },
{ name: "speed_level", type: "number", read: true, write: true, min: 1, max: 4 },
{ name: "poweroff_time", type: "number", read: true, write: true, min: 0, max: 540, unit: "m" }]
};
und hier die meldung:
14:14:11.966 info javascript.0 (22796) Stop script script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO
14:14:11.979 info javascript.0 (22796) Start javascript script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO
14:14:11.984 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Starting AllMyMi V.0.2.11
14:14:11.984 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Reaching init
14:14:11.987 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: registered 0 subscriptions and 0 schedules
14:14:11.987 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: You are already logged in, login canceled
14:14:11.988 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Retrieving your in de registered MiHome Devices
14:14:12.167 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Found 3 MiHome Devices, those are:
14:14:12.168 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Mi Smart Standing Fan Pro
14:14:12.168 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Floorian
14:14:12.169 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Oberon
14:14:12.169 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Now searching for supported Devices...
14:14:12.170 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Device Mi Smart Standing Fan Pro is supported, creating DataPoints
14:14:12.170 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Reaching PrepareDeviceDps, did=24xxxxxxxx5 model=dmaker.fan.p15
14:14:12.171 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Reaching CreateStates()
14:14:12.191 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: 31 States created, now setting up channels!
14:14:12.193 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Reaching main
14:14:12.193 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Reaching WriteGenericDpValues()
14:14:12.196 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Reaching CreateDevices
14:14:12.197 info javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Now creating device for dmaker.fan.p15 / 24xxxxxxx5 / 192.168.178.125 / 2a4cxxxxxxxxxxxxxxxx7cec564xxxxxx7f / 10000
14:14:12.199 error javascript.0 (22796) script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO: Error: Model dmaker.fan.p15 is not supported
14:14:12.200 error javascript.0 (22796) at CreateDevices (script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO:660:36)
14:14:12.201 error javascript.0 (22796) at main (script.js.Tests.Xiaomi_Geräte_Smart_FAN_PRO:592:11)