FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: rhoffm34 am 12 Oktober 2018, 23:11:04

Titel: Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 12 Oktober 2018, 23:11:04
Hallo zusammen,

ich möchte gerne verschiedene Warnungen über Telegram versenden. Ich habe schon versucht es mit DOIF oder ein Notify zu realisieren aber es will nicht so recht funktionieren.

Was habe ich vor:

Zum Bsp die Kesseltemperatur und Vorlauftemperatur der Heizung überwachen

Kesseltemperatur < 60°C  ==> Telegram Message 
Vorlauftemperatur > 70°C  ==> Telegram Message

So klappt es jedenfalls nur bedingt:
Ist eine Bedingung erfüllt, kommen alle drei Nachrichten.

Kann mit jemand weiter helfen mit einer sauberen Lösung?

Viele Grüße
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 12 Oktober 2018, 23:25:28
Kannst du mal ein List vom Device schicken?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 12 Oktober 2018, 23:30:06
Kleinigkeit vergessen...

so habe ich es versucht zu übersetzten...

([Brauchwasser:temperature] < [P_Warning_Brauchwasser])
(set teleBot message @R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature] )
([Hzg_Vorlauf:temperature] < [P_Warning_VorlaufTemp])
(set teleBot message @R_H Hzg_Vorlauf zu niedrig: [Hzg_Vorlauf:temperature] )
([Hzg_Vorlauf:temperature] > [P_Warning_VorlaufTemp])
(set teleBot message @R_H **Warnung**Hzg_Vorlauf zu hoch: [Hzg_Vorlauf:temperature] )
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 12 Oktober 2018, 23:44:27
Woher kommt [P_Warning_Brauchwasser] und [P_Warning_VorlaufTemp]?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 12 Oktober 2018, 23:49:41
Das sind Variabeln, also Dummys
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 12 Oktober 2018, 23:51:49
Also steht im state vom [P_Warning_Brauchwasser] die Variable?
Nen List von den Geräten wäre bei so einer Fragestellung immer sehr hilfreich.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 00:01:31
Sorry... Ja im state steht die Variable.

Was meinst Du mit List vom Device? Guck mal das Bild im Anhang... ist es das?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 13 Oktober 2018, 00:05:56
Ein List vom jeweiligen Device bekommst du, wenn du in die FHEM Kommandozeile
list DEVICENAME
eingibst.
Also mach mal bitte
list P_Warning_Brauchwasser
und poste das Ergebnis mal hier in einem Code-Tag
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 00:13:33
Internals:
   CFGFN     
   NAME       P_Warning_Brauchwasser
   NR         33023
   STATE      60
   TYPE       dummy
   READINGS:
     2018-10-13 00:05:23   state           60
Attributes:
   DbLogExclude .*
   room       Parameter
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 13 Oktober 2018, 00:16:53
Hier mal ein Notify
Brauchwasser:temperature:.*|Hzg_Vorlauf:temperature:.* {

if (ReadingsNum("Brauchwasser", "temperature", 45) < ReadingsNum("P_Warning_Brauchwasser","state",60)) {
          fhem("set teleBot message \@R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature]");
}

if (ReadingsNum("Hzg_Vorlauf", "temperature", 45) < ReadingsNum("P_Warning_VorlaufTemp","state",60)) {
          fhem("set teleBot message \@R_H Hzg_Vorlauf zu niedrig: [Hzg_Vorlauf:temperature]");
}

if (ReadingsNum("Hzg_Vorlauf", "temperature", 45) > ReadingsNum("P_Warning_VorlaufTemp","state",60)) {
          fhem("set teleBot message \@R_H **Warnung**Hzg_Vorlauf zu hoch: [Hzg_Vorlauf:temperature]");
}

}


Der sendet jetzt allerdings jedes mal, sobald sich das temperature reading aktualisiert.
Dies kann man umgehen, indem man z.B. eine Hilfsvariable nimmt.
Alternativ könnte man auch mit einem Notify ein AT aktivieren, welches dir alle 30 Minuten eine
Meldung schickt, solange die Bedingungen erfüllt sind.

EDIT:
War nen Fehler drin!
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 00:23:43
Habe ich verstanden. Die Temperaturen ändern sich leider ständig wenn die Bedingung

