Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Announcing all open zones
#1
In a large installation with 48 zones I have a KNX weather sensor that informs me of bad weather (rain, wind etc).
I need to announce a generic \"rain warning\" message, followed by an enumeration of the windows that are left open and need to be closed.
Since there is no \"for\" loop in responses, do I need to code it by hand, one zone at a time? (that would make up a *big* response - some 20 windows in the house).

Thanks in advance
Reply
#2
This is an interesting application

You will need to code it by hand. It may be tedious but at least it can be done

Take note that you can only announce 1 thing at a time
eg
Say \"Zone 1\"
Say \"Zone 2\"

Will announce \"Zone 2\" only unless a delay is inserted between the two announcements

Hence to announce a series of zones ONLY if the zones are open, there will have to be a delay between each announcement. If the zone is closed, then there is no announcement and no delay

This is an example for 4 zones, zone 10 to 13 to be announced only if open

SayZ10 Response
If Input Zone10 <> 0 Then
    Announce Upstairs Window
    Do SayOpenZ11 After 5 Seconds Using Timer01
Else
    Do SayOpenZ11
End If


SayZ11 Response
If Input Zone11 <> 0 Then
    Announce Zone 11
    Do SayOpenZ12 After 5 Seconds Using Timer01
Else
    Do SayOpenZ12
End If

SayZ12 Response
If Input Zone12 <> 0 Then
    Announce Zone 12
    Do SayOpenZ13 After 5 Seconds Using Timer01
Else
    Do SayOpenZ13
End If

SayZ13 Response
If Input Zone13 <> 0 Then
    Announce Zone 13
.. etc

End If

Calling the 1st zone Response will automatically announce each zone if it is open.

This response can be called from the Rain sensor event from KNX

You can also trigger it from the Control Menu at any time, since if many zones are announced you would not remebre all of them and may need to be able to hear the open zones on command


A cclx file with the abive scenario is attached




Attached Files
.zip   AnnounceOpenZones.zip (Size: 17.2 KB / Downloads: 2)
Reply
#3
Thanks for your quick reply.

It would be better to add enumerators in responses though. I understand the limitations of the hardware but it is would be much better (and cleaner) to write code like this:

For Each Zone
    If Zone Type is DoorWindow then
        If Zone Input <> 0 then
            Say Zone Name
            Say \"is\" \"open\"
        End If
    End If
End For

And of course it would save lots of precious response memory.


Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)