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