Ankündigung

Einklappen
Keine Ankündigung bisher.

Weckzeiten aus Chumby holen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hallo Manuel

    Auch kommt es vor, dass die Namen sich dabei ändern. zum Beispiel ist es so, wenn Sie einen Eintrag erzeugt, dass Sie keinen Namen eingibt, sondern den nimmt der Vorgeschlagen wird.
    Hmmm...

    Aber sind die Namen wehnigstens eindeutig? Oder was wird als default angegeben? Das Problem ist wie gesagt, dass das Plugin, wenn es auf eine bestimmt Weckzeit eine GA auslösen soll, die Weckzeit irgendwie eindeutig identifizieren muss. Woher soll das Plugin wissen welche GA zu welcher Weckzeit gehöhrt?

    Mal angenommen man würde die Namen remanent speichern und ihnen einen eindeutigen INDEX zuordnen. Dann funktioniert das Plugin auch wenn neue einträge angelegt (erscheinen dann in einer Liste) und alte gelöscht werden. ABER es dürfen weiterhin keine doppelten Namen vorkommen. Und auch der Name einer bestehenden Weckzeit darf nicht geändert werden. Hättest du einen Vorschlag, wie man das problem lösen könnte?
    Gruss Patrik alias swiss

    Kommentar


      Wenn ich das hochladen der configdatei an den Chumby zum laufen bekäme (weiss aber noch nicht mal wie ich das genau anstellen sollte), dann würden sich neue Möglichkeiten ergeben. z.B. könnte man dann den leeren Namen einfach eine fortlaufende Nummer zuteilen und die Config wieder hochladen. Damit wäre die eindeutigkeit immer gegeben. Nur nützt das nix denn wenn du eine GA z.B. 1/3/32 mit der Weckzeit Manuel verknüpfst und deine bessere Hälfte den Eintrag entfernt oder umbenennt, geht wieder die Zugehöhrigkeit der GA verloren

      Naja...

      Wenn du ein paar Weckzeiten hast die immer benötigt werden und solche, die garnicht mit einer GA verknüpft sein müssen, gäbe es eine praktikable Lösung...

      Die Weckzeiten die eine GA auslösen MÜSSEN einen fixen und eindeutigen Namen haben. Der darf auch nicht geändert werden.

      Alle überigen Weckzeiten die nur Temporär im Einsatz sind und keine GA auslösen müssen, können irgend einen Namen haben oder hald eben leer = "" bleiebn.

      PS: Das Problem kreigst du auch mit einer Webabfrage warscheinlich nicht ganz gelöst. Wenn z.B. deine Frau einen eintrag löscht und dann neu anlegt, verändert sich seine Position in der Tabelle und dadurch stimmt die gesammte Anzeige auf der Visu nicht mehr.
      Gruss Patrik alias swiss

      Kommentar


        Hallo Swiss,

        bei einer Webabfrage ist es schon möglich (muss aber dabei zugeben, es lief bis jetzt immer nur in einem Testaufbau)

        Bei einer Webabfrage wird immer nach einem Schema F abgefragt:

        z.B.

        Code:
        <alarm name="Fliegen" backupDelay="5" backup="1" action_param="on" action="nightmode" auto_dismiss="0" param_description="My Streams: ffn" param="&lt;stream url=&quot;http://player.ffn.de/tunein_ffn.pls&quot; id=&quot;c793db27-2aec-0e71-cffb-58db583c3a23&quot; mimetype=&quot;audio/x-scpls&quot; name=&quot;ffn&quot; /&gt;" arg="directurl" type="audio" duration="30" snooze="3" enabled="0" time="370" when="weekday" />
        <alarm name="Manuel Arbeitstag" backupDelay="5" backup="1" action_param="on" action="nightmode" auto_dismiss="0" param_description="My Streams: ffn" param="&lt;stream url=&quot;http://player.ffn.de/tunein_ffn.pls&quot; id=&quot;c793db27-2aec-0e71-cffb-58db583c3a23&quot; mimetype=&quot;audio/x-scpls&quot; name=&quot;ffn&quot; /&gt;" arg="directurl" type="audio" duration="30" snooze="2" enabled="0" time="370" when="weekday" />
        <alarm name="test" backupDelay="5" backup="0" action_param="" action="none" auto_dismiss="0" param_description="Beep" param="" arg="Beep" type="beep" duration="30" snooze="5" enabled="0" time="565" when="monday" />
        <alarm name="Täglich um 5:35" backupDelay="5" backup="0" action_param="" action="" auto_dismiss="0" param_description="My Streams: ffn" param="&lt;stream url=&quot;http://player.ffn.de/tunein_ffn.pls&quot; id=&quot;c793db27-2aec-0e71-cffb-58db583c3a23&quot; mimetype=&quot;audio/x-scpls&quot; name=&quot;ffn&quot; /&gt;" arg="directurl" type="audio" duration="30" snooze="2" enabled="1" time="335" when="daily" />
        <alarm name="Nachtmodus" backupDelay="5" backup="0" action_param="on" action="nightmode" auto_dismiss="1" param_description="Nichts" param="" arg="None" type="none" duration="30" snooze="5" enabled="1" time="1140" when="daily" />
        <alarm name="Schule" backupDelay="5" backup="1" action_param="" action="" auto_dismiss="0" param_description="My Streams: ffn" param="&lt;stream url=&quot;http://player.ffn.de/tunein_ffn.pls&quot; id=&quot;c793db27-2aec-0e71-cffb-58db583c3a23&quot; mimetype=&quot;audio/x-scpls&quot; name=&quot;ffn&quot; /&gt;" arg="directurl" type="audio" duration="30" snooze="2" enabled="1" time="375" when="saturday" /></alarms>
        Da habe ich immer eine Reihenfolge.

        - Alarmname
        - Aktiv/Inaktiv
        - Uhrzeit
        - Wochentag

        Die Abfrage läuft immer von oben nach unten, So weiß ich genau, zu welchen Namen, welche Zeit, Wochentag etc gehört.


        Edit: Ich habe gerade nochmal nachgesehen. Beim HS habe ich es so gemacht, dass ich für jede Weckzeit eine eigene Abfrage gemacht habe.


        Gruß Manuel

        Kommentar


          Aber das mit dem einhalten der Reihenfolge klapt auch? Wie gesagt... Wenn du statisch von oben nach unten abfragst, must du zwingend eine Konstante in deiner Config haben. Was passiert sonst wenn du zB den eintrag Fliegen entfernst. Dann stimmen warscheinlich die GAs nichtmehr. Ob das nun der Name oder dir Position ist, ist egal. Man könnte also durchaus auch nach Positionen arbeiten.
          Gruss Patrik alias swiss

          Kommentar


            Hallo Swiss,

            es wird in deinem Plugin nach dem namen, z.B. Fliegen gesucht, dann weiß das Plugin dass nun der Name kommt. Was wird denn als Platzhalter genommen z.B. zwischen dem Aktiv/passiv. (Bei der Webabfrage kommt ja als Platzhalter .z.B beliebige Werte, dazwischen bis wieder ein eindeutiger Name, etc kommt.

            Gruß Manuel

            Kommentar


              Das Prinzip in diesem Plugin ist etwas anders als bei einer Webabfrage...

              Du must dir das wie eine Tabelle vorstellen.

              Die Tabelle besteht aus den Spalten Name, Zeit, aktiv, Wochentage, Dauer usw...

              Jede Weckzeit bekommt eine eigene Zeile in dieser Tabelle. Das funktioniert automatisch und ohne zerlegen ala beliebiger Text - Text(<br>) - beliebiger text usw...

              Nun kann ich anhand des Namens die zugehörige Weckzeit herausfinden. Funktioniert wie eine Art Suchfunktion innerhalb der Tabelle.

              Desshalb darf jeder Name nur einmal vorkommen da sonst die Suche fehlschlägt. Dafür ist die Reihenfolge der Daten egal. Meine Weckzeit Arbeiten kann Heute am anfang der Liste und morgen durch löschen und neu anlegen ganz am Ende und die Weckzeit wird immernoch korrekt eingelesen und auf der Visu angezeigt
              Gruss Patrik alias swiss

              Kommentar


                Hallo Swiss,

                dann wird das auch nichts mit der Zuordnung bei unbekannten Namen.
                Wenn man sich die XML anschaut, dann ist Sie quasi in jeder Spalte gleich.
                Oder kann man da doch irgendwie was machen ?

                Wo definiert man denn, welche "Spalte" z.B. als Uhrzeit genommen wird und nicht z.B. Wie lange die Schlummerzeit ist ?

                Gruß Manuel

                Kommentar


                  Die namen sind durch das XML vorgegeben. Wenn du das XLM mal mit den abfrageschlüssel vergleichst erkennst du die Struktur...

                  z.B.

                  Code:
                  <alarms><alarm action_param="73B84870-8969-11E0-8CE9-0021288EBF58" when="weekday" arg="Beep" time="345" name="" duration="30" backupDelay="5" auto_dismiss="0" snooze="5" action="profile" type="beep" param="" backup="1" param_description="Beep" enabled="0" />
                  Wenn wir in diesem Beispiel die Zeit abfragen wollen wird das so gemacht:

                  $alarms->{$key}->{time}

                  Das Ergebniss lautet 345


                  Wenn wir wissen wollen, wann die Weckzeit gültig ist, wird das so gemacht:

                  $alarms->{$key}->{when}

                  Das Ergebniss lautet dann weekday


                  Wollen wir die Schlummerzeit auslesen geht das so:

                  $alarms->{$key}->{snooze}

                  Das Ergebniss wäre dann 5

                  usw...
                  ............................

                  Das gilt aber immer nur für eine Zeile. Es wird also Zeile für Zeile überprüft, ob der Name übereinstimmt, und in den übrigen Schlüsseln z.B. {time} steht die zugehörige Zeit. Natürlich könnte man auch mit einem Zähler arbeiten und dann im Plugin sagen, dass der erste Eintrag auf die GA 1/1/1 und der zweite Eintrag auf die GA 1/1/2 usw... gesendet wird.

                  Die Frage ist was du genau machen möchtest. Wenn du eine statische Visu hast in der einfach nach z.B. "Manuel Arbeiten" die Weckzeit ausgeben willst, dann funktioniert das nur, wenn der Eintrag "Manuel Arbeiten" immer am gleichen Ort in der Config ist. Mit der aktuellen Variante kann der Eintrag irgend wo sein. Was ist den genau das Problem? Funktioniert das gesammte Plugin nichtmehr, wenn eine Weckzeit mit doppeltem Namen oder "leer" angelegt wird, oder werden dann einfach nichtmehr alle Weckzeiten ausgegeben?
                  Gruss Patrik alias swiss

                  Kommentar


                    Hallo Swiss,

                    wenn ich im Plugin doppelte Namen habe bzw wie in meinem Plugin kein Name angegeben habe, dann wird nur eine Weckzeit ausgegeben.

                    Ich denke dass ich dann damit leben muss, nur definierte Namen zu verwenden.

                    Gruß Manuel

                    Kommentar


                      Ist denn bei dir die Reihenfolge der Weckzeiten immer identisch? Was machst du mit den Daten die das Plugin an den BUS sendet? Dann kann ich mir vieleicht besser vorstellen was damit geschieht und wie man die Weckzeiten am besten überträgt.

                      Natürlich könnte man auch ähnlich wie bei einer Webabfrage mit einem INDEX arbeiten. dann wäre 1 der erste Eintrag, 2 der zweite, 3 der dritt usw...(der Name wäre dabei völlig schnurtz und könnte bei bedarf auch über den BUS gesendet werden) Aber wenn sich die Reihenfolge ändert, werden nichtmehr die gleichen Weckzeiten über die gleiche GA gesendet. Es gibt dann eine Verschiebung. Vieleicht ist das aber in deinem Anwendungsfall egal. Desshalb meine Frage nach dem "Wie und für was werden die Daten auf dem BUS verwendet?".
                      Gruss Patrik alias swiss

                      Kommentar


                        Hallo Swiss,

                        ich habe vor damit mein Haus "zu wecken". Ich möchte, dass dann z.B.
                        im Haus die Jalousie auf fahren und soweiter. Außerdem möchte ich Zenen die Nachts aktiv sein sollen, damit abzustellen.

                        Gruß Manuel

                        Kommentar


                          Hmmm...

                          Ok. Dann stellt sich hier die Frage wie die Auswertung funktioniert. Werden einfach alle Zeiten an eine externe Logik gesendet und wenn eine der Zeiten überein stimmt, wird eine GA geschalten? Wirken alle Zeiten auf die Gleiche GA oder brauchst du eine Unterscheidung zwischen den Weckzeiten? Wie stellt die externe Logik fest ob bei der ankommenden Weckzeit nun ein oder ob ausgeschaltet werden soll?

                          Sorry für die vielen Fragen aber ich kann es mir wirklich nicht vorstellen. Erst wenn ich die Zusammenhänge verstehe kann ich das Plugin so umschreiben, dass es optimal für deinen Anwendungsfall funktioniert.
                          Gruss Patrik alias swiss

                          Kommentar


                            Hallo Swiss,

                            dass kann ich dir leider erst sagen, wenn mein Haus steht. Ich versuche halt jetzt schon die Zeit und auch das Geld (noch habe ich welches) für Spielerein zu investieren.

                            Ich denke es wird darauf hinauslaufen, dass ich einen Vergleicher nehme, der die Weckzeit mir der aktuellen Zeit vergleicht und dann die Befehle rausgibt.

                            Mir würde auch reichen, wenn nur die Zeiten auf den Bus gebracht werden, wo auch die Weckzeit aktiv ist.

                            Gruß Manuel

                            Kommentar


                              Achsoo...

                              Ich glaube ich habe es nun verstanden. Es ist also in deinem Anwendungsfall wirklich total wurscht, welche Weckzeit zu welchem Eintrag gehöhrt?

                              Dann würde es sich aber z.B. anbieten den Vergleicher mit der aktuellen Zeit direkt in das Plugin einzubauen?

                              Sollen alle Weckzeiten über die Gleiche GA gesendet werden oder soll jede Weckzeit über eine eigene GA gesendet werden?

                              -> Falls jede Weckzeit auf eigene GA... Reicht dir da auch ein GA-Bereich und die Weckzeiten werden einfach der reihe nach an vortlaufende GA's gesendet? z:B. Start GA 5/6/10...

                              Weckzeit1 -> 5/6/10
                              Weckzeit2 -> 5/6/11
                              Weckzeit3 -> 5/6/12
                              usw...

                              Das wäre alles relativ einfach zu lösen
                              Gruss Patrik alias swiss

                              Kommentar


                                Hallo Swiss,

                                das würde reichen denke ich. (Notfalls kenne ich ja jemanden, der mir dabei super helfen kann)

                                Echt Super deine Hilfe und Geduld . Mache bitte weiter so.

                                Gruß Manuel

                                Kommentar

                                Lädt...
                                X