Ankündigung

Einklappen
Keine Ankündigung bisher.

Backup & Restore

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

    [Featurewunsch] Backup & Restore

    Hallo zusammen,

    ich habe folgendes Szenario:
    Wenn ein Rauchalarm ausgelöst wird, soll auf allen Lautsprechern ein Alarmsignal ertönen. Dazu muss ich die Quellen für jede Zone meines Russound setzen, die Lautstärke einstellen und auf einer Quelle was bestimmtes abspielen.
    Wenn der Rauchalarm quittiert wird soll der Ausgangszustand wiederhergestellt werden.

    Ich bräuchte also eine Möglichkeit, items zu backupen evtl. persistieren und zu einem beliebigen Zeitpunkt wiederherzustellen.
    Das liese sich zwar in einer Logik selber implementieren, ich dachte aber, das könnten evtl. mehr Leute benötigen. Deshalb dachte ich an eine allgemeine Backup & Restore Funktionalität für items.

    Sowas z.B.:
    Code:
    backup = sh.tools.backup(*items)
    sh.tools.restore(backup)
    Ist das machbar, bzw. seht ihr das für sinnvoll?

    Gruß
    Matthias

    #2
    Hallo Matthias,

    ich sehe die Lösung eher in der Erweiterung des Russound-Plugins.
    Abgesehen von dem Notfall (Feuer) gibt es häufiger die Anforderung für z.B. Durchsagen oder die Türklingel.
    Die gewünschte Funktion bringt in der Logik, aus meiner Sicht, keinen großen Nutzen.

    Ob ich jetzt:

    sh.tools.backup(item) und sh.tools.restore(item)

    oder
    sh.item.backup = sh.item() und sh.item(sh.item.backup)

    schreibe, macht auch keinen Unterschied.

    Bis bald

    Marcus

    Kommentar


      #3
      Dann bräuchte ich aber in meiner item conf für jedes item, dass ich backupen wollte ein zusätliches 'backup' item.

      z.B.:
      Code:
      Backup:
      sh.audio.amp.volume.backup(sh.audio.amp.volume())
      sh.audio.amp.source.backup(sh.audio.amp.source())
      sh.audio.amp.power.backup(sh.audio.amp.power())
      
      Restore:
      sh.audio.amp.volume(sh.audio.amp.volume.backup())
      sh.audio.amp.source(sh.audio.amp.source.backup())
      sh.audio.amp.power(sh.audio.amp.power.backup())
      Im Gegensatz zu:
      Code:
      Backup:
      sh.tools.backup(sh.backup.smokedetector, sh.audio.amp.volume, sh.audio.amp.source, sh.audio.amp.power)
      
      Restore:
      sh.tools.restore(sh.backup.smokedetector)
      Aber gut, hat natürlich keine hohe Priorität. Den dafür zu schreibenden Code fänd ich nur besser wartbar/lesbar.

      Gruß
      Matthias

      Kommentar


        #4
        Hallo,
        Zitat von Incognito666 Beitrag anzeigen
        Dann bräuchte ich aber in meiner item conf für jedes item, dass ich backupen wollte ein zusätliches 'backup' item.

        Nein. Die Zustände sind dann allerdings über einen Neustart nicht verfügbar.

        Bis bald

        Marcus


        Gesendet von unterwegs

        Kommentar


          #5
          Ist für sowas nicht der Paging Eingang des Russound gedacht?
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            Mein Russound hat keinen Paging Eingang (CAS44). Außerdem will ich ja noch viele weitere Zustände wieder zurücksetzen, wie Licht, Rollläden und Lüftung.

            Wie kann ich die Zustände denn halten, wenn nicht in einem Item?
            Ich kann leider kein Python. Kann ich die Zustände in globalen Variablen in meiner logic.py speichern? Wird also immer dieselbe Objekt Instanz verwendet um die Logiken aufzurufen?

            Kommentar


              #7
              Zitat von Incognito666 Beitrag anzeigen
              Wird also immer dieselbe Objekt Instanz verwendet um die Logiken aufzurufen?
              ja. Siehe Logics ? SmartHome.py 1.0 documentation

              Mit logic.meinevariable = meinwert kannst Du einen Wert zwischenspeichern.

              Und Python solltest Du Dir näher anschauen, das ist leicht zu lernen und erleichtert Dir Deine Aufgaben effizienter/schöner zu lösen.

              Bis bald

              Marcus

              Kommentar


                #8
                Hi Marcus,

                sollte sich das nicht mit prev_value() der Items lösen lassen?

                EDIT: okay, dann kann man aber nicht zu einem beliebigen Zeitpunkt ein Snapshot machen und zu einem anderen beliebigen Zeitpunkt wiederherstellen.
                Mit freundlichen Grüßen
                Niko Will

                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                Kommentar

                Lädt...
                X