FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 18 Mai 2010, 00:18:04

Titel: Zugriff auf Attribute
Beitrag von: Guest am 18 Mai 2010, 00:18:04
Originally posted by: <email address deleted>

Hallo zusammen,

ich versuche, per folgender Anweisung auf sowohl den Status als auch
die Zeit der letzten Statusänderung zuzugreifen (hier ein FS20-PIRA):
{ my @a = split( " ", fhem("list pira.einfahrt state") );; $a[0]}
Die Ausgabe ist allerdings immer der komplette Status-String
pira.einfahrt 2010-05-17 22:27:14 on-old-for-timer 60
die Variable a ist undefiniert, als ob nach der "fhem()"-Funktion die
weitere Abarbeitung abbricht.

Wie kann ich auf Attribute zugreifen?

Gruß
TD

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Titel: Re: Zugriff auf Attribute
Beitrag von: rudolfkoenig am 18 Mai 2010, 09:04:34
                                                   

> { my @a = split( " ", fhem("list pira.einfahrt state") );; $a[0]}

Das Problem hier ist, dass die "fhem()" Funktion (bzw. die von fhem()
aufgerufene AnalyzeCommandChain) das Ergebnis zwar ausgibt, aber nicht
zurueckliefert. Das ist unschoen bzw. ist ein Bug.

Der z.Zt empfohlene Weg diese Daten auszulesen ist

  $value{pira.einfahrt}
bzw.
  $defs{pira.einfahrt}{READINGS}{state}{VAL}

Fuer die Zeiten:
  $defs{pira.einfahrt}{READINGS}{state}{TIME}
bzw. numerisch zum Rechnen:
  time_str2num($defs{pira.einfahrt}{READINGS}{state}{TIME})

Um Werte temporaer halten zu koennen sollten Anwenderscripts %data verwenden.
Siehe auch http://www.koeniglich.de/fhem/commandref.html#perl

Es ist zu erwarten, dass in den naechsten fhem Version die $defs Zugriffe
vereinfacht/vereinheitlicht aber damit leider auch geaendert werden.

Gruss,
  Rudi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Titel: Re: Zugriff auf Attribute
Beitrag von: Guest am 26 Mai 2010, 23:11:44
Originally posted by: <email address deleted>

Hallo Rudi,

> Das Problem hier ist, dass die "fhem()" Funktion (bzw. die von fhem()
> aufgerufene AnalyzeCommandChain) das Ergebnis zwar ausgibt, aber nicht
> zurueckliefert. Das ist unschoen bzw. ist ein Bug.
>
> Der z.Zt empfohlene Weg diese Daten auszulesen ist
>
>   $value{pira.einfahrt}
> bzw.
>   $defs{pira.einfahrt}{READINGS}{state}{VAL}
>
> Fuer die Zeiten:
>   $defs{pira.einfahrt}{READINGS}{state}{TIME}
> bzw. numerisch zum Rechnen:
>   time_str2num($defs{pira.einfahrt}{READINGS}{state}{TIME})
herzlich Dank, das war. Nun kann ich im Detail weitertüfteln.

> Um Werte temporaer halten zu koennen sollten Anwenderscripts %data verwenden.
> Siehe auchhttp://www.koeniglich.de/fhem/commandref.html#perl
Eine Referenz auf %data finde ich dort nicht. Wie ist das gemeint?

Gruß
TD

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Titel: Re: Re: Zugriff auf Attribute
Beitrag von: rudolfkoenig am 27 Mai 2010, 07:53:51
                                                   

> Eine Referenz auf %data finde ich dort nicht. Wie ist das gemeint?

Um Werte zwischen zwei Aufrufen des perl "Einzeilers" zu speichern,
sollte man $data{myvarname} = "myvalue" verwenden.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Titel: Re: Zugriff auf Attribute
Beitrag von: Guest am 30 Mai 2010, 21:08:03
Originally posted by: <email address deleted>

Hallo Rudi,

On 27 Mai, 07:53, Rudolf Koenig wrote:
> > Eine Referenz auf %data finde ich dort nicht. Wie ist das gemeint?
>
> Um Werte zwischen zwei Aufrufen des perl "Einzeilers" zu speichern,
> sollte man $data{myvarname} = "myvalue" verwenden.
danke.
Warum nicht
{ use vars qw( $x ) }
?

Gruß
TD

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Titel: Re: Re: Zugriff auf Attribute
Beitrag von: rudolfkoenig am 31 Mai 2010, 09:52:45
                                                   

> Warum nicht
> { use vars qw( $x ) }
> ?

Damit die Einzeiler kuerzer werden, weniger Know-How erfordern, und
Benutzervariablen nicht mit Internen kollidieren.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.