Lampenstatus anzeigen?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Lampenstatus anzeigen?

Beitrag von alchy » 05.04.2020, 20:34

Natürlich lässt sich das ableiten. Wie ich oben schon geschrieben habe, ist das auch kein Problem.

Man könnte aber auch nichts ableiten und einfach etwas weglassen.
Du musst nur dafür sorgen, das eben genau die Kanäle im Gewerk/Favoriten usw. drin sind.

Code: Alles auswählen

! Alle Kanäle in wählbaren verschiedenen Räumen/Gewerken/Favoriten (trennen mit \t )
! Ist ein Kanal an dann Logikvariable true
! v0.1 by Alchy
string liste = "LichtEG";
! Dont touch behind this Line
string index;integer counter = 0;
foreach (index, liste) {
object sec = dom.GetObject(index);
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
if (item.State()) {counter = counter +1; WriteLine(item);}
}
}
}
if (counter > 0) { dom.GetObject("Licht innen SV").State(true);} else{ dom.GetObject("Licht innen SV").State(false); }

Aber du benötigst dies nicht, wenn du nur eine Logikvariable bedienen willst, wenn irgendein Kanal an ist.
Für diese Anforderung klick dir bitte einfach ein Programm zusammen.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
Baxxy
Beiträge: 10844
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 609 Mal
Danksagung erhalten: 2229 Mal

Re: Lampenstatus anzeigen?

Beitrag von Baxxy » 06.04.2020, 00:33

Sorry für's einmischen, aber...
alchy hat geschrieben:
05.04.2020, 20:34
Man könnte aber auch nichts ableiten und einfach etwas weglassen.
nützt ihm auch nichts da dein Script die eingeschalteten HmIP-Geräte nicht registriert.
Wie es bei HmIP-Wired aussieht kann ich nicht beurteilen.
(fast) Originalscript:

Code: Alles auswählen

! Alle Kanäle in wählbaren verschiedenen Räumen/Gewerken/Favoriten (trennen mit \t )
! Ist ein Kanal an dann Logikvariable true
! v0.1 by Alchy
string liste = "Schaltdosen";
! Dont touch behind this Line
string index;integer counter = 0;
foreach (index, liste) {
object sec = dom.GetObject(index);
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
if (item.State())
{counter = counter +1; WriteLine(item);}
}}}
if (counter > 0) {WriteLine("Irgendwas ist an");}
else{WriteLine("Alles Aus!"); }
Ergebnis:

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
HB-LC-Sw2PBU-FM Aktorkanal:1
Irgendwas ist an
leicht abgeändertes Script:

Code: Alles auswählen

! Alle Kanäle in wählbaren verschiedenen Räumen/Gewerken/Favoriten (trennen mit \t )
! Ist ein Kanal an dann Logikvariable true
! v0.1 by Alchy
string liste = "Schaltdosen";
! Dont touch behind this Line
string index;integer counter = 0;
foreach (index, liste) {
object sec = dom.GetObject(index);
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
if (item.DPByHssDP("STATE").Value())
{counter = counter +1; WriteLine(item);}
}}}
if (counter > 0) {WriteLine("Irgendwas ist an");}
else{WriteLine("Alles Aus!"); }
Ergebnis:

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
HB-LC-Sw2PBU-FM Aktorkanal:1
HMIP-PSM 0D2:2
HMIP-PSM 0D2:3
HMIP-PSM DCD:3
Irgendwas ist an
Und ich habe auch nicht geschummelt, die PSM's waren die ganze Zeit an. :wink:

Grüße
Baxxy

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Lampenstatus anzeigen?

Beitrag von alchy » 06.04.2020, 06:31

Stimmt, danke fürs korrigieren.
Da sich ja IP wieder anders verhält als RF kann man mit State() auf den Kanal nicht den Zustand abfragen. Den Kuddelmuttel hatte ich ganz vergessen.
Was ich damit sagen wollte, war aber das man die Prüfung auf bestimmte HssTypen auch weglassen könnte dann aber auch das Problem in Richtung User verschiebt.
UND
Es ist immer noch nicht nötig ein Script verwenden. :roll:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Lampenstatus anzeigen?

