Próbuję zmodyfikować kod homebridge-wink3
, aby dodać zmienną, dzięki czemu mogę śledzić stan. Mam 5 odcieni w moim domu, więc każda instancja zmiennej musi być unikalna.Wyeksportowanie Javascript - Utwórz instancję zmiennych/obiektów
W pliku shade.js
ma;
exports.default = ({ Characteristic, Service }) => {
return {
type: "shade",
group: "shades",
services: [{
service: Service.WindowCovering,
characteristics: [{
characteristic: Characteristic.TargetPosition,
get: (state, desired_state) => desired_state.position * 100,
Chciałbym zmienić get
(i set
gdzie indziej w kodzie), więc używa zmiennej lokalnej lastState
śledzić stan.
get: (state, desired_state) => {
if (desired_state.position != null) {
lastState = desired_state.position * 100;
}
else if (lastState != undefined) {
desired_state.position = lastState/100;
}
return lastState;
spędziłem godziny próbuje dowiedzieć się, jak mieć kod utrzymania poszczególnych zmiennych za cieniu (instancja obiektu), ale oni zawsze wydają się być z tą samą instancję zmiennej lastState
.
Co muszę tu zrobić?
Wyświetl kod w kodzie https://github.com/sibartlett/homebridge-wink3/blob/master/src/devices/shade.js.
Gdzie zdefiniowałeś zmienną lastState? –
@ JorgeFuentesGonzález Nigdzie jeszcze. O to pytam. Gdzie i jak ją zadeklarować? Kod jest zapisany w ES7, a oryginalny "exports.default" wydaje się zwracać szereg parametrów (typ, grupa, usługi []). Potrzebuję, aby parametr/funkcja 'get' miał dostęp do zmiennej lokalnej (w moim przykładzie;' lastState'), którą można ustawić za pomocą parametru/funkcji 'set'. – mriksman
Nie jestem użytkownikiem 'homebridge-wink3', ale zrobię co w mojej mocy, aby pomóc. Problem polega na tym, że nie wiem, co próbowałem do tej pory i nie chcę tracić czasu na próbowanie tego samego, co próbowaliście przez wiele godzin. Moje myślenie o tym jest zwykle tym, co myślą inni użytkownicy StackOverflow, więc co próbowaliście do tej pory? –