Status einer Gruppenadresse abfragen?

Begonnen von PatrickB, 10 Juni 2013, 16:09:32

Vorheriges Thema - Nächstes Thema

PatrickB

Hallo,

gibt es einen Befehl in FHEM um den Status einer Gruppenadresse abzufragen?

ich hatte für meinen ATMega eine Funktion die das macht:

/************************************************************************************************************/
/*                            Service Primitive: ObjValueRead                                 */
/*                            damit wird eine bestimmte GroupAddr vom Bus angefordert               */
/************************************************************************************************************/
void ObjValueRead(EIBGA wGA)
{
   //------------        LDr   CF   ..own PA..  ..PA/GA...  NPCI  TPCI  TPCI
   int8_t cTxBuf[32] = {0x11, 0x0C, 0x11, 0xFF, 0xFF, 0xFF, 0xe1, 0x00, 0x00};

   cTxBuf[4] = MSB(wGA);
   cTxBuf[5] = LSB(wGA);

   SendFTmsg(cTxBuf, 9);                 // send L_DATA.req: (Obj)ValueRead
   
   return;
}

/************************************************************************************************************/

Aufruf dann so: ObjValueRead( GA(0,1,0));

darauf senden der EIB den Status der GA auf den Bus


wäre super wenn das auch in FHEM geht.

Gruss Patrick

PatrickB

Hallo,

ok ich hab herausgefunden das man mit "get Lampe_Buero" eine Statusanforderung auf den Bus senden kann. Geht auch aber leider meldet der FHEM Server
"SimpleWrite data: Use of uninitializied value in bitwise or (|) at. ./FHEM/00_TUL.pm line 706" ?? was kann das sein?

Gruss Patrick

Maz

Hi Patrick,

Da hast Du ein Bug gefunden ;(
Ich habe eben einen Fix in SVN eingecheckt. (leider konnte ich es nicht auf die schnelle testen),
Entweder einen update machen, oder in der Datei 00_TUL.pm folgende Zeile nach Zeile 703 einfügen:

 @data = (0x0) if(!(defined @data) || !(defined $data[0])); #make sure data has at least one element


Bitte prüfen und über Feedback würde ich mich freuen.

BTW: EIB ist nicht dafür konzipiert, gepollt zu werden. Also sehr vorsichtig mit dem get umgehen.

Viele Grüße
Maz

PatrickB

Hi Maz,

prima, da bin ich ja beruhigt dass es nicht an mir lag :-)

ich prüfe ob es geht, einfach update 00_TUL.pm eingeben? wie lange dauert es bis deine Änderungen aktiv sind?

das Abfragen des Status ist insofern wichtig wenn man zb. den Server neu startet und den Status div Geräte oder Kontakte wissen will. Dazu kommt dass bei Gruppen Zuordnung zb. ein Taster eine Lampe einschaltet der Ausschalter aber zb. im Keller alle Lampen ausmacht, in FHEM sind dann die Lampen aber immer an da es eine andere Gruppenadresse ist... mit dem Notify habe ich es so gemacht das dann der Status der Lampen abgefragt wird.


Gruss Patrick

Maz

Hi,

Leider weiss ich nicht, wie das mit dem update funktioniert.
Ich meine, dass es über Nacht verfügbar wird?!?! (evtl. im Anfänger-Forum fragen).

Du weißt schon, dass Du in fhem für ein Gerät mehrere Gruppenadressen angeben kannst?
Dann hören Deine Lampen in FHEM auch (und zusätzlich) auf die GA des schalters aus dem Keller und Du brauchst kein notify.

vg
Maz

PatrickB

Hallo Maz,

nein mir ist nicht bekannt dass man mehrere GA's zusammenfassen, wie geht das?

Ich hab aktuell jeder automatisch gelernten GA einen Namen verpasst. Das ich zum Ein/Aus Schalten verschieden GA's verwenden hängt mit zentral Funktionen zusammen. So werden zb. mehrere Lampen (GA für Lampe1, Lampe2 etc..) im Keller beim Verlassen ausgeschaltet (GA für Lampen_Keller_ALLE_AUS). Gleiches macht auch ein Alles_Aus Taster im Schlafzimmer, wobei da deutlich mehr GA's betroffen sind. Da hat man aber dann das Problem das dies zwar den Aktor betrifft, dieser sich aber in verschiedenen GruppenAdressen befindet.

Auf dem Eib ist es dann auch erforderlich die Schalter (bzw. den Status) in diese zusätzlichen GA's zu packen damit die LED's am Schalter ausgehen.

Gruss Patrick







PatrickB

So die 00_TUL.pm ist nun upgedatet, die Meldung : Use of uninitialized... ist nun weg, aber es wird immer "SimpleWrite data:" angezeigt? bekommt man das auch noch weg?

PatrickB

es kommt noch eine Fehlermeldung bei FHEM neustart:

define(@array) is deprecated at ./FHEM/00_TUL.pm line 704, $fh line 53

??

PatrickB

Hallo Maz,

hast du eine Idee wie ich die Fehlermeldungen noch weg bekomme?

Gruss Patrick

PatrickB

Hallo,

geändert hab ich noch nix, aber scheinbar ist die Abfrage defined @data nicht anwendbar da @data ja ein Arry ist und defined nicht weiß welchen wert es ab prüfen soll.

müsste es dann nicht einfach nur sein:


@data = (0x0) if(!(defined $data[0])); #make sure data has at least one element

Maz

Hi Patrick,
m.E. ist das nu eine Warnung.
Also musste es grundsätzlich bei Dir funktionieren, oder?
Wenn ja, werde ich das irgendwann mal anpassen, wenn ich dran bin (ist zur Zeit leider wenig Zeit übrig).

VG
Maz