DOIF - Fehlermeldung "internal does not exist:"

Begonnen von mcbo, 07 November 2014, 15:56:13

Vorheriges Thema - Nächstes Thema

mcbo

Hi,

ich bekomme bei DOIF folgende Fehlermeldung im Logfile:
2014-11-07_15:20:36 di_Heizung_off error: internal does not exist: [presence_Alle_iPhones:STATE]

fhem.cfg:

define presence_Alle_iPhones structure room presence_iPhone1 presence_iPhone2
attr presence_Alle_iPhones alias Alle iPhones
attr presence_Alle_iPhones clientstate_behavior relative
attr presence_Alle_iPhones clientstate_priority 1|present 0|absent
attr presence_Alle_iPhones event-on-change-reading state

define di_Heizung_off DOIF ([presence_Alle_iPhones] = "0")({ Heizung_off_Sub() })
attr di_Heizung_off wait 900


99_myUtils.pm:
sub
Heizung_off_Sub()
{
if ((Value("presence_Alle_iPhones") eq "0"))

{ fhem("set ausser_Haus 1")};
{ fhem("set Heizung_Mode controlManu 15")};

}


Diese Funktion soll die Heizung beim Verlassen der Wohnung nach 15 Minuten abschalten.
Ich hatte das bisher mit einem Watchdog realisiert.
Das läuft aber sehr unzuverlässig.  :-\

Zum Einschalten habe ich ein equivalentes Script, das habe ich hier mal weggelassen.

Habe ich da einen Syntaxfehler?


Gruß

Marcel

Damian

Zitat von: mcbo am 07 November 2014, 15:56:13
Hi,

ich bekomme bei DOIF folgende Fehlermeldung im Logfile:
2014-11-07_15:20:36 di_Heizung_off error: internal does not exist: [presence_Alle_iPhones:STATE]

fhem.cfg:

define presence_Alle_iPhones structure room presence_iPhone1 presence_iPhone2
attr presence_Alle_iPhones alias Alle iPhones
attr presence_Alle_iPhones clientstate_behavior relative
attr presence_Alle_iPhones clientstate_priority 1|present 0|absent
attr presence_Alle_iPhones event-on-change-reading state

define di_Heizung_off DOIF ([presence_Alle_iPhones] = "0")({ Heizung_off_Sub() })
attr di_Heizung_off wait 900


99_myUtils.pm:
sub
Heizung_off_Sub()
{
if ((Value("presence_Alle_iPhones") eq "0"))

{ fhem("set ausser_Haus 1")};
{ fhem("set Heizung_Mode controlManu 15")};

}


Diese Funktion soll die Heizung beim Verlassen der Wohnung nach 15 Minuten abschalten.
Ich hatte das bisher mit einem Watchdog realisiert.
Das läuft aber sehr unzuverlässig.  :-\

Zum Einschalten habe ich ein equivalentes Script, das habe ich hier mal weggelassen.

Habe ich da einen Syntaxfehler?


Gruß

Marcel

Das bedeutet, dass bei presence_Alle_iPhones zu diesem Zeitpunkt kein Status existiert.

Du kannst auch nach dem Reading state abfragen, falls dieser existiert:  ...[presence_Alle_iPhones:state]

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mcbo

ZitatDas bedeutet, dass bei presence_Alle_iPhones zu diesem Zeitpunkt kein Status existiert.

Verstehe ich nicht.  ::)

presence_Alle_iPhones hat doch immer einen Status "present" oder "absent"

mein watchdog sieht momentan so aus:

define Heizung_off watchdog presence_Alle_iPhones:0 00:15:00 presence_Alle_iPhones:1 { Heizung_off_Sub() };; trigger Heizung_off .
attr Heizung_off regexp1WontReactivate 1


Das funktioniert halt nur 80%ig nicht 100%ig.
Sehr oft bleibt die Heizung einfach an.  ???

Gruß

Marcel