(ReadingsNum("Brauchwasser", "temperature", 45) < ReadingsNum("P_Warning_Brauchwasser","state",60)

erfüllt ist.

Somit erhalte ich sehr viele Nachrichten. Ich möchte die Nachricht nur einmal senden. Die nächste Nachricht möchte ich erst wider senden wenn der Schwellwert unterschritten wird.


An ein at hatte ich auch schon gedacht. Nur bekomme ich die Warnung dann nicht Zeitnah sonder erst wenn das at auslöst...

Ist also noch nicht das was ich suche...
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 13 Oktober 2018, 00:51:42
Eine Sache müsste ich noch wissen.

([Hzg_Vorlauf:temperature] < [P_Warning_VorlaufTemp])
(set teleBot message @R_H Hzg_Vorlauf zu niedrig: [Hzg_Vorlauf:temperature] )
([Hzg_Vorlauf:temperature] > [P_Warning_VorlaufTemp])
(set teleBot message @R_H **Warnung**Hzg_Vorlauf zu hoch: [Hzg_Vorlauf:temperature] )

Dieser Fall tritt ja immer auf, es sei denn, die Temperaturen sind exakt gleich.
Wie wird das gelöst? Sonst bekommst du ja für diese Nachrichten auch dauerhaft.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 13 Oktober 2018, 01:04:40
Ah, sorry, hab deinen editierten Text nicht gelesen.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 13 Oktober 2018, 01:13:06
Damit sollte es funktionieren.
Das message Reading ist eine Hilfsvariable.
Somit bekommst du die Nachricht nur ein mal, wenn die Temperatur überschritten wurde.
Sobald die Temperatur unterschritten wurde, wird das message reading zurückgesetzt und bei erneuter
Überschreitung bekommst du wieder eine Nachricht.


Brauchwasser:temperature:.*|Hzg_Vorlauf:temperature:.* {
if (ReadingsNum("Brauchwasser", "temperature", 45) < ReadingsNum("P_Warning_Brauchwasser","state",60) && ReadingsNum("P_Warning_Brauchwasser","message",0) == 0) {
          fhem("set teleBot message \@R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature]");
  fhem("setreading P_Warning_Brauchwasser message 1");
}

if (ReadingsNum("Brauchwasser", "temperature", 45) > ReadingsNum("P_Warning_Brauchwasser","state",60) && ReadingsNum("P_Warning_Brauchwasser","message",0) == 1) {
  fhem("setreading P_Warning_Brauchwasser message 0");
}

if (ReadingsNum("Hzg_Vorlauf", "temperature", 45) < ReadingsNum("P_Warning_VorlaufTemp","state",60) && ReadingsNum("P_Warning_VorlaufTemp","message",0) == 0 ) {
          fhem("set teleBot message \@R_H Hzg_Vorlauf zu niedrig: [Hzg_Vorlauf:temperature]");
  fhem("setreading P_Warning_VorlaufTemp message 1");
}

if (ReadingsNum("Hzg_Vorlauf", "temperature", 45) > ReadingsNum("P_Warning_VorlaufTemp","state",60) && ReadingsNum("P_Warning_VorlaufTemp","message",0) == 1 ) {
          fhem("set teleBot message \@R_H **Warnung**Hzg_Vorlauf zu hoch: [Hzg_Vorlauf:temperature]");
  fhem("setreading P_Warning_VorlaufTemp message 0");
}
}
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 01:20:52
Brauchwasser
Hzg_Vorlauf
Hzg_Vorlauf

Alle drei bekommen ein userattr warnLevel. Dieses zusätzliche Attribut  wird dann in allen drei Devices gesetzt.
Danach wird in allen drei Devices ein userReading angelegt. Z.b. vorlaufTemp wo du dann high oder low rein schreiben lässt je nach deine Schwelle.
Und DAS triggerst Du dann mit einem Notify.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Vaddi am 13 Oktober 2018, 01:32:34
So geht es natürlich auch und da merke ich wieder, dass ich zu kompliziert gedacht habe und noch viel lernen muss, was fhem angeht ;)
Eine Frage habe ich da noch. Wofür das userattr warnLevel? Reicht da nicht das userReading?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 06:54:49
Guten Morgen,

