FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: C0mmanda am 29 Juli 2015, 22:14:41

Titel: Status von Dummy-Device per Pushover senden
Beitrag von: C0mmanda am 29 Juli 2015, 22:14:41
Hallo,

eine vermeintlich einfache Aufgabe beschäftigt mich jetzt schon seit Stunden und ich finde einfach keine Lösung...

Im Zuge meiner Rolladensteuerung habe ich mich mit Sonnenauf- und untergang beschäftigt.
Jetzt dachte ich mir es wäre ganz nett mir diese Werte jeden morgen per Pushover zu schicken, sobald meine Temperatur-Sensoren angebracht und eingerichtet sind dann auch mit aktueller Temperatur.

Aber zunächst soll es nur der Sonnenauf- und untergang sein.

Ich habe die Werte folgendermaßen ins fhem gebracht:


define Sonnenaufgang dummy
attr Sonnenaufgang group Wetter

define Sonnenuntergang dummy
attr Sonnenuntergang group Wetter

define Sun_RiseSet_Timer at *00:01:00 { my $s = sunrise();; fhem("set Sonnenaufgang $s");; $s = sunset();; fhem("set Sonnenuntergang $s");; }


Funktioniert auch wunderbar und wird mir angezeigt wie es soll.
Nur, wie baue ich daraus jetzt eine Pushover-Nachricht?

