NEWS
Einfach Skript für Gruppenstatus
-
Hallo Zusammen,
kann mir einer Helfen, wie ihr ein Skript ausbauen würdet, dass den Status der Rückmeldung GA´s checkt und sobald einer "true" ist eine weitere GA auf true stellt?Ich habe 42 Aktorenkanäle mit Leuchten. Nun möchte ich einen Master etablieren, der natürlich "EIN" anzeigt, sobald eine Leuchte leuchtet.
Vielen Dank!!!
-
@ft-knorr
Bisschen wenig Info, oder?
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
Ich jedenfalls verstehe nur Bahnhof. GA's??Bei 42 Kanälen wäre "ID von Selektor" ein Ansatzpunkt.
-
@codierknecht
Dachte GA ist üblich als Bezeichnung für Gruppenadresse.Vielleicht nochmals etwas konkreter:
Jeder Autor hat ja ein Kommunikationsobjekt "Rückmeldung Schalten", dass true ist falls der Autor aktiv ist und die Leuchte leuchtet, sowie false, falls der Kanal ausgeschaltet ist.
Jedes dieser Kommunikationsobjekte habe ich in eine eigene Gruppenadresse gelegt. Also zum Beispiel "EG - Wohnzimmer - Deckenleuchte - Rückmeldung Schalten"
Ich möchte nun ein Blockly Skript entwerfen, dass alle diese 42 Gruppenadressen überwacht und selbst dann eine weitere Gruppenadresse (EG - Zentral - Leuchten - Rückmeldung Schalten) mit true oder false steuert. Diese letzte Gruppenadresse soll true sein, wenn bereits eine Leuchte leuchtet und false, wenn wirklich alle aus sind oder (null) haben.Vielleicht so besser ? Danke euch!
-
@ft-knorr sagte in Einfach Skript für Gruppenstatus:
Vielleicht so besser ?
Naja - nicht wirklich.
Um was geht es? KNX?Dachte GA ist üblich als Bezeichnung für Gruppenadresse.
Es gibt hunderte von Adaptern für die unterschiedlichsten Systeme. "Üblich" ist da wenig.
Egal - ich würde die betroffenen 42 Aktoren in eine Aufzählung packen oder über einen passenden Selektor ansprechen.
Bei Änderung eines der Aktoren durch die Liste rauschen und entsprechendtrue
(mindestens 1 Lampe an) oderfalse
(alle aus) ermitteln und wegschreiben.Zeig mal wie das im Baum aussieht.
-
@codierknecht
Ja KNX genau. Du hast recht, da gibt es eine Menge mehr. Das sind die Objekte in ioBroker -
@ft-knorr sagte in Einfach Skript für Gruppenstatus:
Vielleicht so besser ?
wie schon gesagt wurde: nicht wirklich.
Wer nicht genau weiß worum es da geht, kann damit wahrscheinlich nichts anfangen.GAs sind mir nur von der Bezeichnung nur von KNX bekannt.
Das Handling davon habe ich nie verstanden.Deswegen weiß ich auch nicht ob der Vorschlag von @Codierknecht funktionieren kann.
ich habe noch dunkel im Kopf, dass KNX für Sende- und Emfangsnachrichten unterschiedliche Kanäle nutzt, die ggf. erst vereint werden müssen.
Da müsste sich mal ein Wissender, der sich mit dem von dir verwendeten unbekannten Adapter auskennt einschalten. -
@ft-knorr sagte: Das sind die Objekte in ioBroker
Wenn alle IDs mit "Rückmeldung_Schalten" enden, kann der Selektor verwendet werden.
@ft-knorr sagte in Einfach Skript für Gruppenstatus:
Diese letzte Gruppenadresse soll true sein, wenn bereits eine Leuchte leuchtet und false, wenn wirklich alle aus sind oder (null) haben.
Diese ID bzw. deren Rückmeldung darf nicht auf "Rückmeldung_Schalten" enden.
-
@paul53
Genau sowas hatte ich im Sinn.@homoran sagte in Einfach Skript für Gruppenstatus:
ich habe noch dunkel im Kopf, dass KNX für Sende- und Emfangsnachrichten unterschiedliche Kanäle nutzt, die ggf. erst vereint werden müssen.
So wie ich das verstanden habe, will er ja die 42 nur lesen.
Beschrieben wird nur ein einzelner State. -
@paul53
Ja genau! Gibt es denn eine Möglichkeit die Objekte auch alle manuell auswählen? Ich will nur etwas dazulernen und den Case kann ich sicher noch auf andere Gruppen anwenden.Bei Falls Objekt "ids" kann ich doch auch eine Oder Logik einsetzten. Bei 42 wären es dann 43 mal "oder"
Ist das ganz schrecklich im Code-Sinn?
-
@ft-knorr sagte: 43 mal "oder"
Ist das ganz schrecklich im Code-Sinn?Ja.
@ft-knorr sagte in Einfach Skript für Gruppenstatus:
Gibt es denn eine Möglichkeit die Objekte auch alle manuell auswählen?
Ja, Liste mit den 42 IDs erstellen. Ist ganz schön aufwändig.
@ft-knorr sagte in Einfach Skript für Gruppenstatus:
Bei Falls Objekt "ids" kann ich doch auch eine Oder Logik einsetzten.
Nein, eine Oder-Verknüpfung funktioniert beim Trigger nicht. Nur einzelne ID, Liste mit IDs oder RegExp.
-
@ft-knorr sagte in Einfach Skript für Gruppenstatus:
Gibt es denn eine Möglichkeit die Objekte auch alle manuell auswählen?
Du könntest eine Aufzählung verwenden. Dort kannst Du die entsprechenden States manuell hinzufügen.
Angesprochen wird das im Script fast genauso mit z.B.
(functions=lights)
Die States werden einfach da rein gezogen:
Und im Script sieht das dann so aus:
-
@codierknecht sagte in Einfach Skript für Gruppenstatus:
@paul53
Genau sowas hatte ich im Sinn.@homoran sagte in Einfach Skript für Gruppenstatus:
ich habe noch dunkel im Kopf, dass KNX für Sende- und Emfangsnachrichten unterschiedliche Kanäle nutzt, die ggf. erst vereint werden müssen.
So wie ich das verstanden habe, will er ja die 42 nur lesen.
Beschrieben wird nur ein einzelner State.Für das nachhalten eines reinen True/False ist mir das eigentlich zu aufwändig. Ich komm aber mal wieder nicht an Blockly ran, deswegen als pseudo-code.
Eine Liste
idan
definieren, in denen die id‘s der eingangsstati gespeichert werden. Im trigger auf den selektor (oder eine vordefinierte Liste von Kandidaten):
Idx
= Index vonid
inidan
Falls (wert
== wahr undIdx
==0) fügeid
als letztes Objekt derListeidan
hinzu
Falls (wert
== falsch undIdx
<> 0) entferne Objekt an stelleIdx
aus der Liste.
Steuere ObjektID mit (Länge der Listeidan
>0)Da muss dann noch in scheifen geschleift werden.
A.