Das userattr ersetzt die Dummys, es sollte ja anscheinend flexibel Grenzwerte angegeben werden dürfen. Ist dem nicht so kann man das weg lassen und den Grenzwert direkt in der userReadings Bedingung mit einbauen.


Grüße
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Beta-User am 13 Oktober 2018, 09:00:53
Manche Sensortypen (z.B. DS18B20) erlauben auch einen alarm auf hw-Ebene.


Oder du machst die ganze Auswertung z.b. im notify mit Perl. Dazu könntest du mal nach Bennis globalem Tür- und Fenster-offen code suchen.


Ob aber diese [size=78%]Art der Alarmierung.Sinn macht, ist.eine andere Frage. So was sieht man auch gut in Diagrammen.[/size]
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 10:14:59
ZitatBrauchwasser
Hzg_Vorlauf
Hzg_Vorlauf

Alle drei bekommen ein userattr warnLevel. Dieses zusätzliche Attribut  wird dann in allen drei Devices gesetzt.
Danach wird in allen drei Devices ein userReading angelegt. Z.b. vorlaufTemp wo du dann high oder low rein schreiben lässt je nach deine Schwelle.
Und DAS triggerst Du dann mit einem Notify.

Guten Morgen. Ich versuche gerade die Lösung von CoolTux umzusetzen...

userattr warnLevel habe ich verstanden und wurde auf 52 gesetzt:

Internals:
   DEF        28-0516707019ff
   NAME       Brauchwasser
   NR         103
   NTFY_ORDER 50-Brauchwasser
   STATE      T: 53.937
   TYPE       GPIO4
   READINGS:
     2017-03-29 19:16:05   H               0
     2018-10-10 15:17:13   failures        0
     2017-03-29 19:16:05   humidity        0
     2018-10-13 10:11:44   state           T: 53.937
     2018-10-13 10:11:44   temperature     53.937
     2018-10-13 10:08:26   temperatureMA   53.447
   fhem:
     interfaces temperature
   helper:
     history:
       ARRAY(0x42ae128)
       ARRAY(0x423fbe0)
       ARRAY(0x444bf78)
       ARRAY(0x423eb20)
       ARRAY(0x42f3068)
       ARRAY(0x41eacb0)
       ARRAY(0x42f2f00)
       ARRAY(0x43aa280)
       ARRAY(0x41132f0)
       ARRAY(0x44c8500)
       ARRAY(0x43433c8)
       ARRAY(0x466e2d8)
       ARRAY(0x42e6510)
       ARRAY(0x3f3af48)
       ARRAY(0x424ece8)
       ARRAY(0x464ef30)
       ARRAY(0x44c6520)
       ARRAY(0x45da740)
       ARRAY(0x42c3450)
       ARRAY(0x42c43e8)
       ARRAY(0x423f150)
       ARRAY(0x4450b88)
       ARRAY(0x44d9d30)
       ARRAY(0x4505f38)
       ARRAY(0x44c5f50)
Attributes:
   DbLogInclude temperatur,temperatureMA
   event-min-interval 120
   group      1-wire
   model      DS18B20
   room       Central Heating,GPIO-Devices
   userReadings Brauchwasser
   userattr   warnLevel
   warnLevel  52


Jetzt stehe ich bei dem userReading aber auf dem Schlauch.

ZitatZ.b. vorlaufTemp wo du dann high oder low rein schreiben lässt je nach deine Schwelle.
Und DAS triggerst Du dann mit einem Notify.

Sorry, ich habe mich mit userReadings noch nicht beschäftigt... wie gehts weiter?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 10:48:30
Zitat von: rhoffm34 am 13 Oktober 2018, 10:14:59
Guten Morgen. Ich versuche gerade die Lösung von CoolTux umzusetzen...
Jetzt stehe ich bei dem userReading aber auf dem Schlauch.

Sorry, ich habe mich mit userReadings noch nicht beschäftigt... wie gehts weiter?

Dann wäre jetzt doch ein guter Zeitpunkt  ;D



attr Brauchwasser userReadings brauchwasserTemp:temperature:.* { if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) ) { 'low' } elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0)) { 'high'} }


