Liebes Forum,
Story behind: Ich versuche mit einer Logic ein Scheunentor zu schließen, falls es versehentlich offen steht. Ich kann es aber nur bewegen, also kann sh.item(1) auf / stopp / oder zu sein. Ich habe daher einen Reedkontakt angebaut, der an einem Binäreingang von MDT hängt. Auf dem Bus werden die Flankenwechsel auch zuverlässig richtig geschrieben. ETS.pngDie Adresse 5/5/5 werte ich nun sowohl in der Logik Scheunentor.py als auch mit einem basic.symbol aus. Scheunentor.png
Problem: In der Visu wird der Status nicht immer richtig angezeigt, will sagen hier steht auch mal offen, obwohl das Tor zu ist und umgekehrt. Liest man die Adresse 5/5/5 im Gruppenmonitor der ETS, so ist dies aber immer richtig.
Ebenso fährt das Tor im Fall, dass falsch "offen" angezeigt wird, durch die Logik auf - das ist natürlich suboptimal.
Hier die item.conf:
[EG]
[[Oekonomie]]
[[[Scheunentor]]]
[[[[Bewegen]]]]
type = bool
visu_acl = rw
knx_dpt = 1
knx_send = 4/1/0
enforce_updates = true
[[[[Status]]]]
type=bool
visu_acl=rw
knx_dpt = 1
# knx_listen = 5/5/5
knx_init = 5/5/5
knx_send = 5/5/5
# knx_cache = true
# enforce_updates = true
[[[[Automatik]]]]
type=bool
visu_acl=rw
knx_dpt = 1
knx_init = 4/3/0
knx_send = 4/3/0
[[Oekonomie]]
[[[Scheunentor]]]
[[[[Bewegen]]]]
type = bool
visu_acl = rw
knx_dpt = 1
knx_send = 4/1/0
enforce_updates = true
[[[[Status]]]]
type=bool
visu_acl=rw
knx_dpt = 1
# knx_listen = 5/5/5
knx_init = 5/5/5
knx_send = 5/5/5
# knx_cache = true
# enforce_updates = true
[[[[Automatik]]]]
type=bool
visu_acl=rw
knx_dpt = 1
knx_init = 4/3/0
knx_send = 4/3/0
#!/usr/bin/env python3
if not sh.EG.Oekonomie.Scheunentor.Status():
logger.info("Scheunentor offen (Status=0)")
if sh.EG.Oekonomie.Scheunentor.Automatik():
logger.info("Scheunentor gefahren")
sh.EG.Oekonomie.Scheunentor.Bewegen(1)
else:
logger.info("Automatik aus")
else:
logger.info("Scheunentor geschlossen (Status=1)")
if not sh.EG.Oekonomie.Scheunentor.Status():
logger.info("Scheunentor offen (Status=0)")
if sh.EG.Oekonomie.Scheunentor.Automatik():
logger.info("Scheunentor gefahren")
sh.EG.Oekonomie.Scheunentor.Bewegen(1)
else:
logger.info("Automatik aus")
else:
logger.info("Scheunentor geschlossen (Status=1)")
[Scheunentor]
filename = Scheunentor.py
crontab = init | 0 * * * | 1 * * * | 15 * * * | 16 * * * | 30 * * * | 31 * * * | 45 * * * | 46 * * *
filename = Scheunentor.py
crontab = init | 0 * * * | 1 * * * | 15 * * * | 16 * * * | 30 * * * | 31 * * * | 45 * * * | 46 * * *
Und zu guter Letzt das Logfile:
Code:
2015-09-29 22:04:11,506 INFO Main Start SmartHome.py 1.0-35-gf62db45+ -- smarthome.py:__init__:231 2015-09-29 22:04:11,507 DEBUG Main Python 3.4.0 -- smarthome.py:__init__:232
Weiß Jemand, wo mein Fehler ist?
Beste Grüße,
Jürgen
P.S. Wenn ich das Log-File einfüge, behauptet der Editor, ich versuchte 129 Bilder einzufügen. Als Anhang kann ich die Datei ebenfalls nicht hochladen!?
Kommentar