FHEM - Hausautomations-Systeme > Unterstützende Dienste

PRESENCE

<< < (2/9) > >>

det.:
Hallo Markus,

vielen Dank für das nützliche Modul. Habe  damit die Konstruktion mit Dummy etc. Entsprechend dem WIKI Artikel http://www.fhemwiki.de/wiki/FritzBox:_WhoIsAtHome ersetzt. Funktioniert prima mit zwei iPhone 4 und 4S.

AnonymousHolger:
Hallo Markus,

die Idee mit dem allgemein verwendbaren PRESENCE Modul gefällt mir gut.

Jetzt will ich meine alte Routine ersetzen, habe aber Probleme.

Mein script sieht folgendermassen aus (sowohl lan-ping, als auch fritzbox (läuft auf FB7390))


--- Code: ---#define HolgerIP PRESENCE lan-ping 192.168.0.32 60
#define MariaIP PRESENCE lan-ping 192.168.0.43 60
define HolgerIP PRESENCE fritzbox Holger-IP4 60
define MariaIP PRESENCE fritzbox Maria-IP4S 60

define testwlan at +*00:05:00 {\
    if (value(HolgerIP) eq "present") {\
        fhem "set HomeStatus ZuHause";;\
        fhem "set Holger_zu_Hause on";;\
    }\
    else {\
      fhem "set Holger_zu_Hause off";;\
      fhem "set HomeStatus NichtzuHause";;\
      if (value(MariaIP) eq "present") {\
          fhem "set HomeStatus ZuHause";;\
      }\
    }\
    if (value(MariaIP) eq "present") {\
        fhem "set HomeStatus ZuHause";;\
        fhem "set Maria_zu_Hause on";;\
    }\
    else {\
      fhem "set Maria_zu_Hause off";;\
      fhem "set HomeStatus NichtzuHause";;\
      if (value(HolgerIP) eq "present") {\
          fhem "set HomeStatus ZuHause";;\
      }\
    }\
}
attr testwlan room 5_SYSTEM
--- Ende Code ---


Ich bekomme folgende Fehlermeldung (auszug aus dem LOG)
2013.02.03 15:02:57 1: CallBlockingFn: No telnet port found for sending the data back.
2013.02.03 15:02:57 1: CallBlockingFn: No telnet port found for sending the data back.
Bareword "HolgerIP" not allowed while "strict subs" in use at (eval 69) line 1.
Bareword "MariaIP" not allowed while "strict subs" in use at (eval 69) line 1.
Bareword "HolgerIP" not allowed while "strict subs" in use at (eval 69) line 1.
Bareword "MariaIP" not allowed while "strict subs" in use at (eval 69) line 1.

Markus Bloch:
Hi,

das liegt daran, das du keinen Telnet-Port für FHEM definiert hast. Die Shell-Befehle werden separat von FHEM entkoppelt. Sobald die Ergebnisse vorliegen, werden diese per Telnet quasi wieder zurück an den FHEM Mutter-Prozess gegeben.

Bitte füge deiner Konfiguration folgende Zeile hinzu:


--- Code: ---
define TELNET telnet 7072 global

# Um das Telnet-Device nirgendwo anzeigen zu lassen, optional:
attr TELNET room hidden

--- Ende Code ---


Viele Grüße

Markus

AnonymousHolger:
Danke für die Info.

Telnet war drin, nur in der config an der falschen Stelle.

Hab nun auch meine Routine korrigiert. Funktioniert nun einwandfrei. Der eigentliche Fehler war wohl durch meine falsche Abfrage des Parameters. Korrekt funktioniert: if ("$value{HolgerIP}" eq "present")

Gibt es eine "onChange" event, der meine Homestatus routine nur dann triggern kann, wenn sich einer der "Presence" Stati ändert ?

Dann brauche ich nicht alle "X Minuten" prüfen.

Markus Bloch:
Hi,

ja das gibts. Über das Attribut "event-on-change-reading" kann man steuern, das nur bei einer Änderung der darin eingetragenen Readings ein Event generiert werden soll.

Also:

--- Code: ---
define HolgerIP PRESENCE fritzbox Holger-IP4 60
attr HolgerIP event-on-change-reading state

define MariaIP PRESENCE fritzbox Maria-IP4S 60
attr MariaIP event-on-change-reading state


--- Ende Code ---


Nicht wunder, das man in der GUI nur 0 und 1 auswählen kann. Keine Ahnung warum das so ist. In der Commandref ist das aber entpsrechend dokumentiert (Folge dem Link readingFnAttributes aus der Attributliste von PRESENCE)

Viele Grüße

Markus

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln