NEWS
[gelöst] mit einem Schalter mehr schalten
-
endet aber auch in einer loop `
Die Loop soll durchfromNe: js
verhindert werden. Bau mal ein Log ein.
on({id: idAlles, change: 'ne', fromNe: js}, function(dp) { log('Quelle: ' + dp.state.from); setState(idDecke, dp.state.val); setState(idBett, dp.state.val); });
Du hast nicht noch ein anderes Skript oder eine Szene mit Zugriff auf die beiden Lampen-Datenpunkte laufen ?
-
ich würde nur gern entweder alles einzeln schalten oder gemeinsam schalten können `
Dann ergibt dein "Wunsch" aber keinen Sinn.Da dieser aber anscheinend Bedingung ist, gibt es keine Lösung
Gruß
Rainer `
warum nicht?
- kein licht ist geschalten:
a) ich kann die lichter einzeln schalten
b) über den "alles" schalter eben alle ein/ausschalten
- 1 licht oder alle sind geschalten
a) man kann sie einzeln schalten
b) alle auf einmal
ist eigentlich sogar ein sehr valider anwendungsfall
-
endet aber auch in einer loop `
Die Loop soll durchfromNe: js
verhindert werden. Bau mal ein Log ein.
on({id: idAlles, change: 'ne', fromNe: js}, function(dp) { log('Quelle: ' + dp.state.from); setState(idDecke, dp.state.val); setState(idBett, dp.state.val); });
Du hast nicht noch ein anderes Skript oder eine Szene mit Zugriff auf die beiden Lampen-Datenpunkte laufen ? `
nein es läuft nur dieses 1 skript…sonst läuft da gar nix.....
bzw nodeRed, aber das simuliert mir ja nur quasi die schalter für alexa und setzt dann nur true oder false in einen der beiden datenpunkte (wie wenn der schalter betätigt werden würde)
-
ist eigentlich sogar ein sehr valider anwendungsfall `
Natürlich ist es das, aber so nicht realisierbar, da der Alles-Schalter sobald er verstellt wird, weil eine Lampe an ist sofort alle Lampen anstellt.(wie wenn der schalter betätigt werden würde) `
und genau das passiert, wenn es so konfiguriert istGruß
Rainer
-
ist eigentlich sogar ein sehr valider anwendungsfall `
Natürlich ist es das, aber so nicht realisierbar, da der Alles-Schalter sobald er verstellt wird, weil eine Lampe an ist sofort alle Lampen anstellt.(wie wenn der schalter betätigt werden würde) `
und genau das passiert, wenn es so konfiguriert istGruß
Rainer `
jaja, ich versteh ja das problem und ich sitz ja nicht erst seit 10 minuten bei dem problem.
ich dachte nur, vielleicht hätte jemand schon sowas ähnliches gemacht
-
so nicht realisierbar, da der Alles-Schalter sobald er verstellt wird, weil eine Lampe an ist sofort alle Lampen anstellt. `
Wenn als Quelle für die Umstellung des Alles-Schalters die Javascript-Instanz ausgeschlossen wird, passiert dies nicht (sollte zumndest so sein). -
endet aber auch in einer loop `
Die Loop soll durchfromNe: js
verhindert werden. Bau mal ein Log ein.
on({id: idAlles, change: 'ne', fromNe: js}, function(dp) { log('Quelle: ' + dp.state.from); setState(idDecke, dp.state.val); setState(idBett, dp.state.val); });
Du hast nicht noch ein anderes Skript oder eine Szene mit Zugriff auf die beiden Lampen-Datenpunkte laufen ? `
nein es läuft nur dieses 1 skript…sonst läuft da gar nix.....
bzw nodeRed, aber das simuliert mir ja nur quasi die schalter für alexa und setzt dann nur true oder false in einen der beiden datenpunkte (wie wenn der schalter betätigt werden würde) `
also schalte ich den "alles" schalter ein….funktioniert es und der log gibt folgendes aus:Quelle: system.adapter.web.1
schalte ich danach den alles schalter wieder aus ... bricht chaos aus und folgende logs:
Quelle: system.adapter.web.1
Quelle: system.adapter.javascript.0 (dann nur nocht diese)
-
so nicht realisierbar, da der Alles-Schalter sobald er verstellt wird, weil eine Lampe an ist sofort alle Lampen anstellt.
Wenn als Quelle für die Umstellung des Alles-Schalters die Javascript-Instanz ausgeschlossen wird, passiert dies nicht (sollte zumndest so sein).
genau da liegt wahrscheinlich das problem weil initial kommt es vom web
-
Quelle: system.adapter.javascript.0 (dann nur nocht diese) `
Das ist ein Fehler, denn es widerspricht fromNe: js. Ändere mal die 4. Zeile inconst js = 'system.adapter.javascript.0';
Welche Version hat der JS-Adapter ?
-
Falls auch das nicht hilft, ändere die Funktion
on(idAlles, function(dp) { if(dp.state.from != js) { setState(idDecke, dp.state.val); setState(idBett, dp.state.val); } });
-
Quelle: system.adapter.javascript.0 (dann nur nocht diese) `
Das ist ein Fehler, denn es widerspricht fromNe: js. Ändere mal die 4. Zeile inconst js = 'system.adapter.javascript.0';
Welche Version hat der JS-Adapter ? `
probier ich aus
JS-Adapter: 4.0.12
-
JS-Adapter: 4.0.12 `
Diese Version ist eine Test-Version. Bitte Downgrade auf Version 3.6.4 ! -
JS-Adapter: 4.0.12
Diese Version ist eine Test-Version. Bitte Downgrade auf Version 3.6.4 !
das wird ein bissl schwer, weil ich das set/getBinaryState von 4.0.11 brauche.
ich könnte nur auf einem anderen host eine instanz mit 3.6.4 laufen lassen und dort das skript ausführen lassen
-
weil ich das set/getBinaryState von 4.0.11 brauche. `
Dann probiere es mit der https://forum.iobroker.net/viewtopic.php?f=30&t=21441#p225340 (mit if-Abfrage). -
weil ich das set/getBinaryState von 4.0.11 brauche.
Dann probiere es mit der [https://forum.iobroker.net/viewtopic.php?f=30&t=21441#p225340](https://forum.iobroker.net/viewtopic.php?f=30&t=21441#p225340) (mit if-Abfrage).
super, danke, das läuft jetzt!!
-
das läuft jetzt!! `
Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst]. -
Und was soll passieren wenn ein Licht ein und das Andere aus ist und der Hauptschalter betätigt wird.
Nehme an alles ausschalten.