Das ist nur ein Beispiel. Wie Du siehst hast Du nur eine Schwelle und wenn die Temp gerne mal schwankt um die Schwelle hast Du ständig low und high. Hier musst Du nun schauen. Überlege was man machen kann. Kleiner Tip, zwei Schwellen wären gut  ;)



Grüße
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Beta-User am 13 Oktober 2018, 11:10:17
Oder je einen THRESHOLD einrichten; da ist gleich eine Hysterese vorgesehen.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 11:46:27
Über threshold habe ich auch schon nachgedacht.

CoolTux, wenn ich Deine Lösung per Copy Paste kopiere kommt folgende Fehlermeldung:


Error evaluating Brauchwasser userReading WarningLowTemp: syntax error at (eval 616098) line 1, near ") <" syntax error at (eval 616098) line 1, near "}}"
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 12:19:39
gib mir bitte ein list vom device
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 12:25:54
Internals:
   DEF        28-0516707019ff
   NAME       Brauchwasser
   NR         103
   NTFY_ORDER 50-Brauchwasser
   STATE      T: 51.375
   TYPE       GPIO4
   READINGS:
     2017-03-29 19:16:05   H               0
     2018-10-13 11:03:20   WarningLowTemp  Error evaluating Brauchwasser userReading WarningLowTemp: syntax error at (eval 616098) line 1, near ") <"
syntax error at (eval 616098) line 1, near "}}"

     2018-10-10 15:17:13   failures        0
     2017-03-29 19:16:05   humidity        0
     2018-10-13 12:24:41   state           T: 51.375
     2018-10-13 12:24:41   temperature     51.375
     2018-10-13 10:08:26   temperatureMA   53.447
   fhem:
     interfaces temperature
   helper:
     history:
       ARRAY(0x42ae128)
       ARRAY(0x423fbe0)
       ARRAY(0x444bf78)
       ARRAY(0x423eb20)
       ARRAY(0x42f3068)
       ARRAY(0x41eacb0)
       ARRAY(0x42f2f00)
       ARRAY(0x43aa280)
       ARRAY(0x41132f0)
       ARRAY(0x44c8500)
       ARRAY(0x43433c8)
       ARRAY(0x466e2d8)
       ARRAY(0x42e6510)
       ARRAY(0x3f3af48)
       ARRAY(0x424ece8)
       ARRAY(0x464ef30)
       ARRAY(0x44c6520)
       ARRAY(0x45da740)
       ARRAY(0x42c3450)
       ARRAY(0x42c43e8)
       ARRAY(0x423f150)
       ARRAY(0x4450b88)
       ARRAY(0x44d9d30)
       ARRAY(0x4505f38)
       ARRAY(0x44c5f50)
Attributes:
   DbLogInclude temperatur,temperatureMA
   event-min-interval 120
   group      1-wire
   model      DS18B20
   room       Central Heating,GPIO-Devices
   userReadings attr Brauchwasser userReadings brauchwasserTemp:temperature:.*
{ if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) )
{ 'low' }
elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0))
{ 'high'} }
   userattr   warnLevel
   warnLevel  52
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 12:38:10
userReadings attr Brauchwasser userReadings brauchwasserTemp:temperature:.*
{ if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) )
{ 'low' }
elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0))
{ 'high'} }


Bitte lese wenigstens kurz über userReadings

So kann das nichts werden. Gehe über FHEMWEB in die Detailansicht des Devices und drücke auf das Attribut userReadings, sollte ja schon da stehen. Etwas weiter oben unter attr steht nun der Text den Du editieren kannst. Dort schreibst Du nur rein

brauchwasserTemp:temperature:.* { if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) ) { 'low' } elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0)) { 'high'} }

im list des Devices muss es dann so aussehen


userReadings brauchwasserTemp:temperature:.* { if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) ) { 'low' } elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0)) { 'high'} }
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 12:42:49
Internals:
   DEF        28-0516707019ff
   NAME       Brauchwasser
   NR         103
   NTFY_ORDER 50-Brauchwasser
   STATE      T: 51.062
   TYPE       GPIO4
   READINGS:
     2017-03-29 19:16:05   H               0
     2018-10-13 11:03:20   WarningLowTemp  Error evaluating Brauchwasser userReading WarningLowTemp: syntax error at (eval 616098) line 1, near ") <"
