Ankündigung

Einklappen
Keine Ankündigung bisher.

Anwesenheitssimulation: Wie solls denn sein?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Featurewunsch] Anwesenheitssimulation: Wie solls denn sein?

    Hallo,
    Ich bastele jetzt schon einige Zeit an meiner Anwesenheitssimulation mit
    Aufnahme und Wiedergabe. Das Plugin abonniert markierte Items und schreibt
    Änderungen der Werte in eine Textdatei. Für die Wiedergabe werden die
    Werte Zeilenweise gelesen und an den Scheduler übergeben. Soweit so gut.
    Jetzt tun sich da aber noch ein paar Fragen auf.

    Derzeit ist es so: Wenn man Aufnahmen drückt beginnt diese nicht sofort
    sondern erst um 00:00 in der nächsten Nacht. Wenn man die Aufnahme stoppt
    genauso. Somit habe ich immer ganze Tage. Macht das Sinn? Es macht die
    Bedienung natürlich schwerer Verständlich und bläht den Code auf.

    Wie macht man es am besten für die Wiedergabe? Genauso hieße die Wiedergabe
    startet auch erst um 00:00 kommende Nacht. Man könnte aber auch alle
    Events bis zur aktuellen Uhrzeit überspringen und sofort starten.
    Was macht mehr Sinn oder wie machen es andere Systeme? Man kann ja sowas
    auch kaufen.

    Ich arbeite derzeit ohne festen Bezug zum Wochentag. Das heißt wenn man
    Sa und So aufnimmt und am Di Wiedergabe drückt, spielt der Samstag halt
    am Dienstag. Ich denke mal damit kann man leben. Anderenfalls müsste man
    immer ganze Wochen aufnehmen was natürlich auch ginge.

    Bitte keine Beiträge die sagen das man das besser mit ner Uhr macht :-)

    Michael
    Angehängte Dateien

    #2
    Super Idee

    Moin Michael,
    das klingt nach einer super Idee.
    Um zu klären, was Sinn macht, muss man IMHO erst mal klären, was die Anwesenheitssimulation leisten soll.
    Gut, Anwesenheit simulieren, das ist klar.
    Für mich ist so eine Simulation in zwei Fällen sinnvoll.
    1. Haus ist abends mal länger leer
    2. Urlaub
    Für 1. macht es Sinn direkt die Telegramme zu versenden, wenn der Play-back aktiviert wird. Also z.B. wenn man nachmittags das Haus verläßt.
    Für 2. ist es eher verschmerzbar, wenn der Play-back erst um Mitternacht los geht. Dabei fände ich eine Bindung an den Wochentag allerdings relativ sinnvoll.
    Am Wochenende läuft bei uns so einiges anders. Wenn bei Abwesenheit an einem So. die Rollos um 6 Uhr hochfahren und um 7 Uhr alle Lichter wieder ausgehen, ist das etwas komisch.
    Wobei auf der anderen Seite bei simuliertem "unregelmäßigem" Schalten wohl kein potentieller Störenfried auf die Idee von einer umfangreichen Simulation kommen würde.

    Einfach mal meine Gedanken dazu. Finde super, dass du dich mit dem Thema beschäftigst.

    Gruß, Sebastian
    Baustelle 2.0 (Detailprogrammierung und Restarbeiten)
    Ruhri? -> Komm zum Stammtisch

    Kommentar


      #3
      Hallo Michael,

      ich finde es toll, dass Du die Anwesendheitssimulation angehst!

      Warum möchtest Du die Aufzeichnung ein- und ausschalten. Ist es nicht einfacher die Aufzeichnung immer laufen zu lassen und ein „Ringpuffer“ mit den letzten 14 Tagen zu verwalten? Zur Anwesendheitssimulation kannst Du dann relativ aktuelle Daten, bzw. immer 14 Tage alt – passend zum Wochentag – abspielen.

      Die Wiedergabe sollte auf jedem Fall sofort anfangen, nicht nur um Anwesendheitssimulation für den Starttag zu kriegen, auch für das testen ist das deutlich angenehmer.

      Viele Grüße,

      Jan

      Kommentar


        #4
        Ich wäre auch für einen Ringpuffer. Eine weitere wichtige Frage wäre wie man die "watch-items" definiert. Entweder als Liste in der plugin.conf (fände ich gut) oder als Attribut im einzelnen item (fände ich weniger gut).
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          Hallo,
          OK, also die Simulation startet sofort. An den Fall "Ich mach es an wenn
          ich ins Kino gehe" hatte ich garnicht gedacht. Ich bin immer so auf
          Urlaub fixiert :-)

          Das mit dem Ringpuffer ist auch ne Idee. Dann muss man auch nicht dran
          dran denken vor dem Urlaub was aufzunehmen. Ich denk mal drüber nach.
          Das wäre warscheinlich noch einfacher als das was ich jetzt gebaut habe.

          Derzeit wird an jeden Item ein sim=track dran gehängt um es aufzunehmen.
          Das macht denke ich am meißten Sinn und ist am einfachsten zu programmieren :-)
          Zusätzlich gibt es noch ein sim=status und ein sim=control item um
          das Ding zu steuern.

          Am Wochende mach ich weiter.

          Michael

          Kommentar


            #6
            Das finde ich widerum total stressig. Da muss ich mich durch 5 item Files kämpfen um das plugin in Betrieb zu nehmen.
            Ich wäre für ein

            track = *.*.Licht.switch, *.*.Rollo.Fahrt, Licht.aussen

            Ob , oder | nun der richtige separator ist bin ich mir unsicher. So wäre es auf jeden Fall schöner (für mich).

            Du hast nach "Wünsch Dir was.." gefragt.
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #7
              Die Auswahl der Items könnte man auch ohne wahnwitzigen mehraufwand über Item Attribut UND plugin.conf unterstutzen (gibt es ein SmartHome policy dafür oder dagegen??). In plugin.conf fehlte mir bislang die Möglichkeit die Auswahl feiner als mit wildcards zu definieren und habe mir für einen Szenenlogik Auswahl über positiv und negativ Selektion wie folgt implementiert:

              Code:
              scene_items = *.raffstore.*.behangposition | *.markise.*.behangposition | *.*.beleuchtung.*.schalten | *.*.beleuchtung.*.dimmwert
              scene_exclude_items = *.raffstore.alle.behangposition | *.markise.alle.behangposition | *flur.beleuchtung.*.schalten | *flur.beleuchtung.*.dimmwert


              der python Code:

              Code:
              # build the list of scene items                                                                                                                               
              item_name_positive_list = logic.scene_items
              if isinstance(item_name_positive_list, str):
                  item_name_positive_list = [item_name_positive_list, ]
              scene_items = set(sh.match_items(item_name_positive_list[0]))
              for i in range(1, len(item_name_positive_list)):
                  scene_items = scene_items.union(set(sh.match_items(item_name_positive_list[i])))
              item_name_negative_list = logic.scene_exclude_items
              if isinstance(item_name_negative_list, str):
                  item_name_negative_list = [item_name_negative_list, ]
              for i in range(0, len(item_name_negative_list)):
                  scene_items = scene_items.difference(set(sh.match_items(item_name_negative_list[i])))


              Vielleicht kannst Du es gebrauchen, Michael.

              Viele Grüße,

              Jan

              Kommentar


                #8
                Hallo,
                och muss JuMi2006 beipflichten.
                Da es sich um ein Plugin handelt, würde ich es nicht mit den *item.conf files verwursten.
                Vieleicht lieber in der Plugin.conf eine Datei angeben, die die gewünschten items auflistet.
                Gruß Stefan

                PS: Danke, dass du dich der Sache annimmst.

                Kommentar


                  #9
                  Hallo,

                  Zitat von sabinellina Beitrag anzeigen
                  Vieleicht lieber in der Plugin.conf eine Datei angeben, die die gewünschten items auflistet.
                  Bitte nicht! Die Einführung von noch ein Konfigurationsweg (auch noch ohne Funktionalitätsgewinn) erhöht nur die Unübersichtlichkeit. Andere Itemspezifischen Konfigurationen, sei es KNX oder cache werden doch auch über die item.conf durchgeführt.

                  Viele Grüße,

                  Jan

                  Kommentar


                    #10
                    Zitat von JanT Beitrag anzeigen
                    Hallo,



                    Bitte nicht! Die Einführung von noch ein Konfigurationsweg (auch noch ohne Funktionalitätsgewinn) erhöht nur die Unübersichtlichkeit. Andere Itemspezifischen Konfigurationen, sei es KNX oder cache werden doch auch über die item.conf durchgeführt.

                    Viele Grüße,

                    Jan
                    +1

                    Ich stimme Jan zu eine weitere Konfiguration macht es nicht übersichtlicher. Ich finde sowas in der Art wie "sim = true" in der item.conf eigentlich ausreichend und einfach.

                    Grüße,
                    Lars

                    Kommentar


                      #11
                      Hallo,
                      Alles andere ist auch technisch schwierig umzusetzen. Ich müsste alle items anmelden und dann selber auswerten.
                      Ich lass es erstmal so wie es ist.
                      Die Idee mit dem Ringpuffer gefällt mir gut. Das baue ich noch ein. Aber der Teufel steckt auch hier im Detail :-)

                      Michael

                      Kommentar


                        #12
                        Ich finde auch die Konfiguration in den items besser.

                        Noch ein Gedanke:
                        Ich habe bei (Rollladen-) Automatiken immer ein wenig Bedenken, dass man sich aussperrt, wenn man mal vergisst die Automatik abzuschalten. Ich gehe also abends auf die Terrasse und plötzlich fährt hinter mir das Rollo runter. Ich persönlich habe Fensterkontakte mit denen ich versuche so etwas abzufangen, was aber bei einer Schiebetür schlecht funktioniert, denn die ist auch schon unverriegelt zugeschoben eben "zu" fürs System.

                        Evtl. könnte man durch Überwachung der Anwesenheit (z.B. Smartphone-Anwesenheit im WLAN) solche kritischen items dann von der Automatik ausnehmen.

                        Kommentar


                          #13
                          I was very interested in using presence simulation for smarthome.pi?
                          Any code to share for this plugin? Happy to help on this!

                          Kommentar


                            #14
                            Hi,
                            Das meisste ist fertig und läuft bei mir auch schon. Es fehlen aber noch ein paar Details und vor allem eine gute Dokumentation.
                            Derzeit habe ich allerdings eine Menge anderes zu tun. Es wird also noch ein paar Tage Dauern. Gruß,

                            Michael

                            Kommentar


                              #15
                              Hallo zusammen,
                              ich nutze das simulation plugin aber irgendwie ist mir nicht alles ganz klar. Es nimmt fleißig auf und wenn ich es dann abspiele, dann macht es etwas (schaltet auch ein paar Komponenten analog und digital) aber hört auch einfach irgendwann wieder auf. Es bleibt in Play stehen aber das kommende Ereignis, welches abgespielt werden soll (Item "ZF.sim.message") liegt in der Vergangenheit. Laut der Aufzeichnungsdatei kommen jedoch noch sehr viele Einträge.

                              Auch bin ich mir nicht sicher, wie der Stand ist. Kann das mehr als 14 Tage abspielen? Im Header der Quelle stehen noch folgende TODOs:
                              # Fehlermeldung wenn Datei nicht geschrieben werden kann
                              # Language Settings
                              # Day is out of range for Month...
                              # Replay simulation from beginning when end of file is reached

                              Habt ihr Ideen wie ich prüfen kann, woran es ggf. liegt. Die Items in der Aufzeichnungsdatei "simulation.txt" sind alle aus meiner Sicht gültig. Die zugehörigen Items in der .conf Datei haben auch alle das Attribut "sim = track". Es sind also auf Grund von Umprojektierungen keine Einträge in der Aufzeichnungsdatei von Items, die das Attribut mal laut conf getragen haben. Die passen alle zusammen.

                              Bin gerade etwas ratlos. Vielleicht habt ihr Ideen.
                              Danke euch!

                              Kommentar

                              Lädt...
                              X