eigenes Modul - readingsUpdate

Begonnen von bugster_de, 26 November 2013, 23:33:59

Vorheriges Thema - Nächstes Thema

bugster_de

Hallo,

das ist jetzt zwar nicht direkt eine Anfängerfrage, aber ich stelle sie trotzdem mal hier, da es sonst auch nirgends richtig rein passt.

Ich habe mir mein erstes, eigenes Modul geschrieben. Es handelt sich dabei um die FritzBox Anrufbeantworter (also die ABs, die man sich in der FB anlegen kann). Für jeden AB definiert man sich ein 'Gegenstück' in FHEM und kann nun den AB Status via FHEM lesen und den AB auch via FHEM ein- und ausschalten. Das geht soweit alles prima.

Nun bekomme ich es aber nicht hin, dass meine Readings im FHEMWeb auch automatisch ge-updatet werden. Aktualisierungen der Werte sieht man immer nur dann, wenn man den Browser Refresh macht. Sprich so kann man natürlich z.B. keinen notify auf anstehende, neue Nachrichten machen.

Kann mir da jemand helfen?

In der Funktion FB_TAM_GetStatus mache ich folgendes:
    # signal the update to FHEM
    readingsBeginUpdate($hash);

    $hash->{READINGS}{numoldmessages}{VAL} = $intbuf;
    $hash->{READINGS}{numoldmessages}{TIME} = $tn;
    $hash->{READINGS}{state}{VAL} = "on";
    $hash->{READINGS}{state}{TIME} = $tn;

    # and signal the end of the readings update
    readingsEndUpdate( $hash, 1 );

    # and finally invoke us again later
    InternalTimer( gettimeofday() + 30,
   "FB_TAM_GetStatus",
   $hash,
   1 );


Sprich die Idee ist es, diese Funktion in einem bestimmten Interval aufzurufen, dort den Status des jeweiligen AB zu pollen und dann in FHEM darzustellen. Geht alles soweit ausser dass es halt nicht automatisch geht sondern ich immer den Browser Refresh drücken muss.

Ich habe mein Modul mal angehängt.

Ach so: falls sich jemand fragt, wozu man so ein Modul braucht
- ich möchte im Floorplan anzeigen, ob neue Messages da sind. Die FB hat dafür zwar eine LED. Das nützt aber halt nichts, wenn die FB im Arbeitszimmer ganz hinten in der Ecke steht
- ich habe keine Möglichkeit gefunden, auf einen Rutsch bei der FB das Klingeln aller Telefone zu unterdrücken um meiner Kleinen einen ruhigen Mittagschlaf zu gönnen. Deshalb möchte ich den AB via FHEM so schalten können, dass er sofort ran geht und nich t erst 4 mal klingeln lässt.
- als Spielerei: verknüpft mit dem HOME Status, kann man den AB dann natürlich so einstellen, dass er sofort rangeht, wenn niemand zu Hause ist. Und wenn man wieder nach Hause kommt, lässt man das Telefon dann halt 4 mal klingeln.

P.S.: steinigt mich nicht gleich. Das ist mein erstes Modul und ich will mir die Modul Programmierung daran beibringen. Über konstruktive Hinweise freue ich mich aber auf jeden Fall

justme1968

du darfst die hash werte nicht selber manipulieren.

zwischen das readingsBeginUpdate und readingsEndUpdate gehören readingsBulkUpdate um die readings zu aktualisieren:readingsBulkUpdate($hash,"reading", $wert);

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

bugster_de