Beitrag von Pihero » 06.04.2020, 09:24

Hallo Zusammen,

und danke für die nächtliche Diskussion. Ich werde heut abend testen.

Was ich nicht verstehe ist der Grund warum du KEIN Skript empfiehlst Alchy.
Ich sehe den Vorteil darin das ich noch eine wachsende Installation habe (Schaltschrank Dachgeschoss kommt demnächst) und ich somit Kanäle in meine Favoriten-Liste hinzufügen kann die dann entsprechend mit einbezogen werden.
Die Übersicht erscheint mir größer...

Danke schonmal bis dahin!

Gruß, Philipp

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Lampenstatus anzeigen?

Beitrag von alchy » 06.04.2020, 20:11

Du setzt eine Variable, wenn mindestens irgendein Aktorkanal oder auch mehrere in einer Gruppe eingeschalten ist/sind. :shock:
Wieso dafür ein Script nehmen? Dafür reicht eben auch ein Programm in dem du die Kanäle veroderst.
Mal ganz praktisch gefragt, was triggert jetzt dein Script?

Will man eine Übersicht haben wie viele Kanäle und welche oder in welchen Räumen noch Licht an ist, dann kommt man kaum um ein Script herum. Aber für deinen skizzierten Anwendungszweck sehe ich ein Script nicht als favorisierte Lösung.

Ich weiß, schwer zu glauben das ich etwas gegen eine Scriptlösung haben soll. :mrgreen: Hab ich grundsätzlich auch nicht, zumindest wo es Sinn macht. :?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Lampenstatus anzeigen?

Beitrag von Pihero » 07.04.2020, 13:44

Hallo Zusammen,

das Skript funktioniert jetzt!
Hab den oberen Teil von Baxxy genommen und das Variable setzten von Alchy...

Ich hab jetzt aber ein schlechtes Gewissen es zu nutzen :D :!:

Vielleicht nochmal eine blöde Frage bzgl. der Programm Variante:
Das Systemvariable Setzen (eingeschaltet) ist kein Problem mit "oder", ich bin mir bloß nicht sicher wie ich das Rücksetzen auf ausgeschaltet sinnvoll löse...ich müsste doch immer einen Kanal mit "Änderung auslösen" nehmen und dann alle anderen prüfen ob ausgeschaltet. Das Ganze dann für jeden Kanal mit "änderung auslösen" und alle weiteren mit prüfen, diese Gruppen müssten dann mit ODER verknüpft werden, richtig?

Danke für eure Mühen bis dahin und Gruß, Philipp

Benutzeravatar
Baxxy
Beiträge: 10844
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 609 Mal
Danksagung erhalten: 2229 Mal

Re: Lampenstatus anzeigen?

Beitrag von Baxxy » 07.04.2020, 14:34

Pihero hat geschrieben:
07.04.2020, 13:44
Das Ganze dann für jeden Kanal mit "änderung auslösen" und alle weiteren mit prüfen, diese Gruppen müssten dann mit ODER verknüpft werden, richtig?
Du denkst zu kompliziert. Einfach in deinem Programm bei SONST ---> Systemvariable auf "Alle Lichter aus" setzen.

Grüße
Baxxy

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Lampenstatus anzeigen?

Beitrag von alchy » 07.04.2020, 19:30

Pihero hat geschrieben:
07.04.2020, 13:44
Ich hab jetzt aber ein schlechtes Gewissen es zu nutzen :D :!:
Musst du nicht haben, es sei denn für das Nichtbeantworten von Fragen.
Es ist einfach immer wieder dasselbe.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Lampenstatus anzeigen?

Beitrag von Pihero » 08.04.2020, 09:59

:!: OK Danke Baxxy!

@Alchy: welche Frage blieb unbeantwortet?

Danke und Gruß, Philipp

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Lampenstatus anzeigen?

Beitrag von alchy » 08.04.2020, 13:45

Fragen sind die Sätze mit den komischen gebogenen Zeichen am Ende. :shock:
Wie viele davon siehst du denn?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic allgemein“