HM-CC-RT-DN in Struktur nur bedingt umschalten

Begonnen von mcbo, 10 November 2014, 17:19:05

Vorheriges Thema - Nächstes Thema

mcbo

Hallo,

ich habe 6 Stück "HM-CC-RT-DN" Heizkörperthermostatventile in eine Struktur gesteckt.

define Heizung_Mode structure Heizung sz_hz_Clima wz_hz_Clima kue_hz_Clima leni_hz_Clima henri_hz_Clima bad_hz_Clima

Über eine Bluetooth - Anwesenheitserkennung, schalte ich den Modus der HK-Ventile,
zwischen "controlManu 15" und "controlMode auto", um.

sub
Heizung_off_Sub()
{
if ((Value("presence_Alle_iPhones") eq "0"))
{ fhem("set Heizung_Mode controlManu 15")};
}


sub
Heizung_on_Sub()
{
if ((Value("presence_Alle_iPhones") eq "1") )
{ fhem("set Heizung_Mode controlMode auto")};
}


Jetzt würde ich gerne nur bei den Thermostaten, in der Struktur, den Modus umschalten,
die nicht im "Party-Modus" sind.
Kann ich das über die Struktur lösen?
Oder muß ich für jeden Thermostaten ein eigens Script schreiben.

Gruß

Marcel

justme1968

du kannst ein [FILTER=...] einbauen.

schau mal in der commandref nach devspec und bei structure wie das an die devices durchgereicht wird.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mcbo

Da stehe ich irgendwie auf dem Schlauch  :-[

Hat jemand ein Codebeispiel für mich?


Danke

Marcel

marvin78

Hast du denn den Tipp

Zitatschau mal in der commandref [...]

beherzigt? Da stehen sogar Beispiele drin.

mcbo

Habe ich mehrfach studiert aber nicht so richtig verstanden.

Wenn ich z.B.: set Heizung_Mode FILTER=controlMode=manual
eingebe, müssten in der Struktur nur alle HM-CC-RT-DN sein, die sich im manuellen Modus befinden?

Oder wie muß ich den Filter verstehen?

justme1968

fast. das ist die syntax für ein device. die syntax für die structure ist etwas anders weil sich der filter nicht auf die structure sonder auf die devices in der structure bezieht.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mcbo

Du lässt mich aber ganz schön zappeln.  :'(

OK so?
Zitatset Heizung_Mode [FILTER=controlMode=manual]

Wie kann ich mir dann das gefilterte Ergebnis anzeigen lassen?

Mit "list Heizung_Mode" ?

justme1968

wieder fast :) da fehlt fehlt ja noch das kommando. also etwa so:set Heizung_Mode [FILTER=controlMode=manual] controlManu 15

in erster näherung bekommst du die liste mit list TYPE=CUL_HM:FILTER=controlMode=manualam besten sieht man es aber man verbose auf 5 stellt und/oder inform timer verwendet und einfach die strucure schaltet.


du musst immer unterscheiden zwischen der version ohne [] die die devices filtert auf die das set selber greift und der version mit [] die nicht direkt auf ein device angewendet wird sondern die von der structure durchgereicht werden soll.

das ganze ist im prinzip auch kombinierbar:set Heizung_.*:FILTER=xyz=abc [FILTER=controlMode=manual] controlManu 15das würde aus mehreren Heizung.* structure die jenigen auswählen bei denen xyz=abc ist und dann das controlManu  nur auf die devices in diesen structure los lassen bei denen der controllMode=manual ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mcbo

@justme1968

Danke, das ist genau das, was ich gesucht habe.
Habe es jetzt so umgesetzt:

sub
Heizung_off_Sub()
{
if ((Value("presence_Alle_iPhones") eq "0"))
{ fhem("set Heizung_Mode [FILTER=controlMode!=.*party] controlManu 15")};
}

sub
Heizung_on_Sub()
{
if ((Value("presence_Alle_iPhones") eq "1"))
{ fhem("set Heizung_Mode [FILTER=controlMode!=.*party] controlMode auto")};
}


Wenn ein Thermostat im "party" oder "set_party" Modus ist, wird er bei der Abwesenheitsschaltung nicht beachtet.


Gruß

Marcel