syntax error at (eval 616098) line 1, near "}}"

     2018-10-13 12:41:25   brauchwasserTemp low
     2018-10-10 15:17:13   failures        0
     2017-03-29 19:16:05   humidity        0
     2018-10-13 12:41:25   state           T: 51.062
     2018-10-13 12:41:25   temperature     51.062
     2018-10-13 10:08:26   temperatureMA   53.447
   fhem:
     interfaces temperature
   helper:
     history:
       ARRAY(0x42ae128)
       ARRAY(0x423fbe0)
       ARRAY(0x444bf78)
       ARRAY(0x423eb20)
       ARRAY(0x42f3068)
       ARRAY(0x41eacb0)
       ARRAY(0x42f2f00)
       ARRAY(0x43aa280)
       ARRAY(0x41132f0)
       ARRAY(0x44c8500)
       ARRAY(0x43433c8)
       ARRAY(0x466e2d8)
       ARRAY(0x42e6510)
       ARRAY(0x3f3af48)
       ARRAY(0x424ece8)
       ARRAY(0x464ef30)
       ARRAY(0x44c6520)
       ARRAY(0x45da740)
       ARRAY(0x42c3450)
       ARRAY(0x42c43e8)
       ARRAY(0x423f150)
       ARRAY(0x4450b88)
       ARRAY(0x44d9d30)
       ARRAY(0x4505f38)
       ARRAY(0x44c5f50)
Attributes:
   DbLogInclude temperatur,temperatureMA
   event-min-interval 120
   group      1-wire
   model      DS18B20
   room       Central Heating,GPIO-Devices
   userReadings brauchwasserTemp:temperature:.* { if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) ) { 'low' } elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0)) { 'high'} }
   userattr   warnLevel
   warnLevel  52


Das hatte ich vorher auch so gemacht. Ich habe mir das im Editor nur anders zurecht gelegt... dann habe ich eine bessere Übersicht. Jetzt ist es so wie Du geschrieben hast, aber der Fehler ist immer noch da.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 12:51:42
Was für ein Editor? Schreib bitte alles eins zu eins von Hand in das Attribut Fenster. Ich habe es bei mir im Testsystem eingefügt und mein Reading wird ohne Fehler geschrieben.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 12:56:26

Internals:
   CFGFN     
   NAME       Brauchwasser
   NR         202
   STATE      ???
   TYPE       dummy
   READINGS:
     2018-10-13 12:55:50   brauchwasserTemp low
     2018-10-13 12:55:50   temperature     50
Attributes:
   readingList temperature
   room       Test
   setList    temperature
   userReadings brauchwasserTemp:temperature:.* { if( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0) ) { 'low' } elsif( ReadingsVal($name,'temperature',0) < AttrVal($name,'warnLevel',0)) { 'high'} }
   userattr   warnLevel
   warnLevel  65
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 12:57:53
Ich glaube ich bin heute ein bisschen langsam...

Du meinst doch hier "A" (im Screenshot)

Und "B" ist der Editor den ich meine...
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 13:00:05
ja, ist doch super. geht doch. weiß gar nicht was du hast.

Schau mal gaaaanz genau hin wie dein userReading heist und was hinter diesem Reading in der Readingliste also da wo alle Readings und ihre Werte stehen drin steht als Wert. Dann erkennst Du Dein "Problem"
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 13:13:41
Das Reading heißt brauchwasserTemp und der Wert ist: Low ...

aber auch wenn ich gaaaaanz genau hinschaue, sehe ich nix
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 13:14:45
Genau da steht ein korrekter Wert drin. Aber wo hast Du Deinen Fehler gesehen. Also den den Du gemeldet hast?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 13:28:37
Ich glaube ich habs...

Der Fehler den ich gesehen habe bezog sich auf ein anderes Reading.... ==> Richtig?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 13:37:38
Richtig. Das war ein altes Reading.
Das kannst Du löschen

deletereading DEVICENAME READINGNAME


Und schon ne Idee wegen min und max Deiner Schwelle?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 13:41:31
ja sicher .... jetzt läuft´s.

