Hallo Forum,
nachdem ich jetzt einige Tage mit smarthome.py und der smartvisu probiere, möchte ich mal einige meiner Lösungen hier posten, vielleicht hilft es ja bei ähnlichen Themen. Gerne Feedback oder Fragen. Ich bin damit halt auch noch am lernen.
Hier eine Garagentorsteuerung inkl. Live Bild der Eingangskamera. Über KNX kann ich Auf/Zu direkt steuern, bei aufgehendem Tor kann ich mit Zu stoppen, eine erneutes Zu schließt dann wieder. Endlagen Auf / Zu werden erfaßt, den Status "Tor läuft" entsteht aus einer kleinen Logik (mit Eval) auf den Zuständen. Ist also nicht wirklich Tor läuft, sondern nur Tor ist nicht in den Endlagen.
Die Widgets hänge ich im allgemeinen mittlerweile an das Ende der jeweiligen item.conf, damit die eigentlichen Objektliste frei von widgets ist (falls ich von der Autogenerierung mal weg muss). type=bool nutze ich als Dummy, weil jedes item ja einen Typ braucht (sonst stehst halt im Log File)
Sieht dann wie im angehängten Bild aus.
Grüße,
Michel
PS: Die Kameraeinstellung ist nicht optimal!
nachdem ich jetzt einige Tage mit smarthome.py und der smartvisu probiere, möchte ich mal einige meiner Lösungen hier posten, vielleicht hilft es ja bei ähnlichen Themen. Gerne Feedback oder Fragen. Ich bin damit halt auch noch am lernen.
Hier eine Garagentorsteuerung inkl. Live Bild der Eingangskamera. Über KNX kann ich Auf/Zu direkt steuern, bei aufgehendem Tor kann ich mit Zu stoppen, eine erneutes Zu schließt dann wieder. Endlagen Auf / Zu werden erfaßt, den Status "Tor läuft" entsteht aus einer kleinen Logik (mit Eval) auf den Zuständen. Ist also nicht wirklich Tor läuft, sondern nur Tor ist nicht in den Endlagen.
Die Widgets hänge ich im allgemeinen mittlerweile an das Ende der jeweiligen item.conf, damit die eigentlichen Objektliste frei von widgets ist (falls ich von der Autogenerierung mal weg muss). type=bool nutze ich als Dummy, weil jedes item ja einen Typ braucht (sonst stehst halt im Log File)
Code:
[garage]
name = Garage
sv_page = room
sv_img = fts_garage.png
[[tor_l]]
name = Garagentor Links
[[[auf]]]
name = Garagentor öffnen
type = bool
autotimer = 1 = 0
knx_dpt = 1
knx_send = 5/0/10
[[[zu]]]
name = Garagentor schliessen
type = bool
autotimer = 1 = 0
knx_dpt = 1
knx_send = 5/0/12
[[[stat_auf]]]
name = Garagentor ist auf
type = bool
knx_dpt = 1
knx_cache = 5/0/11
[[[stat_zu]]]
name = Garagentor ist zu
type = bool
knx_dpt = 1
knx_cache = 5/0/13
[[[laufen]]]
name= Garagentor öffnet / schliesst
type = num
eval = not (sh.garage.tor_l.stat_auf() or sh.garage.tor_l.stat_zu())
eval_trigger = garage.tor_l.stat_auf | garage.tor_l.stat_zu
[[tor_r]]
name = Garagentor Rechts
[[[auf]]]
name = Garagentor öffnen
type = bool
autotimer = 1 = 0
knx_dpt = 1
knx_send = 5/0/20
[[[zu]]]
name = Garagentor schliessen
type = bool
autotimer = 1 = 0
knx_dpt = 1
knx_send = 5/0/22
[[[stat_auf]]]
name = Garagentor ist auf
type = bool
knx_dpt = 1
knx_cache = 5/0/21
[[[stat_zu]]]
name = Garagentor ist zu
type = bool
knx_dpt = 1
knx_cache = 5/0/23
[[[laufen]]]
name= Garagentor öffnet / schliesst
type = num
eval = not (sh.garage.tor_r.stat_auf() or sh.garage.tor_r.stat_zu())
eval_trigger = garage.tor_r.stat_auf | garage.tor_r.stat_zu
[[vis01]]
name = Mobotix Eingang
type = bool
sv_widget = {% import "multimedia.html" as multimedia %} {{ multimedia.image('item', 'http://192.168.2.60/record/current.jpg', 'none', '1s') }}
[[vis02]]
name = Garagentorsteuerung
type = bool
sv_widget = <p style="text-align:center"> Garage Links </p> {{ basic.button('garage.tor_l.auf', 'garage.tor_l.auf', 'AUF', 'arrow-u', '', 'midi') }} {{ basic.text('garage.tor_l.laufen', 'garage.tor_l.laufen',' Das Garagentor läuft ! ', ' Das Garagentor steht ! ') }} {{ basic.button('garage.tor_l.zu', 'garage.tor_l.zu', 'ZU', 'arrow-d', '', 'midi') }} <hr> <p style="text-align:center"> Garage Rechts </p> {{ basic.button('garage.tor_r.auf', 'garage.tor_r.auf', 'AUF', 'arrow-u', '', 'midi') }} {{ basic.text('garage.tor_r.laufen', 'garage.tor_r.laufen',' Das Garagentor läuft ! ', ' Das Garagentor steht ! ') }}{{ basic.button('garage.tor_r.zu', 'garage.tor_r.zu', 'ZU', 'arrow-d', '', 'midi') }}
Grüße,
Michel
PS: Die Kameraeinstellung ist nicht optimal!


Kommentar