NEWS
[gelöst] mit einem Schalter mehr schalten
-
Genau das ist der Punkt!
wenn er nur eine Statusanzeige ist - kann es funktionieren.
Wenn er auch etwas von den unteren Lichtern schaltet klappt es aber nicht
Gruß
Rainer
-
Wenn ich jetzt böse wäre dann wünsche es Dir weiter. Bin ein gutmütiger Mensch, aber der Ton verärgert mich.
Aber könntest Du mir trotzdem sagen was der übergeordnete Schalter bewirken soll. `
sorry, ich habs nicht böse gemeint.
ich würde nur gern entweder alles einzeln schalten oder gemeinsam schalten können
-
irgendwelche ideen oder ansätze? `
Vorschlag für Skript:const idAlles = '...'; // Datenpunkt-ID für Schalter "Alles" const idDecke = '...'; const idBett = '...'; const js = 'system.adapter.javascript.' + instance; var decke = getState(idDecke).val; var bett = getState(idBett).val; function oder() { var alles = false; if(decke || bett) alles = true; setState(idAlles, alles, true); } oder(); // Skriptstart on({id: idAlles, change: 'ne', fromNe: js}, function(dp) { setState(idDecke, dp.state.val); setState(idBett, dp.state.val); }); on(idDecke, function(dp) { decke = dp.state.val; oder(); }); on(idBett, function(dp) { bett = dp.state.val; oder(); }); ```` `danke, das hab ich gerade versucht, endet aber auch in einer loop
-
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
-
endet aber auch in einer loop `
Die Loop soll durchfromNe: jsverhindert 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: jsverhindert 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: jsverhindert 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 ?
-
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].