FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 26 März 2012, 21:20:14

Titel: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 26 März 2012, 21:20:14
Originally posted by: <email address deleted>

Guten Abend die FHEM Gemeinde.

Ich möchte ein Notify auslösen, wenn eine bestimmte Temperatur bei
einem 1Wire Device erreicht ist.
Habe schon mehrere Kombinationen ausprobiert, hat aber nichts
gefruchtet.

Was muss ich hinter dem Devicename richtig eintragen, damit das Notify
ausgeführt wird?

Ich lasse im STATE die Höchsttemperatur mit Hot und Tiefsttemperatur
mit Cool ausgeben.

Hier meine Beispiele die nicht funktionieren:

define Temperatur_Wasser_Hot notify 1W.T_Wasser:*Hot {\
 fhem("set Lampe1 on") if($value{Lampe1} ne "on");;\

define Temperatur_Wasser_Cool notify 1W.T_Wasser:*Cool {\
 fhem("set Lampe1 off") if($value{Lampe1} ne "off");;\



Hier die jetzige Ausgaben des Devices.

ALARM 1
DEF   DS18B20 C37ACC020000
INTERVAL 300
NAME 1W.T_Wasser
NR 62
OW_FAMILY 28
OW_ID C37ACC020000
PRESENT 1
ROM_ID 28.C37ACC020000.6C
STATE 58.38 °C Hot
TYPE OWTEMP

Readings
tempHigh 46         2012-03-26 21:09:57
tempLow 8            2012-03-26 21:09:57
temperature 58.375   2012-03-26 21:09:57

MfG Klaus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 26 März 2012, 22:01:55
Originally posted by: <email address deleted>

Wie ist das 1-Wire-Device angeschlossen ?

- Mit CUNO ?
- Mit USB und angesprochen über OWFS ? Wenn ja, welches Modul - das
"Standardmodul" OWTEMP.pm von Martin Fischer oder meines ?
- Mit USB und den von mir gelieferten "direkten" Modulen ?
- Wenn über USB, mit welchem Adapter ? Die aktiven Busmaster können nämlich
eine Alarmsituation beim Reset-Puls erkennen.

Mein OWTEMP.pm arbeitet zusammen mit OWFS und mit dem "direkten" Modul OWX,
und enhält die Alarmflags im STATE. Kann also über notify abgefangen
werden.

Noch nicht implementiert ist eine "schlanke" Suche nach den alarmierten
Devices. Das kommt demnächst, denn ich will damit Tastendrucke abfragen
(also im Sekundenabstand nach Alarmflags suchen).

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 26 März 2012, 22:26:04
Originally posted by: <email address deleted>

On 26 Mrz., 22:01, "Prof. Dr. Peter A. Henning"
wrote:
> Wie ist das 1-Wire-Device angeschlossen ?
>
> - Mit CUNO ?

Nein, CUL

> - Mit USB und angesprochen über OWFS ? Wenn ja, welches Modul - das
> "Standardmodul" OWTEMP.pm von Martin Fischer oder meines ?

Nein, OWFS ist deaktiviert.

> - Mit USB und den von mir gelieferten "direkten" Modulen ?

USB mit Deinen Modulen.

Lediglich habe ich in Deinem OWTEMP.pm die Grafikzeichen gegen die
Begriffe Hot und Cool ersetzt.

> - Wenn über USB, mit welchem Adapter ? Die aktiven Busmaster können nämlich
> eine Alarmsituation beim Reset-Puls erkennen.
>

http://www.fuchs-shop.com/de/shop/17/1/13372210/

> Mein OWTEMP.pm arbeitet zusammen mit OWFS und mit dem "direkten" Modul OWX,
> und enhält die Alarmflags im STATE. Kann also über notify abgefangen
> werden.
>
> Noch nicht implementiert ist eine "schlanke" Suche nach den alarmierten
> Devices. Das kommt demnächst, denn ich will damit Tastendrucke abfragen
> (also im Sekundenabstand nach Alarmflags suchen).
>
> LG
>
> pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 27 März 2012, 13:50:15
Originally posted by: <email address deleted>

OK, dann sollte es gehen. Habe jetzt eine Veranstaltung zu leiten, komme
also erst heute abend zum genaueren Ansehen.

Generelle Strategie aber:

- Das notify darf nicht auf "Hot" oder "Cool" matchen, denn die stehen in
den Readings nicht so drin. Sondern muss auf "temperature" matchen, und
dann in einer perl-Codezeile überprüfen, ob der State "Hot" oder "Cool" ist.

- Eine Ausgabe der Alarmflags in den Readings wollte ich vermeiden, weil
diese unnötig viel Müll in das Logfile schreiben. Könnte man aber durchaus
ändern.

Gruß

PAH

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 27 März 2012, 18:38:45
Originally posted by: <email address deleted>

Habe es gerade getestet:

define Temperatur_Wasser_Hot notify 1W.T_Wasser:temperature.* { fhem("set
Lampe1 on") if ($defs{'1W.T_Wasser'}{STATE} =~ m/.*Hot.*/) }

schaltet die Lampe an, wenn bei einer Temperaturmessung das heiße Alarmflag
gesetzt ist.

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: rudolfkoenig am 27 März 2012, 19:03:22
                                                   

> $defs{'1W.T_Wasser'}{STATE}

Dafuer wuerde ich zwecks Lesbarkeit und "Zukunftsicherheit"

  Value('1W.T_Wasser')

vorschlagen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 27 März 2012, 19:23:46
Originally posted by: <email address deleted>

Nu, warum nich Occams Razor ?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 27 März 2012, 19:49:39
Originally posted by: <email address deleted>

Hallo Peter,

es funktioniert einwandfrei. Ein kleine Frage habe ich da wohl
noch ;-)

Ich hatte bei der vorherigen OWFS Version folgenden Notify im Einsatz,
der auch funktionierte.

define Temperatur_Wasser_Hot notify 1W.T_Wasser.*temphigh {fhem("set
Lampe1 on") if($value{Lampe1} ne "on")}

Der Vorteil bei diesem Notify, wenn Lampe1 schon eingeschaltet war
(on) wurden keine weitere FHEM Befehl mehr
abgesetzt und damit auch keine weiteren Einträge ins LOG.

Wie würde das bei Deinem Notify aussehen?

Danke für deine Unterstützung.


Gruß Klaus




--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 28 März 2012, 07:46:23
Originally posted by: <email address deleted>

Ersetze

if ($defs{'1W.T_Wasser'}{STATE} =~ m/.*Hot.*/)

durch

if( ($value{Lampe1} ne "on")  &&  ($defs{'1W.T_Wasser'}{STATE} =~
m/.*Hot.*/) )

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 28 März 2012, 19:51:21
Originally posted by: <email address deleted>

Hallo Peter, danke Peter. Es funzt :-)

Hab da noch ne kurze Frage. Woher kann man so einen Eintrag für einen
Notify herleiten?

Woher weiß man was wie herangezogen wird bzw. wie die Syntax ist. Kann
man sich das irgendwo anlesen bzw. ableiten?


Gruß Klaus



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Mit einem 1-Wire Device ein Notify auslösen
Beitrag von: Guest am 29 März 2012, 09:28:45
Originally posted by: <email address deleted>

Na ja, das in den {}-Klammern ist einfach perl Code.

Schau mal bei Google Books unter "Handbuch Programmiersprachen" - darin
habe ich unter Anderem das perl-Kapitel geschrieben.

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com