Hallo,
ich habe vor, ein zweiflügliches Fenster, an dem 2 Fensterkontakte sind, als ein zweiflügliches Fenster in einer Readingsgroup darzustellen.
Im Schlafzimmer befindet sich eine Heizung mit einem HM-Thermostat.
Über der Heizung ist ein doppelflügliches Fenster.
An jedem Flügel ist jeweils ein optischer HM-Sensor.
Fenster links/rechts auf => Heizung 5°C und erst wenn beide wieder zu sind, Heizung wieder auf letzten Wert, funktioniert alles. Die sind also alle miteinander verpaart.
Nun habe ich eine Heizungs-Readingsgroup mit 5 Wohnräumen (Wohnzimmer, Schlafzimmer, usw.).
In jeden Raum ist jeweils eine Heizung mit je einem Thermostat. Das wird mir alles brav angezeigt.
Desweiteren ist in jedem Raum entweder ein einflügliches oder ein zweiflügliches Fenster. Die möchte ich nun jeweils mit nur einem Symbol darstellen. Also wenn sie zu sind, jeweils nur ein grünes ein- oder zweiflügliches grünes Fenster und wenn sie offen sind, jeweils auch nur ein rotes ein- oder zweiflügliches Fenster, so dass man bei den zweiflüglichen Fenster jeweils das Symbol nimmt, wo das rechte, linke oder beide Fenster offen sind.
Wie kann ich dies nun in einem Dummy und/oder in meiner Heizungs-Readingsgroup realisieren?
Ich habe s schon soweit hin bekommen, dass mir der Heizungskram zu jeden Raum und auch beide Fensterflügel und die dazugehörigen Batterien seperat angezeigt werden. Aber wie kann ich die Anzeige ob Fenster offen oder zu auf nur ein Symbol verringern? das müsste doch gehen. Gesucht habe ich schon, aber bis jetzt leider noch keine für mich in Frage kommenden ähnlichen Beispiele gefunden.
Ich hoffe, man konnte mir folgen ...
Gruß jw1hal
Zitat von: jw1hal am 25 November 2018, 19:07:03
Hallo,
ich habe vor, ein zweiflügliches Fenster, an dem 2 Fensterkontakte sind, als ein zweiflügliches Fenster in einer Readingsgroup darzustellen.
Im Schlafzimmer befindet sich eine Heizung mit einem HM-Thermostat.
Über der Heizung ist ein doppelflügliches Fenster.
An jedem Flügel ist jeweils ein optischer HM-Sensor.
Fenster links/rechts auf => Heizung 5°C und erst wenn beide wieder zu sind, Heizung wieder auf letzten Wert, funktioniert alles. Die sind also alle miteinander verpaart.
Nun habe ich eine Heizungs-Readingsgroup mit 5 Wohnräumen (Wohnzimmer, Schlafzimmer, usw.).
In jeden Raum ist jeweils eine Heizung mit je einem Thermostat. Das wird mir alles brav angezeigt.
Desweiteren ist in jedem Raum entweder ein einflügliches oder ein zweiflügliches Fenster. Die möchte ich nun jeweils mit nur einem Symbol darstellen. Also wenn sie zu sind, jeweils nur ein grünes ein- oder zweiflügliches grünes Fenster und wenn sie offen sind, jeweils auch nur ein rotes ein- oder zweiflügliches Fenster, so dass man bei den zweiflüglichen Fenster jeweils das Symbol nimmt, wo das rechte, linke oder beide Fenster offen sind.
Wie kann ich dies nun in einem Dummy und/oder in meiner Heizungs-Readingsgroup realisieren?
Ich habe s schon soweit hin bekommen, dass mir der Heizungskram zu jeden Raum und auch beide Fensterflügel und die dazugehörigen Batterien seperat angezeigt werden. Aber wie kann ich die Anzeige ob Fenster offen oder zu auf nur ein Symbol verringern? das müsste doch gehen. Gesucht habe ich schon, aber bis jetzt leider noch keine für mich in Frage kommenden ähnlichen Beispiele gefunden.
Ich hoffe, man konnte mir folgen ...
Nachtrag: Hier noch mein Readingsgoup:Internals:
CFGFN
DEF <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil>,<Modus>,<Lock>,<Bat-H>,<Fenster>,<>,<Bat-F>,<>
01_WZ_Heizung_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-btnLock@01_WZ_Heizung,batteryLevel@01_WZ_Heizung,state@01_WZ_Fenster_links,state@01_WZ_Balkontuer_rechts,battery@01_WZ_Fenster_links,battery@01_WZ_Balkontuer_rechts
02_KZ_Heizung_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-btnLock@02_KZ_Heizung,batteryLevel@02_KZ_Heizung,state@02_KZ_Fenster,battery@02_KZ_Fenster
03_SZ_Heizung_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-btnLock@03_SZ_Heizung,batteryLevel@03_SZ_Heizung,state@03_SZ_Fenster_links,state@03_SZ_Fenster_rechts,battery@03_SZ_Fenster_links,battery@03_SZ_Fenster_rechts
04_KU_Heizung_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-btnLock@04_KU_Heizung,batteryLevel@04_KU_Heizung,state@04_KU_Fenster_links,state@04_KU_Fenster_rechts,battery@04_KU_Fenster_links,battery@04_KU_Fenster_rechts
05_BW_Heizung_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,R-btnLock@05_BW_Heizung,batteryLevel@05_BW_Heizung,state@05_BW_Fenster,battery@05_BW_Fenster
NAME Heizung_RG
NR 12564
NTFY_ORDER 50-TemperatursensorenHeizung
STATE Initialized
TYPE readingsGroup
mayBeVisible 1
CONTENT:
01_WZ_Heizung_Clima 1
02_KZ_Heizung_Clima 1
03_SZ_Heizung_Clima 1
04_KU_Heizung_Clima 1
05_BW_Heizung_Clima 1
CONTENT2:
01_WZ_Balkontuer_rechts 1
01_WZ_Fenster_links 1
01_WZ_Heizung 1
02_KZ_Fenster 1
02_KZ_Heizung 1
03_SZ_Fenster_links 1
03_SZ_Fenster_rechts 1
03_SZ_Heizung 1
04_KU_Fenster_links 1
04_KU_Fenster_rechts 1
04_KU_Heizung 1
05_BW_Fenster 1
05_BW_Heizung 1
DEVICES:
ARRAY(0x2e86b88)
ARRAY(0x5bde390)
ARRAY(0x21dbf28)
ARRAY(0x5c03458)
ARRAY(0x56ea068)
ARRAY(0x56e5d68)
DEVICES2:
ARRAY(0x2e86b88)
ARRAY(0x5bde390)
ARRAY(0x21dbf28)
ARRAY(0x5c03458)
ARRAY(0x56ea068)
ARRAY(0x56e5d68)
ARRAY(0x4bc21b0)
ARRAY(0x5bb28f0)
ARRAY(0x20f0f98)
ARRAY(0x4aaccd8)
ARRAY(0x5b606c8)
ARRAY(0x503eac0)
ARRAY(0x4aa78c8)
ARRAY(0x5bfe410)
ARRAY(0x4ad13b8)
ARRAY(0x4ba4228)
ARRAY(0x4cdabd0)
ARRAY(0x5eb0840)
ARRAY(0x5eb0708)
ARRAY(0x56f75d8)
ARRAY(0x5ddcd50)
ARRAY(0x4cc8e18)
ARRAY(0x5ee74c8)
ARRAY(0x5b5dbe8)
ARRAY(0x5701f78)
ARRAY(0x55cd3d8)
ARRAY(0x588a428)
ARRAY(0x5bfb8b0)
ARRAY(0x5710460)
ARRAY(0x5eef578)
ARRAY(0x5f4e710)
ARRAY(0x5eb5420)
fhem:
lastDefChange 516
last_update 1543169453.29366
helper:
DEF
valueFormat {
if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}
elsif($READING eq "batteryLevel"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}
elsif($READING eq "battery"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}}
valueStyle {if($READING eq "measured-temp")
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}
elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}}}
valueSuffix {
"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"
}
cellStyle:
r:1 style="font-weight:bold;;font-size:16px"
commands:
Heizung_RG.sollsetz desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5
R-btnLock.off set %DEVICE regSet btnLock on
R-btnLock.on set %DEVICE regSet btnLock off
controlMode.auto set %DEVICE controlMode manual
controlMode.manual set %DEVICE controlMode auto
mapping:
01_WZ_Heizung_Clima Wohnzimmer
02_KZ_Heizung_Clima Kinderzimmer
03_SZ_Heizung_Clima Schlafzimmer
04_KU_Heizung_Clima Küche
05_BW_Heizung_Clima Bad
positions:
01_WZ_Balkontuer_rechts.battery 2:11
01_WZ_Balkontuer_rechts.state 2:9
01_WZ_Fenster_links.battery 2:10
01_WZ_Fenster_links.state 2:8
01_WZ_Heizung.R-btnLock 2:6
01_WZ_Heizung.batteryLevel 2:7
01_WZ_Heizung_Clima.ValvePosition 2:4
01_WZ_Heizung_Clima.controlMode 2:5
01_WZ_Heizung_Clima.desired-temp 2:1
01_WZ_Heizung_Clima.measured-temp 2:3
02_KZ_Fenster.battery 3:10
02_KZ_Fenster.state 3:8
02_KZ_Heizung.R-btnLock 3:6
02_KZ_Heizung.batteryLevel 3:7
02_KZ_Heizung_Clima.ValvePosition 3:4
02_KZ_Heizung_Clima.controlMode 3:5
02_KZ_Heizung_Clima.desired-temp 3:1
02_KZ_Heizung_Clima.measured-temp 3:3
03_SZ_Fenster_links.battery 4:10
03_SZ_Fenster_links.state 4:8
03_SZ_Fenster_rechts.battery 4:11
03_SZ_Fenster_rechts.state 4:9
03_SZ_Heizung.R-btnLock 4:6
03_SZ_Heizung.batteryLevel 4:7
03_SZ_Heizung_Clima.ValvePosition 4:4
03_SZ_Heizung_Clima.controlMode 4:5
03_SZ_Heizung_Clima.desired-temp 4:1
03_SZ_Heizung_Clima.measured-temp 4:3
04_KU_Fenster_links.battery 5:10
04_KU_Fenster_links.state 5:8
04_KU_Fenster_rechts.battery 5:11
04_KU_Fenster_rechts.state 5:9
04_KU_Heizung.R-btnLock 5:6
04_KU_Heizung.batteryLevel 5:7
04_KU_Heizung_Clima.ValvePosition 5:4
04_KU_Heizung_Clima.controlMode 5:5
04_KU_Heizung_Clima.desired-temp 5:1
04_KU_Heizung_Clima.measured-temp 5:3
05_BW_Fenster.battery 6:10
05_BW_Fenster.state 6:8
05_BW_Heizung.R-btnLock 6:6
05_BW_Heizung.batteryLevel 6:7
05_BW_Heizung_Clima.ValvePosition 6:4
05_BW_Heizung_Clima.controlMode 6:5
05_BW_Heizung_Clima.desired-temp 6:1
05_BW_Heizung_Clima.measured-temp 6:3
valueColumn:
R-btnLock 6
ValvePosition 4
battery 10
batteryLevel 7
controlMode 5
desired-temp 1
measured-temp 3
sollsetz 2
state 8
valueIcon:
R-btnLock.off secur_open@0CFB0C
R-btnLock.on secur_locked@F7301D
R-btnLock.set_off hourglass
R-btnLock.set_on hourglass
ValvePosition.0 sani_heating_level_0@002AE0
ValvePosition.10 sani_heating_level_10@F8D53D
ValvePosition.100 sani_heating_level_100@E50005
ValvePosition.20 sani_heating_level_20@FF9341
ValvePosition.30 sani_heating_level_30@F17F3F
ValvePosition.40 sani_heating_level_40@E46C3C
ValvePosition.50 sani_heating_level_50@DE3B3A
ValvePosition.60 sani_heating_level_60@A30D2D
ValvePosition.70 sani_heating_level_70@B40A23
ValvePosition.80 sani_heating_level_80@C40619
ValvePosition.90 sani_heating_level_90@D4030F
battery.0 measure_battery_0@E50005
battery.100 measure_battery_100@0CFB0C
battery.25 measure_battery_25@FB5909
battery.50 measure_battery_50@F5FF10
battery.75 measure_battery_75@42BC0A
batteryLevel.0 measure_battery_0@E50005
batteryLevel.100 measure_battery_100@0CFB0C
batteryLevel.25 measure_battery_25@FB5909
batteryLevel.50 measure_battery_50@F5FF10
batteryLevel.75 measure_battery_75@42BC0A
controlMode.auto sani_heating_automatic@FFC13A
controlMode.boost sani_heating_boost@FB0C02
controlMode.manual sani_heating_manual@795CFF
controlMode.set_auto hourglass
controlMode.set_boost hourglass
controlMode.set_manual hourglass
state.closed fts_window_1w@green
state.open fts_window_1w_open@red
values:
formated:
undef
ARRAY(0x55f0f68)
undef
ARRAY(0x5d90cf0)
ARRAY(0x5eebea8)
ARRAY(0x5ddb910)
ARRAY(0x4fae4e8)
ARRAY(0x550c048)
ARRAY(0x56e4360)
ARRAY(0x56e8ae0)
ARRAY(0x4aaa938)
ARRAY(0x5eb5b88)
orig:
undef
ARRAY(0x550c450)
undef
ARRAY(0x5bfba30)
ARRAY(0x56fdaf0)
ARRAY(0x5c48128)
ARRAY(0x5d99908)
ARRAY(0x5c3b3d0)
ARRAY(0x5c68968)
ARRAY(0x5c62b38)
ARRAY(0x5b5d498)
ARRAY(0x3e12670)
prefixsuffix:
undef
ARRAY(0x5c05758)
undef
ARRAY(0x5ef4850)
ARRAY(0x5d99710)
ARRAY(0x588d728)
ARRAY(0x4ea6828)
ARRAY(0x5898af0)
ARRAY(0x4b1d7a0)
ARRAY(0x55cdcd8)
ARRAY(0x4e421e0)
ARRAY(0x58a0b80)
Attributes:
cellStyle {
"r:1"=>'style="font-weight:bold;;font-size:16px"'
}
commands {
'Heizung_RG.sollsetz'=>'desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5',
"controlMode.manual"=>"set %DEVICE controlMode auto",
"controlMode.auto"=>"set %DEVICE controlMode manual",
"R-btnLock.on"=>"set %DEVICE regSet btnLock off",
"R-btnLock.off"=>"set %DEVICE regSet btnLock on"
}
group 20_Sensoren_RG
mapping {
'01_WZ_Heizung_Clima'=>"Wohnzimmer",
'02_KZ_Heizung_Clima'=>"Kinderzimmer",
'03_SZ_Heizung_Clima'=>"Schlafzimmer",
'04_KU_Heizung_Clima'=>"Küche",
'05_BW_Heizung_Clima'=>"Bad"
}
room 00_Diabeck,70_Heizung
valueColumn {
'desired-temp'=>1,
'sollsetz'=>2,
'measured-temp'=>3,
'ValvePosition'=>4,
'controlMode'=>5,
'R-btnLock'=>6,
'batteryLevel'=>7,
'state'=>8,
'battery'=>10
}
valueFormat {
if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}
elsif($READING eq "batteryLevel"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}
elsif($READING eq "battery"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}}
valueIcon {
'controlMode.manual' => 'sani_heating_manual@795CFF',
'controlMode.auto' => 'sani_heating_automatic@FFC13A',
'controlMode.boost' => 'sani_heating_boost@FB0C02',
'R-btnLock.on'=>'secur_locked@F7301D',
'R-btnLock.off'=>'secur_open@0CFB0C',
'ValvePosition.0' => 'sani_heating_level_0@002AE0',
'ValvePosition.10' => 'sani_heating_level_10@F8D53D',
'ValvePosition.20' => 'sani_heating_level_20@FF9341',
'ValvePosition.30' => 'sani_heating_level_30@F17F3F',
'ValvePosition.40' => 'sani_heating_level_40@E46C3C',
'ValvePosition.50' => 'sani_heating_level_50@DE3B3A',
'ValvePosition.60' => 'sani_heating_level_60@A30D2D',
'ValvePosition.70' => 'sani_heating_level_70@B40A23',
'ValvePosition.80' => 'sani_heating_level_80@C40619',
'ValvePosition.90' => 'sani_heating_level_90@D4030F',
'ValvePosition.100' => 'sani_heating_level_100@E50005',
'batteryLevel.100'=>'measure_battery_100@0CFB0C',
'batteryLevel.75'=>'measure_battery_75@42BC0A',
'batteryLevel.50'=>'measure_battery_50@F5FF10',
'batteryLevel.25'=>'measure_battery_25@FB5909',
'batteryLevel.0'=>'measure_battery_0@E50005',
'battery.100'=>'measure_battery_100@0CFB0C',
'battery.75'=>'measure_battery_75@42BC0A',
'battery.50'=>'measure_battery_50@F5FF10',
'battery.25'=>'measure_battery_25@FB5909',
'battery.0'=>'measure_battery_0@E50005',
'controlMode.set_boost' => 'hourglass',
'controlMode.set_auto' => 'hourglass',
'controlMode.set_manual' => 'hourglass',
'R-btnLock.set_on' => 'hourglass',
'R-btnLock.set_off' => 'hourglass',
'state.closed'=>'fts_window_1w@green',
'state.open'=>'fts_window_1w_open@red'
}
valueStyle {if($READING eq "measured-temp")
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}
elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}}}
valueSuffix {
"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"
}
Gruß jw1hal
Wenn denn alles funktioniert? Warum dann nicht den Window-Kanal vom Aktor dafür nehmen?
OK, ist ne Idee. Ich probiere mal ... melde mich nochmal ...
Edit:
Ich glaube das geht nicht, weil da ja last bei state steht, also was zuletzt geöffnet oder geschlossen wurde. Da weiß man ja nicht, was der andere Flügel für einen Zustand hat. Ich gucke mir das aber nochmal genauer an, denn schließlich muss der Thermostat ja auch wissen, ob beide Flügel oder nur einer offen ist.
stimmt! Ich hab gerade mal bei mir eine ähnliche Stelle gesucht. Ich habe das über eine zusätzliche Funktion gemacht, welche im attr stateFormat werkelt und somit mehr als nur an und aus zurück gibt. In der Funktion prüfe ich dann auch andere Sensoren und habe somit mehr Möglichkeiten im attr stateIcon.
mach die Doppelfester jeweils in einer Structure das klappt wunderbar
@RomanticBoy83
Hast du da mal ein Beispiel für mich, was ich verwenden und auf meine Bedürfnisse abändern kann?
@Wuppi68
Danke. Ich habe zwar kein Plan davon, aber werde mich jetzt mal mit beschäftigen. Mal schauen, ob mir da ein Licht aufgeht.
Entweder hab ich´s noch nicht gefunden oder es ist nicht das, was ich suche. Mit Structure kann ich Geräte zusammenfassen, gemeinsam schalten oder gemeinsame Ergebnisse erhalten. Also ALLES an oder aus, ALLES offen oder geschlossen. Das ist aber nicht das, was ich suche.
Zitat von: jw1hal am 25 November 2018, 22:22:42
Entweder hab ich´s noch nicht gefunden oder es ist nicht das, was ich suche. Mit Structure kann ich Geräte zusammenfassen, gemeinsam schalten oder gemeinsame Ergebnisse erhalten. Also ALLES an oder aus, ALLES offen oder geschlossen. Das ist aber nicht das, was ich suche.
dann kannst Du es auch direkt in der ReadingsGroup machen ;-)
im Attribut
valueFormat steht bei mir folgende Formel drinnen ...
{
if($READING eq 'ValvePosition' && $VALUE ne '0')
{$VALUE = int($VALUE/10)*10}
elsif($READING eq 'batteryLevel')
{
if($VALUE>=3)
{$VALUE=100}
elsif($VALUE>=2.8)
{$VALUE=75}
elsif($VALUE>=2.6)
{$VALUE=50}
elsif($VALUE>=2.4)
{$VALUE=25}
else
{$VALUE=0}
}
elsif($READING eq 'co2')
{
if($VALUE<800)
{$VALUE=1}
elsif($VALUE<1500)
{$VALUE=2}
else
{$VALUE=3}
}
elsif($READING eq 'desired-temp' and $VALUE eq 'on')
{
$VALUE=99
}
}
und im Attribut
valueIcon{
"controlMode.manual" => 'sani_heating_manual@795CFF',
"controlMode.auto" => 'sani_heating_automatic@FFC13A',
"controlMode.boost" => 'sani_heating_boost@FB0C02',
'humidity' => 'humidity@6FD9FB',
'R-modusBtnLock.on' => 'secur_locked@F7301D',
'R-modusBtnLock.off' => 'secur_open@0CFB0C',
'R-modusBtnLock.set_on' => 'hourglass',
'R-modusBtnLock.set_of' => 'hourglass',
'R-btnLock.on' => 'secur_locked@F7301D',
'R-btnLock.off' => 'secur_open@0CFB0C',
'R-btnLock.set_on' => 'hourglass',
'R-btnLock.set_off' => 'hourglass',
'R-globalBtnLock.on' => 'secur_locked@F7301D',
'R-globalBtnLock.off' => 'secur_open@0CFB0C',
'R-globalBtnLock.set_on' => 'hourglass',
'R-globalBtnLock.set_off' => 'hourglass',
'ValvePosition.0' => 'sani_heating_level_0@002AE0',
'ValvePosition.10' => 'sani_heating_level_10@F8D53D',
'ValvePosition.20' => 'sani_heating_level_20@FF9341',
'ValvePosition.30' => 'sani_heating_level_30@F17F3F',
'ValvePosition.40' => 'sani_heating_level_40@E46C3C',
'ValvePosition.50' => 'sani_heating_level_50@DE3B3A',
'ValvePosition.60' => 'sani_heating_level_60@A30D2D',
'ValvePosition.70' => 'sani_heating_level_70@B40A23',
'ValvePosition.80' => 'sani_heating_level_80@C40619',
'ValvePosition.90' => 'sani_heating_level_90@D4030F',
'ValvePosition.100' => 'sani_heating_level_100@E50005',
'battery.ok' => 'measure_battery_100@42BC0A',
'battery.low' => 'measure_battery_0@E50005',
'batteryLevel.100' => 'measure_battery_100@0CFB0C',
'batteryLevel.75' => 'measure_battery_75@42BC0A',
'batteryLevel.50' => 'measure_battery_50@F5FF10',
'batteryLevel.25' => 'measure_battery_25@FB5909',
'batteryLevel.0' => 'measure_battery_0@E50005',
'controlMode.set_boost' => 'hourglass',
'controlMode.set_auto' => 'hourglass',
'controlMode.set_manual' => 'hourglass',
'controlMode.set_on' => 'hourglass',
'R-globalBtnLock.set_on' => 'hourglass',
'R-globalBtnLock.set_off' => 'hourglass',
'R-modusBtnLock.set_on' => 'hourglass',
'R-modusBtnLock.set_off' => 'hourglass',
'state.closed' => 'fts_window_1w@green',
'state.open' => 'fts_window_1w_open@red',
'co2.1' => 'system_fhem@green',
'co2.2' => 'system_fhem@orange',
'co2.3' => 'system_fhem@red'
}
dann solltest Du am besten nur im
valueFormat Deine Doppelfenster entsprechend aggreieren (state.left|right|both) und die passenden Icons bei
valueIcon anwählen ;-)
Da steige ich leider nicht ganz durch und ein Beispiel kann ich leider auch nicht erkennen, was ich an meine Gegebenheiten anpassen könnte.
Ich habe es dann auf diese Weise (https://forum.fhem.de/index.php/topic,83582.msg758187.html#msg758187) realisiert.
Zitat von: jw1hal am 25 November 2018, 22:22:42
Entweder hab ich´s noch nicht gefunden oder es ist nicht das, was ich suche. Mit Structure kann ich Geräte zusammenfassen, gemeinsam schalten oder gemeinsame Ergebnisse erhalten. Also ALLES an oder aus, ALLES offen oder geschlossen. Das ist aber nicht das, was ich suche.
Nur der Vollständigkeit halber...
structure heisst nicht ALLES oder NICHTS.
In Deinem Fall könntest Du auf einen Blick sehen, ob Dein Fenster komplett geschlossen, oder mindestens ein Flügel offen ist.
In den Details der structure hättest Du den genauen Status von jedem einzelnen Flügel.
So sehe ich bei mir auf einen Blick, ob alle Wohnungsfenster geschlossen sind, oder ob (und wenn ja welche(s) noch was offen/gekippt ist.
Ich wüsste aber nicht, wie ich das dann im readingsgroup nutzen könnte. Da brauche ich jeweils ein Device mit mehreren Status'en. Und so mit diesen closeclose, openopen, closeopen und openclose konnte ich dann was anfangen, das hatte ich gesucht.
Nun werde ich aber alles ändern. Ich hatte überlegt, ob ich zu diesen Fensterkontakten, bei denen ich ja nur auf und zu erkennen kann, nochmal so viele dazu hole und dann gleich noch die Türen damit ausstatte, damit ich auch gekippte Fenster und offene Türen sehen kann.
Und gibt es ja auch die Möglichkeit mit diesen Fenstergriffsensoren. Es könnte ja sein, dass ein Fenster am Griff offen ist, aber der Flügel geschlossen bzw. angelehnt. So könnte man das mit den Fenstergriffsensoren besser machen. Da dies aber dann nochmal über 500 kosten würde, mache ich es anders. Da kaufe ich nur die Griffsensoren, sind dann nochmal um die 300 und die Optischen kann ich dann an die Türen machen.
Von daher muss ich dann eh alles umstricken. Da kommen bestimmt wieder neue Probleme.
Auf jeden Fall hatte ich mich nun gefreut, dass ich bei Doppelflüglern beide Flügel in einem Symbol sehe.
Nun brauche ich nur noch ein Symbol mit Tür und Fenster (Balkon) in Kombination. Zur Not muss ich mir das irgendwie selbst basteln.
Um das abzuschließen, möchte ich hier noch meine derzeitige endgültige Lösung aufzeigen.
Ich habe nun eine Readingsgroup, in der mir von 5 Räumen die Temperaturen zu den Heizungen, der Status von Fenster und Türen, alle Batterien davon angezeigt werden. Desweiteren kann ich die Temperatur udn den Modus ändern und auf Burst stellen. Verbunden damit habe ich die Sache noch unterschiedliche Einstellungen zu Fenster/Tür/auf/gekippt/geschlossen erstellt, was aber nichts mit dem Thema hier zu tun hat und man hier (https://forum.fhem.de/index.php/topic,93903.msg866511.html#msg866511) nachlesen kann.
Hier nun nochmal die List´s zu dieser Thematik hier:
Readingsgroup:Internals:
DEF <Heizung>,<|>,<Soll>,<Soll neu>,<Ist>,<Ventil>,<Modus/Boost>,<Sperre>,<Batterie>,<|>,<Fenster>,<Batterie >,<|>,<Türen>,<Batterie>
01_WZ_Heizung_Clima:<|>,desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,controlModeboost,R-globalBtnLock@01_WZ_Heizung,R-btnLock@01_WZ_Heizung,batteryLevel@01_WZ_Heizung,<|>,state@01_WZ_Fenster,battery@01_WZ_Fenster_links,battery@01_WZ_Balkontuer_rechts,<|>,state@01_WZ_Tuer,battery@01_WZ_Tuer
02_KZ_Heizung_Clima:<|>,desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,controlModeboost,R-globalBtnLock@02_KZ_Heizung,R-btnLock@02_KZ_Heizung,batteryLevel@02_KZ_Heizung,<|>,state@02_KZ_Fenster,battery@02_KZ_Fenster,<>,<|>,state@02_KZ_Tuer,battery@02_KZ_Tuer
03_SZ_Heizung_Clima:<|>,desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,controlModeboost,R-globalBtnLock@03_SZ_Heizung,R-btnLock@03_SZ_Heizung,batteryLevel@03_SZ_Heizung,<|>,state@03_SZ_Fenster,battery@03_SZ_Fenster_links,battery@03_SZ_Fenster_rechts,<|>,state@03_SZ_Tuer,battery@03_SZ_Tuer
04_KU_Heizung_Clima:<|>,desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,controlModeboost,R-globalBtnLock@04_KU_Heizung,R-btnLock@04_KU_Heizung,batteryLevel@04_KU_Heizung,<|>,state@04_KU_Fenster,battery@04_KU_Fenster_links,battery@04_KU_Fenster_rechts,<|>,state@04_KU_Tuer,battery@04_KU_Tuer
05_BW_Heizung_Clima:<|>,desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,controlModeboost,R-globalBtnLock@05_BW_Heizung,R-btnLock@05_BW_Heizung,batteryLevel@05_BW_Heizung,<|>,state@05_BW_Fenster,battery@05_BW_Fenster,<>,<|>,state@05_BW_Tuer,battery@05_BW_Tuer
NAME Heizung_RG
NR 340
NTFY_ORDER 50-Heizung_RG
STATE Initialized
TYPE readingsGroup
mayBeVisible 1
CONTENT:
01_WZ_Heizung_Clima 1
02_KZ_Heizung_Clima 1
03_SZ_Heizung_Clima 1
04_KU_Heizung_Clima 1
05_BW_Heizung_Clima 1
CONTENT2:
01_WZ_Balkontuer_rechts 1
01_WZ_Fenster 1
01_WZ_Fenster_links 1
01_WZ_Heizung 1
01_WZ_Tuer 1
02_KZ_Fenster 1
02_KZ_Heizung 1
02_KZ_Tuer 1
03_SZ_Fenster 1
03_SZ_Fenster_links 1
03_SZ_Fenster_rechts 1
03_SZ_Heizung 1
03_SZ_Tuer 1
04_KU_Fenster 1
04_KU_Fenster_links 1
04_KU_Fenster_rechts 1
04_KU_Heizung 1
04_KU_Tuer 1
05_BW_Fenster 1
05_BW_Heizung 1
05_BW_Tuer 1
DEVICES:
ARRAY(0x487c5f8)
ARRAY(0x45e7168)
ARRAY(0x4e7b208)
ARRAY(0x3af9428)
ARRAY(0x48ca900)
ARRAY(0x4eb0260)
DEVICES2:
ARRAY(0x487c5f8)
ARRAY(0x45e7168)
ARRAY(0x4e7b208)
ARRAY(0x3af9428)
ARRAY(0x48ca900)
ARRAY(0x4eb0260)
ARRAY(0x4addcb8)
ARRAY(0x4eb92b0)
ARRAY(0x50d2668)
ARRAY(0x4eb9478)
ARRAY(0x5104688)
ARRAY(0x4e4a0f8)
ARRAY(0x48b2718)
ARRAY(0x50eba00)
ARRAY(0x4e937b8)
ARRAY(0x50ec878)
ARRAY(0x50e3c58)
ARRAY(0x49f7b28)
ARRAY(0x48b98c0)
ARRAY(0x48b1ba8)
ARRAY(0x4e02a78)
ARRAY(0x4f0e240)
ARRAY(0x4e24628)
ARRAY(0x4af0d78)
ARRAY(0x50e53b0)
ARRAY(0x48aae60)
ARRAY(0x50f8aa8)
ARRAY(0x28f5da0)
ARRAY(0x45eada8)
ARRAY(0x50fcc20)
ARRAY(0x4ed6380)
ARRAY(0x50faea8)
ARRAY(0x4e08168)
ARRAY(0x4ea8860)
ARRAY(0x4a87d40)
ARRAY(0x48bf440)
ARRAY(0x4af64e8)
ARRAY(0x51074e8)
ARRAY(0x4e0b870)
ARRAY(0x4bb7ec0)
ARRAY(0x49cc550)
ARRAY(0x4e4a5a8)
ARRAY(0x50ece18)
ARRAY(0x4f1a3c8)
fhem:
lastDefChange 35
last_update 1543762375.79242
helper:
DEF
valueFormat {
if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}
elsif($READING eq "batteryLevel"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}
elsif($READING eq "battery"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}
}
valueStyle {if($READING eq "measured-temp"){my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}
elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}
}
}
valueSuffix {
"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"
}
cellStyle:
r:1 style="font-weight:bold;;font-size:18px;;color:RoyalBlue;;text-align:center"
commands:
Heizung_RG.sollsetz desired-temp:boost,on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5
R-btnLock.off set %DEVICE regSet btnLock on
R-btnLock.on set %DEVICE regSet btnLock off
R-globalBtnLock.off set %DEVICE regSet globalBtnLock on
R-globalBtnLock.on set %DEVICE regSet globalBtnLock off
controlMode.auto set %DEVICE controlMode manual
controlMode.boost set %DEVICE controlMode auto
controlMode.manual set %DEVICE controlMode auto
controlModeboost.auto set %DEVICE controlMode boost
controlModeboost.boost set %DEVICE controlMode boost
positions:
01_WZ_Balkontuer_rechts.battery 2:14
01_WZ_Fenster.state 2:12
01_WZ_Fenster_links.battery 2:13
01_WZ_Heizung.R-btnLock 2:9
01_WZ_Heizung.R-globalBtnLock 2:8
01_WZ_Heizung.batteryLevel 2:10
01_WZ_Heizung_Clima.ValvePosition 2:5
01_WZ_Heizung_Clima.controlMode 2:6
01_WZ_Heizung_Clima.controlModeboost 2:7
01_WZ_Heizung_Clima.desired-temp 2:2
01_WZ_Heizung_Clima.measured-temp 2:4
01_WZ_Tuer.battery 2:17
01_WZ_Tuer.state 2:16
02_KZ_Fenster.battery 3:13
02_KZ_Fenster.state 3:12
02_KZ_Heizung.R-btnLock 3:9
02_KZ_Heizung.R-globalBtnLock 3:8
02_KZ_Heizung.batteryLevel 3:10
02_KZ_Heizung_Clima.ValvePosition 3:5
02_KZ_Heizung_Clima.controlMode 3:6
02_KZ_Heizung_Clima.controlModeboost 3:7
02_KZ_Heizung_Clima.desired-temp 3:2
02_KZ_Heizung_Clima.measured-temp 3:4
02_KZ_Tuer.battery 3:17
02_KZ_Tuer.state 3:16
03_SZ_Fenster.state 4:12
03_SZ_Fenster_links.battery 4:13
03_SZ_Fenster_rechts.battery 4:14
03_SZ_Heizung.R-btnLock 4:9
03_SZ_Heizung.R-globalBtnLock 4:8
03_SZ_Heizung.batteryLevel 4:10
03_SZ_Heizung_Clima.ValvePosition 4:5
03_SZ_Heizung_Clima.controlMode 4:6
03_SZ_Heizung_Clima.controlModeboost 4:7
03_SZ_Heizung_Clima.desired-temp 4:2
03_SZ_Heizung_Clima.measured-temp 4:4
03_SZ_Tuer.battery 4:17
03_SZ_Tuer.state 4:16
04_KU_Fenster.state 5:12
04_KU_Fenster_links.battery 5:13
04_KU_Fenster_rechts.battery 5:14
04_KU_Heizung.R-btnLock 5:9
04_KU_Heizung.R-globalBtnLock 5:8
04_KU_Heizung.batteryLevel 5:10
04_KU_Heizung_Clima.ValvePosition 5:5
04_KU_Heizung_Clima.controlMode 5:6
04_KU_Heizung_Clima.controlModeboost 5:7
04_KU_Heizung_Clima.desired-temp 5:2
04_KU_Heizung_Clima.measured-temp 5:4
04_KU_Tuer.battery 5:17
04_KU_Tuer.state 5:16
05_BW_Fenster.battery 6:13
05_BW_Fenster.state 6:12
05_BW_Heizung.R-btnLock 6:9
05_BW_Heizung.R-globalBtnLock 6:8
05_BW_Heizung.batteryLevel 6:10
05_BW_Heizung_Clima.ValvePosition 6:5
05_BW_Heizung_Clima.controlMode 6:6
05_BW_Heizung_Clima.controlModeboost 6:7
05_BW_Heizung_Clima.desired-temp 6:2
05_BW_Heizung_Clima.measured-temp 6:4
05_BW_Tuer.battery 6:17
05_BW_Tuer.state 6:16
recalc:
undef
undef
ARRAY(0x4ec7568)
undef
ARRAY(0x50e3448)
valueColumn:
R-btnLock 7
ValvePosition 4
battery 10
batteryLevel 8
controlMode 5
controlModeboost 6
desired-temp 1
measured-temp 3
sollsetz 2
state 9
valueColumns:
Batterie colspan="1"
Batterie colspan="2"
Fenster colspan="1"
Heizung colspan="1"
Ist colspan="1"
Modus colspan="1"
Modus/Boost colspan="2"
Soll colspan="1"
Soll neu colspan="1"
Sperre colspan="2"
Ventil colspan="1"
valueIcon:
R-btnLock.off secur_open@0CFB0C
R-btnLock.on secur_locked@F7301D
R-btnLock.set_off hourglass
R-btnLock.set_on hourglass
R-globalBtnLock.off secur_open@0CFB0C
R-globalBtnLock.on secur_locked@F7301D
R-globalBtnLock.set_off hourglass
R-globalBtnLock.set_on hourglass
ValvePosition.0 sani_heating_level_0@002AE0
ValvePosition.10 sani_heating_level_10@F8D53D
ValvePosition.100 sani_heating_level_100@E50005
ValvePosition.20 sani_heating_level_20@FF9341
ValvePosition.30 sani_heating_level_30@F17F3F
ValvePosition.40 sani_heating_level_40@E46C3C
ValvePosition.50 sani_heating_level_50@DE3B3A
ValvePosition.60 sani_heating_level_60@A30D2D
ValvePosition.70 sani_heating_level_70@B40A23
ValvePosition.80 sani_heating_level_80@C40619
ValvePosition.90 sani_heating_level_90@D4030F
battery.0 measure_battery_0@E50005
battery.100 measure_battery_100@0CFB0C
battery.25 measure_battery_25@FB5909
battery.50 measure_battery_50@F5FF10
battery.75 measure_battery_75@42BC0A
batteryLevel.0 measure_battery_0@E50005
batteryLevel.100 measure_battery_100@0CFB0C
batteryLevel.25 measure_battery_25@FB5909
batteryLevel.50 measure_battery_50@F5FF10
batteryLevel.75 measure_battery_75@42BC0A
controlMode.auto sani_heating_automatic@FFC13A
controlMode.boost sani_heating_boost@FB0C02
controlMode.day sun
controlMode.manual sani_heating_manual@795CFF
controlMode.night moon
controlMode.set_auto hourglass
controlMode.set_boost hourglass
controlMode.set_day hourglass
controlMode.set_manual hourglass
controlMode.set_night hourglass
controlModeboost.auto sani_heating_boost@FB0C02
controlModeboost.boost sani_heating_boost@FB0C02
controlModeboost.manual sani_heating_boost@FB0C02
controlModeboost.set_auto sani_heating_boost@FB0C02
controlModeboost.set_boost hourglass
controlModeboost.set_day sani_heating_boost@FB0C02
controlModeboost.set_manual sani_heating_boost@FB0C02
controlModeboost.set_night sani_heating_boost@FB0C02
state.closed %devStateIcon
state.closedclosed %devStateIcon
state.closedopen %devStateIcon
state.closedtilted %devStateIcon
state.open %devStateIcon
state.openclosed %devStateIcon
state.openopen %devStateIcon
state.opentilted %devStateIcon
state.tilted %devStateIcon
state.tiltedclosed %devStateIcon
state.tiltedopen %devStateIcon
state.tiltedtilted %devStateIcon
values:
formated:
undef
undef
ARRAY(0x4e7a560)
undef
ARRAY(0x4b2d910)
ARRAY(0x5203c88)
ARRAY(0x49b1310)
ARRAY(0x518eba0)
ARRAY(0x4f19388)
ARRAY(0x4f1c190)
ARRAY(0x4e08e78)
undef
ARRAY(0x481ab50)
ARRAY(0x4d853a8)
ARRAY(0x4b7fcf8)
undef
ARRAY(0x4e09f30)
ARRAY(0x4f21308)
orig:
undef
undef
ARRAY(0x4e832e0)
undef
ARRAY(0x50edeb8)
ARRAY(0x50fec80)
ARRAY(0x4e038c0)
ARRAY(0x4ec9c68)
ARRAY(0x50da8a0)
ARRAY(0x1c6c358)
ARRAY(0x50fecb0)
undef
ARRAY(0x49c75a0)
ARRAY(0x4e97b70)
ARRAY(0x4f18bd8)
undef
ARRAY(0x50cf520)
ARRAY(0x4b7bc48)
prefixsuffix:
undef
undef
ARRAY(0x4ea4128)
undef
ARRAY(0x4b254c0)
ARRAY(0x4e8fc60)
ARRAY(0x4e37118)
ARRAY(0x487bff8)
ARRAY(0x50fcda0)
ARRAY(0x48810e8)
ARRAY(0x4e18318)
undef
ARRAY(0x4e773b0)
ARRAY(0x48bd150)
ARRAY(0x4f0e8b8)
undef
ARRAY(0x4ed1760)
ARRAY(0x50c8908)
Attributes:
cellStyle {
"r:1"=>'style="font-weight:bold;;font-size:18px;;color:RoyalBlue;;text-align:center"'
}
commands {
'Heizung_RG.sollsetz'=>'desired-temp:boost,on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5',
"controlMode.manual"=>"set %DEVICE controlMode auto",
"controlMode.boost"=>"set %DEVICE controlMode auto",
"controlMode.auto"=>"set %DEVICE controlMode manual",
"controlModeboost.boost"=>"set %DEVICE controlMode boost",
"controlModeboost.auto"=>"set %DEVICE controlMode boost",
"R-btnLock.on"=>"set %DEVICE regSet btnLock off",
"R-btnLock.off"=>"set %DEVICE regSet btnLock on",
"R-globalBtnLock.on"=>"set %DEVICE regSet globalBtnLock off",
"R-globalBtnLock.off"=>"set %DEVICE regSet globalBtnLock on"
}
group 20_Sensoren_RG
room 00_Diabeck,70_Heizung
valueColumn {
'desired-temp'=>1,
'sollsetz'=>2,
'measured-temp'=>3,
'ValvePosition'=>4,
'controlMode'=>5,
'controlModeboost'=>6,
'R-btnLock'=>7,
'batteryLevel'=>8,
'state'=>9,
'battery'=>10
}
valueColumns {
'Heizung'=>'colspan="1"',
'Soll'=>'colspan="1"',
'Soll neu'=>'colspan="1"',
'Ist'=>'colspan="1"',
'Ventil'=>'colspan="1"',
'Modus'=>'colspan="1"',
'Modus/Boost'=>'colspan="2"',
'Sperre'=>'colspan="2"',
'Batterie'=>'colspan="1"',
'Batterie '=>'colspan="2"',
'Fenster'=>'colspan="1"'
}
valueFormat {
if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}
elsif($READING eq "batteryLevel"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}
elsif($READING eq "battery"){
if($VALUE>3){$VALUE=100}
elsif($VALUE eq "ok"){$VALUE=100}
elsif($VALUE>2.5){$VALUE=75}
elsif($VALUE>2.3){$VALUE=50}
elsif($VALUE>2.1){$VALUE=25}
elsif($VALUE eq "low"){$VALUE=0}
else{$VALUE=0}}
}
valueIcon {
'controlMode.auto'=>'sani_heating_automatic@FFC13A',
'controlMode.manual'=>'sani_heating_manual@795CFF',
'controlMode.boost'=>'sani_heating_boost@FB0C02',
'controlMode.night'=>'moon',
'controlMode.day'=>'sun',
'controlMode.set_auto'=>'hourglass',
'controlMode.set_manual'=>'hourglass',
'controlMode.set_boost'=>'hourglass',
'controlMode.set_night'=>'hourglass',
'controlMode.set_day'=>'hourglass',
'controlModeboost.auto'=>'sani_heating_boost@FB0C02',
'controlModeboost.manual'=>'sani_heating_boost@FB0C02',
'controlModeboost.boost'=>'sani_heating_boost@FB0C02',
'controlModeboost.set_auto'=>'sani_heating_boost@FB0C02',
'controlModeboost.set_manual'=>'sani_heating_boost@FB0C02',
'controlModeboost.set_night'=>'sani_heating_boost@FB0C02',
'controlModeboost.set_day'=>'sani_heating_boost@FB0C02',
'controlModeboost.set_boost'=>'hourglass',
'R-btnLock.on'=>'secur_locked@F7301D',
'R-btnLock.off'=>'secur_open@0CFB0C',
'R-globalBtnLock.on'=>'secur_locked@F7301D',
'R-globalBtnLock.off'=>'secur_open@0CFB0C',
'R-btnLock.set_on'=>'hourglass',
'R-btnLock.set_off'=>'hourglass',
'R-globalBtnLock.set_on'=>'hourglass',
'R-globalBtnLock.set_off'=>'hourglass',
'ValvePosition.0'=>'sani_heating_level_0@002AE0',
'ValvePosition.10'=>'sani_heating_level_10@F8D53D',
'ValvePosition.20'=>'sani_heating_level_20@FF9341',
'ValvePosition.30'=>'sani_heating_level_30@F17F3F',
'ValvePosition.40'=>'sani_heating_level_40@E46C3C',
'ValvePosition.50'=>'sani_heating_level_50@DE3B3A',
'ValvePosition.60'=>'sani_heating_level_60@A30D2D',
'ValvePosition.70'=>'sani_heating_level_70@B40A23',
'ValvePosition.80'=>'sani_heating_level_80@C40619',
'ValvePosition.90'=>'sani_heating_level_90@D4030F',
'ValvePosition.100'=>'sani_heating_level_100@E50005',
'batteryLevel.100'=>'measure_battery_100@0CFB0C',
'batteryLevel.75'=>'measure_battery_75@42BC0A',
'batteryLevel.50'=>'measure_battery_50@F5FF10',
'batteryLevel.25'=>'measure_battery_25@FB5909',
'batteryLevel.0'=>'measure_battery_0@E50005',
'battery.100'=>'measure_battery_100@0CFB0C',
'battery.75'=>'measure_battery_75@42BC0A',
'battery.50'=>'measure_battery_50@F5FF10',
'battery.25'=>'measure_battery_25@FB5909',
'battery.0'=>'measure_battery_0@E50005',
'state.closed'=>'%devStateIcon',
'state.open'=>'%devStateIcon',
'state.tilted'=>'%devStateIcon',
'state.closedclosed'=>'%devStateIcon',
'state.openopen'=>'%devStateIcon',
'state.tiltedtilted'=>'%devStateIcon',
'state.closedtilted'=>'%devStateIcon',
'state.tiltedclosed'=>'%devStateIcon',
'state.opentilted'=>'%devStateIcon',
'state.tiltedopen'=>'%devStateIcon',
'state.closedopen'=>'%devStateIcon',
'state.openclosed'=>'%devStateIcon'
}
valueStyle {if($READING eq "measured-temp"){my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}
elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}
}
}
valueSuffix {
"desired-temp"=>" °C", "measured-temp"=>" °C",
"ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)",
"batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"
}
Hier nur ein Beispiel, das Wohnzimmer, ein Raum mit einem Thermostat, ein Fenster, eine Balkontür und eine Raumtür, also ein Thermostat, zwei Fenstergriffsensoren und einen optischen Sensor.
Balkontür:Internals:
CUL_868_MSGCNT 27
CUL_868_RAWMSG A0C58A2415D368BFA26BE012F00::-64.5:CUL_868:
CUL_868_RSSI -64.5
CUL_868_TIME 2018-12-02 19:31:09
DEF 5D368B
IODev CUL_868
LASTInputDev CUL_868
MSGCNT 27
NAME 01_WZ_Balkontuer_rechts
NOTIFYDEV global
NR 407
NTFY_ORDER 50-01_WZ_Balkontuer_rechts
STATE closed
TYPE CUL_HM
lastMsg No:58 - t:41 s:5D368B d:FA26BE 012F00
peerList 01_WZ_Heizung_WindowRec,
protLastRcv 2018-12-02 19:31:09
protRcv 24 last_at:2018-12-02 19:31:09
protRcvB 12 last_at:2018-12-02 19:31:08
protSnd 15 last_at:2018-12-02 19:31:09
protState CMDs_done
rssi_at_CUL_868 cnt:27 min:-77.5 max:-64 avg:-66.79 lst:-64.5
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2018-11-30 17:22:46 .D-devInfo 910101
2018-11-30 17:22:46 .D-stc 80
2018-11-30 17:22:40 .R-ledOnTime 0.5 s
2018-11-30 17:22:40 .R-msgRhsPosA closed
2018-11-30 17:22:40 .R-msgRhsPosB open
2018-11-30 17:22:40 .R-msgRhsPosC tilted
2018-11-30 17:22:39 .R-transmDevTryMax 6
2018-11-30 17:22:40 .R-transmitTryMax 6
2018-11-30 17:22:47 .peerListRDate 2018-11-30 17:22:47
2018-12-02 19:31:09 .protLastRcv 2018-12-02 19:31:09
2018-12-02 05:31:28 Activity alive
2018-11-30 17:22:39 CommandAccepted yes
2018-11-30 17:22:46 D-firmware 2.4
2018-11-30 17:22:46 D-serialNr OEQ0964543
2018-11-30 17:22:46 PairedTo 0xFA26BE
2018-11-30 17:22:40 R-01_WZ_Heizung_WindowRec-expectAES off
2018-11-30 17:22:40 R-01_WZ_Heizung_WindowRec-peerNeedsBurst on
2018-11-30 17:22:39 R-cyclicInfoMsg off
2018-11-30 17:22:40 R-eventDlyTime 0 s
2018-11-30 17:22:39 R-pairCentral 0xFA26BE
2018-11-30 17:22:40 R-sign off
2018-11-30 17:22:46 RegL_00. 02:01 09:00 0A:FA 0B:26 0C:BE 10:01 14:06 00:00
2018-11-30 17:22:46 RegL_01. 08:00 20:6C 21:00 22:64 30:06 00:00
2018-11-30 17:22:47 RegL_04.01_WZ_Heizung_WindowRec 01:01 00:00
2018-11-30 17:26:03 alive yes
2018-12-02 19:31:09 battery ok
2018-12-02 19:31:09 contact closed (to VCCU)
2018-12-02 05:31:28 peerList 01_WZ_Heizung_WindowRec,
2018-11-30 17:26:03 powerOn 2018-11-30 17:26:02
2018-11-30 17:26:02 recentStateType info
2018-11-30 17:26:03 sabotageError off
2018-12-02 19:31:09 state closed
2018-12-02 19:31:09 trigger_cnt 47
helper:
HM_CMDNR 88
mId 0030
regLst ,0,1,4p
rxType 20
supp_Pair_Rep 0
ack:
expert:
def 1
det 0
raw 1
tpl 0
io:
lstRecType 41
newChn +5D368B,00,03,00
nextSend 1543775469.58929
nxtSndMcnt 58
rxt 2
tgtDly 88
vccu VCCU
lRcTm:
CUL_868 50414180
tnms 808468501
p:
5D368B
00
03
00
prefIO:
CUL_868
mRssi:
mNo 58
io:
CUL_868:
-54.5
-54.5
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rpt:
IO CUL_868
flg A
ts 1543775469.60389
ack:
HASH(0x456ccb8)
588002FA26BE5D368B00
rssi:
at_CUL_868:
avg -66.7962962962963
cnt 27
lst -64.5
max -64
min -77.5
tmpl:
Attributes:
IODev CUL_868
IOgrp VCCU:CUL_868
actCycle 028:00
actStatus alive
alias Balkontür
autoReadReg 4_reqStatus
devStateIcon closed:fts_door@green open:fts_door_open@red tilted:fts_door_tilt@red
event-on-change-reading .*
expert 2_raw
firmware 2.4
group 22_FGSensoren
icon fts_door
model HM-SEC-RHS
peerIDs 00000000,63944703,
room 22_FG_Sensoren,00_Diabeck,01_Wohnzimmer,09_Balkon,70_Heizung,CUL_HM
serialNr OEQ0964543
subType threeStateSensor
Fenster:Internals:
DEF 5D3362
IODev CUL_868
NAME 01_WZ_Fenster_links
NOTIFYDEV global
NR 405
NTFY_ORDER 50-01_WZ_Fenster_links
STATE closed
TYPE CUL_HM
peerList 01_WZ_Heizung_WindowRec,
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2018-11-30 17:22:11 .D-devInfo 910101
2018-11-30 17:22:11 .D-stc 80
2018-11-30 17:22:02 .R-ledOnTime 0.5 s
2018-11-30 17:22:02 .R-msgRhsPosA closed
2018-11-30 17:22:02 .R-msgRhsPosB open
2018-11-30 17:22:02 .R-msgRhsPosC tilted
2018-11-30 17:22:02 .R-transmDevTryMax 6
2018-11-30 17:22:02 .R-transmitTryMax 6
2018-11-30 17:22:12 .peerListRDate 2018-11-30 17:22:12
2018-12-01 04:42:36 .protLastRcv 2018-12-01 04:42:36
2018-12-02 08:51:29 Activity unknown
2018-11-30 17:22:01 CommandAccepted yes
2018-11-30 17:22:11 D-firmware 2.4
2018-11-30 17:22:11 D-serialNr OEQ0965426
2018-11-30 17:22:11 PairedTo 0xFA26BE
2018-11-30 17:22:03 R-01_WZ_Heizung_WindowRec-expectAES off
2018-11-30 17:22:03 R-01_WZ_Heizung_WindowRec-peerNeedsBurst on
2018-11-30 17:22:02 R-cyclicInfoMsg off
2018-11-30 17:22:02 R-eventDlyTime 0 s
2018-11-30 17:22:02 R-pairCentral 0xFA26BE
2018-11-30 17:22:02 R-sign off
2018-11-30 17:22:11 RegL_00. 02:01 09:00 0A:FA 0B:26 0C:BE 10:01 14:06 00:00
2018-11-30 17:22:12 RegL_01. 08:00 20:6C 21:00 22:64 30:06 00:00
2018-11-30 17:22:13 RegL_04.01_WZ_Heizung_WindowRec 01:01 00:00
2018-11-30 17:26:08 alive yes
2018-12-01 04:42:36 battery ok
2018-12-01 04:42:36 contact closed (to VCCU)
2018-12-02 05:31:28 peerList 01_WZ_Heizung_WindowRec,
2018-11-30 17:26:08 recentStateType info
2018-11-30 17:26:08 sabotageError off
2018-12-01 04:42:36 state closed
2018-12-01 04:42:36 trigger_cnt 34
helper:
HM_CMDNR 227
mId 0030
regLst ,0,1,4p
rxType 20
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +5D3362,00,03,00
restoredIO CUL_868
rxt 2
vccu VCCU
p:
5D3362
00
03
00
prefIO:
CUL_868
mRssi:
mNo
io:
CUL_868:
100
100
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
tmpl:
Attributes:
IODev CUL_868
IOgrp VCCU:CUL_868
actCycle 028:00
actStatus unknown
alias Wonzimmerfenster links
autoReadReg 4_reqStatus
devStateIcon closed:fts_window_1w@green open:fts_window_1w_open@red tilted:fts_window_1w_tilt@red
event-on-change-reading .*
expert 2_raw
firmware 2.4
group 22_FGSensoren
icon fts_window_1w
model HM-SEC-RHS
peerIDs 00000000,63944703,
room 00_Diabeck,01_Wohnzimmer,22_FG_Sensoren,70_Heizung,CUL_HM
serialNr OEQ0965426
subType threeStateSensor
Balkontür und Fenster als Doppelfenster in einem DOIF zusammengefasst:Internals:
DEF ([01_WZ_Fenster_links:state] eq "closed" and [01_WZ_Balkontuer_rechts:state] eq "closed") (set 01_WZ_Fenster_dummy closedclosed,set plot01_WZ_Fenster_dummy window 0)DOELSEIF ([01_WZ_Fenster_links:state] eq "open" and [01_WZ_Balkontuer_rechts:state] eq "open") (set 01_WZ_Fenster_dummy openopen)DOELSEIF ([01_WZ_Fenster_links:state] eq "tilted" and [01_WZ_Balkontuer_rechts:state] eq "tilted") (set 01_WZ_Fenster_dummy tiltedtilted)DOELSEIF ([01_WZ_Fenster_links:state] eq "closed" and [01_WZ_Balkontuer_rechts:state] eq "tilted") (set 01_WZ_Fenster_dummy closedtilted)DOELSEIF ([01_WZ_Fenster_links:state] eq "tilted" and [01_WZ_Balkontuer_rechts:state] eq "closed") (set 01_WZ_Fenster_dummy tiltedclosed)DOELSEIF ([01_WZ_Fenster_links:state] eq "open" and [01_WZ_Balkontuer_rechts:state] eq "tilted") (set 01_WZ_Fenster_dummy opentilted)DOELSEIF ([01_WZ_Fenster_links:state] eq "tilted" and [01_WZ_Balkontuer_rechts:state] eq "open") (set 01_WZ_Fenster_dummy tiltedopen)DOELSEIF ([01_WZ_Fenster_links:state] eq "closed" and [01_WZ_Balkontuer_rechts:state] eq "open") (set 01_WZ_Fenster_dummy closedopen)DOELSEIF ([01_WZ_Fenster_links:state] eq "open" and [01_WZ_Balkontuer_rechts:state] eq "closed") (set 01_WZ_Fenster_dummy openclosed)
MODEL FHEM
NAME 01_WZ_Fenster
NR 349
NTFY_ORDER 50-01_WZ_Fenster
STATE closedclosed
TYPE DOIF
.attraggr:
.attrminint:
READINGS:
2018-12-02 19:31:09 Device 01_WZ_Balkontuer_rechts
2018-12-02 19:31:08 cmd 1
2018-12-02 19:31:08 cmd_event 01_WZ_Balkontuer_rechts
2018-12-02 19:31:08 cmd_nr 1
2018-12-02 19:31:08 e_01_WZ_Balkontuer_rechts_state closed
2018-12-01 04:42:36 e_01_WZ_Fenster_links_state closed
2018-12-02 19:31:08 error set plot01_WZ_Fenster_dummy window 0: Please define plot01_WZ_Fenster_dummy first
2018-11-27 06:12:48 mode enabled
2018-12-02 19:31:08 state closedclosed
Regex:
attr:
cmdState:
0:
closedclosed
1:
openopen
2:
tiltedtilted
3:
closedtilted
4:
tiltedclosed
5:
opentilted
6:
tiltedopen
7:
closedopen
8:
openclosed
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "closed" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "closed"
1 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "open" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "open"
2 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "tilted" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "tilted"
3 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "closed" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "tilted"
4 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "tilted" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "closed"
5 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "open" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "tilted"
6 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "tilted" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "open"
7 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "closed" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "open"
8 ::ReadingValDoIf($hash,'01_WZ_Fenster_links','state') eq "open" and ::ReadingValDoIf($hash,'01_WZ_Balkontuer_rechts','state') eq "closed"
devices:
0 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
1 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
2 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
3 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
4 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
5 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
6 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
7 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
8 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
all 01_WZ_Fenster_links 01_WZ_Balkontuer_rechts
do:
0:
0 set 01_WZ_Fenster_dummy closedclosed,set plot01_WZ_Fenster_dummy window 0
1:
0 set 01_WZ_Fenster_dummy openopen
2:
0 set 01_WZ_Fenster_dummy tiltedtilted
3:
0 set 01_WZ_Fenster_dummy closedtilted
4:
0 set 01_WZ_Fenster_dummy tiltedclosed
5:
0 set 01_WZ_Fenster_dummy opentilted
6:
0 set 01_WZ_Fenster_dummy tiltedopen
7:
0 set 01_WZ_Fenster_dummy closedopen
8:
0 set 01_WZ_Fenster_dummy openclosed
9:
helper:
event contact: closed (to VCCU)
globalinit 1
last_timer 0
sleeptimer -1
timerdev 01_WZ_Balkontuer_rechts
timerevent contact: closed (to 01_WZ_Heizung),closed,trigger_cnt: 47
triggerDev 01_WZ_Balkontuer_rechts
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: 01_WZ_Balkontuer_rechts
error: set plot01_WZ_Fenster_dummy window 0: Please define plot01_WZ_Fenster_dummy first
state: closedclosed
timerevents:
contact: closed (to 01_WZ_Heizung)
closed
trigger_cnt: 47
timereventsState:
contact: closed (to 01_WZ_Heizung)
state: closed
trigger_cnt: 47
triggerEvents:
contact: closed (to VCCU)
triggerEventsState:
contact: closed (to VCCU)
internals:
itimer:
perlblock:
readings:
0 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
1 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
2 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
3 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
4 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
5 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
6 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
7 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
8 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
all 01_WZ_Fenster_links:state 01_WZ_Balkontuer_rechts:state
trigger:
uiState:
uiTable:
Attributes:
cmdState closedclosed|openopen|tiltedtilted|closedtilted|tiltedclosed|opentilted|tiltedopen|closedopen|openclosed
devStateIcon closedclosed:fts_window_2w@green openclosed:fts_window_2w_open_l@red closedopen:fts_window_2w_open_r@red openopen:fts_window_2w_open_lr@red tiltedtilted:fts_window_2w_tilt_lr@red closedtilted:fts_window_2w_tilt@red tiltedclosed:fts_window_2w_tilt_l@red opentilted:fts_window_2w_open_l_tilt_r@red tiltedopen:fts_window_2w_tilt_l_open_r@red
do always
group 22_FGSensoren,99_Doppelfenster_Icon
icon helper_doif
room 99_DOIF
Wohnzimmertür:Internals:
CHANGED
CUL_868_MSGCNT 28
CUL_868_RAWMSG A0DBEA610600AA5FA26BE0601C800::-65:CUL_868:
CUL_868_RSSI -65
CUL_868_TIME 2018-12-02 19:04:09
DEF 600AA5
IODev CUL_868
LASTInputDev CUL_868
MSGCNT 28
NAME 01_WZ_Tuer
NOTIFYDEV global
NR 205
NTFY_ORDER 50-01_WZ_Tuer
STATE open
TYPE CUL_HM
lastMsg No:BE - t:10 s:600AA5 d:FA26BE 0601C800
peerList 01_WZ_Heizung_WindowRec,
protLastRcv 2018-12-02 19:04:09
protRcv 28 last_at:2018-12-02 19:04:09
protRcvB 6 last_at:2018-12-02 15:18:57
protSnd 22 last_at:2018-12-02 19:04:09
protState CMDs_done
rssi_at_CUL_868 cnt:28 min:-70 max:-65 avg:-68.16 lst:-65
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2018-11-14 21:35:54 .D-devInfo 810101
2018-11-14 21:35:54 .D-stc 80
2018-11-14 21:35:55 .R-msgScPosA open
2018-11-14 21:35:55 .R-msgScPosB closed
2018-11-14 21:35:55 .R-transmDevTryMax 6
2018-11-14 21:35:55 .R-transmitTryMax 6
2018-11-14 21:35:55 .peerListRDate 2018-11-14 21:35:55
2018-12-02 19:04:09 .protLastRcv 2018-12-02 19:04:09
2018-12-02 05:31:28 Activity alive
2018-11-14 21:35:54 D-firmware 1.0
2018-11-14 21:35:54 D-serialNr OEQ1426753
2018-11-14 21:35:55 PairedTo 0xFA26BE
2018-11-14 21:35:56 R-01_WZ_Heizung_WindowRec-expectAES off
2018-11-14 21:35:56 R-01_WZ_Heizung_WindowRec-peerNeedsBurst on
2018-11-14 21:35:55 R-cyclicInfoMsg on
2018-11-14 21:35:55 R-eventDlyTime 0 s
2018-11-14 21:35:55 R-pairCentral 0xFA26BE
2018-11-14 21:35:55 R-sabotageMsg on
2018-11-14 21:35:55 R-sign on
2018-12-02 19:04:09 alive yes
2018-12-02 19:04:09 battery ok
2018-12-02 19:04:09 contact open (to VCCU)
2018-12-02 05:31:28 peerList 01_WZ_Heizung_WindowRec,
2018-11-30 19:17:47 powerOn 2018-11-30 19:17:47
2018-12-02 19:04:09 recentStateType info
2018-12-02 19:04:09 sabotageError off
2018-12-02 19:04:09 state open
2018-12-02 15:18:57 trigger_cnt 67
helper:
HM_CMDNR 190
mId 00C7
regLst ,0,1,4p
rxType 28
supp_Pair_Rep 0
ack:
expert:
def 1
det 0
raw 1
tpl 0
io:
lstRecType 10
newChn +600AA5,00,03,00
nextSend 1543773849.91825
nxtSndMcnt BE
rxt 2
tgtDly 88
vccu VCCU
lRcTm:
CUL_868 48794008
tnms 806848752
p:
600AA5
00
03
00
prefIO:
CUL_868
mRssi:
mNo BE
io:
CUL_868:
-55
-55
prt:
bErr 0
sProc 0
sleeping 1
rspWait:
q:
qReqConf 00
qReqStat
role:
chn 1
dev 1
rpt:
IO CUL_868
flg A
ts 1543773849.85486
ack:
HASH(0x3d82a70)
BE8002FA26BE600AA500
rssi:
at_CUL_868:
avg -68.1607142857143
cnt 28
lst -65
max -65
min -70
tmpl:
Attributes:
IODev CUL_868
IOgrp VCCU:CUL_868
actCycle 002:50
actStatus alive
alias Wohnzimmertür
autoReadReg 4_reqStatus
devStateIcon closed:fts_door@green open:fts_door_open@red
event-on-change-reading .*
expert 2_raw
firmware 1.0
group 21_OptSensoren
icon fts_door
model HM-SEC-SCo
peerIDs 00000000,63944703,
room 00_Diabeck,21_OptSensoren,70_Heizung,CUL_HM
serialNr OEQ1426753
subType threeStateSensor
Schlafzimmer und Küche haben auch zwei Fenster. Da ist es vom Prinzip genau so, nur mit Fenster_links und statt Balkontür_rechts eben Fenster_rechts. Kinderzimmer und Bad haben nur ein Fenster, so dass ich da direkt vom Fenster selbst das open, tilted und close verwende.
Und hier noch ein Bild dazu: