Moin,
in einem anderen Beitrag( Datenpunkte zusammenführen switch + state) hat @Paul53 ein JS zur Verfügung gestellt:
// IDs anpassen
const idButton = 's7.0.DBs.DB1.NI02';
const idActor = 's7.0.DBs.DB1.Q02';
const js = 'system.adapter.javascript.' + instance;
const common = getObject(idButton).common;
const idVis = 'LOGO.s7-0.' + common.name.replace(/\s/g, '_');
common.read = true;
createState(idVis, getState(idActor).val, common);
on({id: 'javascript.0.' + idVis, change: 'ne', fromNe: js}, function() {
setState(idButton, true);
});
on(idActor, function(dp) {
setState(idVis, dp.state.val, true);
});
Kurz erklärt, es gibt in der S7/Logo ein Button "idButton" der kurz getastet wird und ein Ausgang der den Zustand anzeigt "idActor".
Jetzt möchte ich dies für meine Beleuchtung etc die über die S7 laufen benutzen, ein Test ist positiv verlaufen.
Ich möchte aber ungern für jede Lampe ein extra Skript machen, deswegen habe ich mir überlegt, geht sowas nicht mit einer Schleife?
Sowas wie
// IDs anpassen
const idButton1 = 's7.0.DBs.DB1.NI02';
const idActor1 = 's7.0.DBs.DB1.Q02';
const idButton2 = 's7.0.DBs.DB1.NI03';
const idActor2 = 's7.0.DBs.DB1.Q03';
...
Also immer eine fortlaufende Nummer angehangen an der Variable.
Jetzt könnte man ja im folgenden eben die Schleife erstellen, sodass er immer einen weiterzählt und dann immer von vorne durchgeht, bis er alle durch hat und dann wieder von vorne.
Dann hätte ich nur ein Skript.
Jetzt bin ich leider in JS nicht so fit, dass ich diese Schleife mir selber basteln kann.
Aber vielleicht hilft mir hier einer?
Gruß Thomas