Hab jetzt warningHi und warningLow und die entsprechend in das userReading eingesetzt. Fluppt

Wie geht´s weiter? Kann ich im userReading direkt mit telegram eine Nachricht senden?
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 13:47:51
Nein das machen wir so nicht.

Jetzt passt Du Dein notify an.



Brauchwasser:warnLevel:.(high|low) {  fhem("set teleBot message \@R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature]") if( $EVTPART1 eq 'low' );
}


Erstmal zum spielen und vestehen. Muss kurz weg. Melde mich später noch mal.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 14:13:50
Alles klar....

Ich hab mal rumprobiert und es klappt.
Brauchwasser:brauchwasserTemp:.(high|low) { fhem("set teleBot message \@R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature]") if( $EVTPART1 eq 'low' );}

Allerdings wenn ich unter oder über dem Grenzwert liege, bekomme ich bei jeder Temp änderung eine Nachricht...
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 14:15:22
Schau Dir die Attribute event-on* an.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: rhoffm34 am 13 Oktober 2018, 14:52:57
Probiere ich gerade aus... event-on-change-reading im device Brauchwasser.

Kann ich weitere Abfragen im notify starten? etwa so...:

Brauchwasser:TempWarning:.(high|low) { fhem("set teleBot message \@R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature]") if( $EVTPART1 eq 'low' );}
VorlaufTemp:TempWarning:.(high|low) { fhem("set teleBot message \@R_H BrauchwasserTemp zu niedrig: [Brauchwasser:temperature]") if( $EVTPART1 eq 'low' );}
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 14:58:02
Jein. Du kannst mehr regex verwenden aber nicht so. Und du musst das dann das Device also Variable NAME bei der Bedingung mit einbauen.
Ich schreibe dir das gerne nachher kurz.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: CoolTux am 13 Oktober 2018, 17:12:24

(Brauchwasser|VorlaufTemp):TempWarning:.(high|low) { fhem("set teleBot message \@R_H $NAME zu niedrig: [$NAME:temperature]") if( $EVTPART1 eq 'low' );}


Versuch mal so. Habe mich da an Dein letztes Beispiel gehalten. Schau bitte ob es so in Deine Umgebung passt und wenn nicht pass es an.
Titel: Antw:Telegram & mehrere Bedingungen
Beitrag von: Brice am 13 Oktober 2018, 19:44:39
Als Alternative, läuft bei mir seit mehreren Jahren völlig problemlos per notify aus dem Wiki:NewMailtime nach Zeitablauf erneut senden (https://wiki.fhem.de/wiki/E-Mail_per_notify_nach_Zeitablauf_erneut_senden). Dies nutze ich für Meldungen per PushNachricht, die ich nicht permanent habe möchte, also

Dazu die notifys gem. der Beschreibung aus dem Wiki erstellen mit $main::NewMailtime<_Referenz> = time + <gewünschte Wiederholung>

Beispiel:
Temp_Gefrierschrank:temperature:.* {
if ((ReadingsVal("Temp_Gefrierschrank","temperature",0) >= -13.0) && (time > $main::NewMailtime_Gefrierschrank))
{
fhem ("set PushNachricht_iPhone message  'Temperatur-Alarm Gefrierschrank' 'ACHTUNG - die Gefrierschranktemperatur ist auf $EVTPART1 Grad gestiegen!");
fhem ("set PushBullet_Honor message 'Temperatur-Alarm Gefrierschrank' 'ACHTUNG - die Gefrierschranktemperatur ist auf $EVTPART1 Grad gestiegen!");
$main::NewMailtime_Gefrierschrank = time + 10800;
}
}

und mehrere subs in der 99_myUtils.pm, etwa

sub
myUtils_Initialize_Kuehlschrank($$)
{
my ($hash) = @_;
my $NewMailtime_Kuehlschrank = time;
}

sub
myUtils_Initialize_Gefrierschrank($$)
{
my ($hash) = @_;
my $NewMailtime_Gefrierschrank = time;

}sub
myUtils_Initialize_TempAussen($$)
{
my ($hash) = @_;
my $NewMailtime_TempAussen = time;
}


Ist zwar oldschool, aber vielleicht hilft es dir.

edit: Link korrigiert :)