-
Platform information:
- Hardware: Raspberry Pi 3
- OS: current Openhabian
- openHAB version: current unstable (2.4.0~20180721171026-1 (Build #1314))
-
Hey there,
i want to shadow my house.
My Idea in general:
There are global and local items for triggering, the state and the possibillity of enabling the rule, for example to disable at night, or exclude some rooms.
Im now stubling at working with strings.
What i got so far:
Group Shadow_Trigger
Switch global_Shadow_Trigger "Haus Abschatten" (Functions) ["Switchable"]
Switch GF_Kitchen_Shadow_Trigger "Küche Abschatten" (Functions) ["Switchable"]
Switch GF_Living_Shadow_Trigger "Wohnzimmer Abschatten" (Functions) ["Switchable"]
Switch FF_Living_Shadow_Trigger "Balkonzimmer Abschatten" (Functions) ["Switchable"]
Group Shadow_Enabled
Switch global_Shadow_Enabled "Haus darf abgeschattet werden?" (Functions, Shadow_Enabled)
Switch GF_Kitchen_Shadow_Enabled "Küche darf abgeschattet werden?" (Functions, Shadow_Enabled)
Switch GF_Living_Shadow_Enabled "Küche darf abgeschattet werden?" (Functions, Shadow_Enabled)
Switch FF_Living_Shadow_Enabled "Balkonzimmer darf abgeschattet werden?" (Functions, Shadow_Enabled)
Group Shadow_State
Switch global_Shadow_State "Haus abgeschattet?" (Status, Shadow_State)
Switch GF_Kitchen_Shadow_State "Küche abgeschattet?" (Status, Shadow_State)
Switch GF_Living_Shadow_State "Wohnzimmer abgeschattet?" (Status, Shadow_State)
Switch FF_Living_Shadow_State "Balkonzimmer abgeschattet?" (Status, Shadow_State)
rule "Abschattung global"
when
Item global_Shadow_Trigger changed to ON or
Item global_Shadow_Enabled changed to ON
then
if(global_Shadow_Trigger.state.equals(ON) && global_Shadow_Enabled.state.equals(ON))
{
Shadow_Trigger.members.forEach[ i | i.sendCommand(ON) ]
}
global_Shadow_Trigger.sendCommand(OFF)
end
rule "Abschattung lokal"
when
Member of Shadow_Trigger changed to ON
then
val StringBuilder sb = new StringBuilder
Shadow_Trigger.members.filter[ i | i.state.equals(ON) ].forEach[ i |
sb.append(i)
// sb."replace("Trigger", "State")" This is my problem.
[...]
sendCommand(sb, ON) ]
triggeringItem.sendCommand(OFF)
end
As one can see, i want to replace the part of the name “Trigger” with “State” to work on. But I dont get it. Is there any way to do this, or do i have to use an other approach?
Thanks in advance for any hint!
Greetings