define SonnenaufabPushover at *21:54:00 {

und weiter?

Wäre super wenn mir jemand helfen könnte...
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Hollo am 30 Juli 2015, 09:28:44
Ich habe kein Pushover, aber irgendwie verstehe ich den Sinn noch nicht...

- Wenn Du das abends um 21:54 Uhr machst, hast Du noch keine Werte
- Wenn Du das morgens machst, siehst Du neben dem Blick auf's Handy auch so, ob es schon hell ist oder nicht  ;)

Aber zum Thema...
Du brauchst halt eine Pushover-Funktion, die Du dann per at morgens aufrufst, und die Dir dann die entsprechenden Werte übermittelt.
Sinngemäß:
define SonnenaufabPushover at *07:00:00 {PushInfo('Heute wird es um $Sonnenaufgang hell und um $Sonnenuntergang wieder dunkel')}
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: C0mmanda am 30 Juli 2015, 11:26:16
Erstmal danke für die Rückmeldung.
Die Uhrzeit 21:54 ist natürlich zu Testzwecken eingegeben um die Push-Notification zu testen.
Die Push selbst hat nur den Sinn mich zu informieren da fhem die Werte halt bereithält.
Dies soll, wenn es dann funktioniert, morgens um 7uhr geschehen. (Also später dann at *07:00 { )

Wie der Sonnenauf- und Untergang in fhem definiert ist steht ja bereits oben.
Der Syntax für Pushover ist: set <device> Pushover msg 'Titel' 'Nachricht'.

Mein Problem ist jetzt nur fhem dazu zu bringen mir im Nachrichtentext die Werte der Dummies Sonnenaufgang und Sonnenuntergang auszugeben.
Daran verzweifle ich im moment und kriege es einfach nicht hin. Stehe da momentan völlig auf dem Schlauch und würde Hilfe brauchen...
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: CoolTux am 30 Juli 2015, 11:35:29
define SonnenaufabPushover at *07:00:00 {PushInfo('Heute wird es um $Sonnenaufgang hell und um $Sonnenuntergang wieder dunkel')}

99_myUtils_PushInfo

sub PushInfo
{
      my $Sonnenaufgang=Value(Sonnenaufgang)
      my $Sonnenuntergang=Value(Sonnenuntergang)
      return ($Sonnenaufgang,$Sonnenuntergang)
}

Dies dient nur der Anschauung. Stichwort 99_myUtils. Der Code stimmt imho so nicht ganz. Also bitte etwas Recherge.


Gruß
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Alveole am 16 Oktober 2015, 22:46:01
Hallo!
genau dieses Thema intessiert mich auch brennend!
Ich würde mir auch gern Werte (bei mir Druckwerte)  gern per notify gesteuert über Pushover zukommen lassen.

Gibt's hier schon weitere Fortschritte und Erkenntnisse?
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: CoolTux am 17 Oktober 2015, 06:49:18
Das geht!
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Alveole am 17 Oktober 2015, 10:02:28
Nur wie?
Eine Datei wie 99_xxxx anzulegen oder gar zu ändern Trau ich mir noch nicht wirklich. Dafür hab ich zu wenig Programmierkenntnisse darin.
@CoolTux: du hattest eine paar codezeilen vorgeschlagen. Klar muss ich die an meinen Drucksensor anpassen, aber Du schriebst auch, das es nur zur Anschauung ist.
Was muss denn da anderes?

Danke!
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: CoolTux am 17 Oktober 2015, 12:25:04
Schreibe mal bitte genau Deine Anforderungen.
Du möchtest also eine Pushovernachricht schicken und darin soll ein Wert von einem Device stehen. Richtig?
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Alveole am 17 Oktober 2015, 20:32:43
Hallo!
Ja!
Ich möchte einen Wert (per KNX ausgelesen - DruckHeizung) mir per Pushover senden.
Sollte der Druck unter eine Grenze fallen, bekomme ich jetzt schon eine Nachricht (per notify). Nun hätte ich gern noch den Wert mit übermittelt.
aktuell so
set pushmsg msg 'Heizung' 'Druck zu niedrig'

Danke!
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: CoolTux am 17 Oktober 2015, 21:06:42
Dann musst Du Dein Notify mit Perlcode erweitern. Du musst das Reading wo Du den Wert von haben möchtest auslesen.


define notifyname notify Druckleitung:pressure.* {
               $pvalue = ReadingsVal("Druckleitung "," pressure","34");

               fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig, der Druck beträgt $pvalue'";

}


Der Code soll nicht eins zu eins übernommen werden. Bitte informiere Dich was hier genau passiert.



Gruß
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Alveole am 18 Oktober 2015, 17:33:10
Danke für den Gedankenanstoß. Aber so richtig wills nicht funktionieren.
Fehler: unter anderem "unknown command if"

define alarm_heiz_druck notify Heiz_druck {$pvalue = ReadingsVal("Heiz_druck","state","");  if (ReadingsVal("Heiz_druck","state","") < 1) {fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig. Druck: $pvalue'"}}


da die if Bedingung an sonsten einzeln
define alarm_heiz_druck notify Heiz_druck {if (ReadingsVal("Heiz_druck","state","") < 1) {fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig'"}}
funktioniert, muss es wohl an der Kombination liegen.
oder an der Kombi Perl/fhem Kommando.

Danke!

PS: ich muss immer den gesamten String in einen Zeile schreiben. So aufgeteilt auf mehrere Zeile der Übersicht halber nimmt er nicht. ?
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: CoolTux am 18 Oktober 2015, 17:50:06
Bitte ganz dringend lesen!!!
http://www.fhemwiki.de/wiki/Notify#Regexp_wizard_-_FHEMWEB-unterst.C3.BCtzte_Anlage_eines_notify (http://www.fhemwiki.de/wiki/Notify#Regexp_wizard_-_FHEMWEB-unterst.C3.BCtzte_Anlage_eines_notify)

Mache zu erst ein define Deines Notifys in vereinfachter Form


define alarm_heiz_druck notify Heiz_druck test


Dann gehst Du auf das Internals DEF und kannst nun hier in Ruhe editieren, und zwar auch so das es übersichtlich ist in mehreren Zeilen


define alarm_heiz_druck notify Heiz_druck:.* {
                                                             $pvalue = ReadingsVal("Heiz_druck","state","");
                                                             if (ReadingsVal("Heiz_druck","state","") < 1) {
                                                                    fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig. Druck: $pvalue'";
                                                             }
                                        }




Grüße
Leon
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Alveole am 18 Oktober 2015, 19:30:33
so,
den Link kante ich wirlich noch nicht! Asche auf mein Haupt!

Nun kommt zwar kein Fehler mehr bei start, dafür beim auslösen des notify
Zitatalarm_heiz_druck return value: Global symbol "$pvalue" requires explicit package name

google ergab, das ich das noch in 99_??? definieren muss? hä?
das ist doch eine Variable, die ich nur lokal verwenden will und nicht übergeben
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Alveole am 18 Oktober 2015, 19:38:25
ich habs!

define alarm_heiz_druck notify Heiz_druck {\
  my $heizdruck = ReadingsVal("Heiz_druck","state","");;\
  if ($heizdruck < 1.1)\
   {fhem "set pushmsg msg 'Heizung' 'Druck zu niedrig. Druck: $heizdruck bar'";;}\
}


Danke für die Hilfe und Gedankeanstöße!!!
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: CoolTux am 18 Oktober 2015, 20:28:56
Bitte gern geschehen. Das mit 99_myUtils ist so eine Sache. Es heißt alles was länger wie 1 Zeile Perlcode ist sollte für ein Notify ausgelagert werden. Das macht man in einer eigenen Moduldatei. Ist ne Politische Entscheidung. Musst Du selber wissen.


Grüße
Titel: Antw:Status von Dummy-Device per Pushover senden
Beitrag von: Loredo am 22 Oktober 2015, 11:04:21
Schaut euch alternativ zu Notify mal DOIF an. Dort kann man ohne Perl-Code auf Readings in dieser Form zugreifen:


[Geraetename:Readingname]


Das kann man dann direkt im Nachrichtentext mit eingeben und DOIF ersetzt es bevor der FHEM Befehl aufgerufen wird.