FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Master_Nick am 12 Februar 2017, 19:43:59

Titel: [gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Master_Nick am 12 Februar 2017, 19:43:59
Nabend,

ich würde gerne im Falle von bestimmten Ereignissen umgehend benachrichtigt werde und dachte an sowas:

set GoogleCloudMessages send Achtung|Temperaturalarm|Temperatur im Wohnzimmer (ReadingsVal("Wohnzimmer_Sensor_5", "humidity", "90")

Das funktioniert aber mal gar nicht ;-) Wie muss ich die Variable dort eingeben, dass das Reading ausgelesen wird?
Manchmal erschrecke ich vor mir selbst, dass derart einfache Dinge nicht in meinem Kopf sind...
Titel: Antw:GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: igami am 12 Februar 2017, 19:47:48
So wie es in der commandref im Abschnitt set steht ;)
Titel: Antw:GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Thorsten Pferdekaemper am 12 Februar 2017, 20:37:09
Hi,
könntest Du mal ein funktionierendes "set" ohne Variable schicken und dann beschreiben, was Du genau willst?
Gruß,
   Thorsten
Titel: Antw:GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Master_Nick am 12 Februar 2017, 20:41:00
Nabend ;-)

Also in meinem Commandref ist gcmsend nicht klickbar und es gibt keinen Eintrag dazu außer den im Inhatlsverzeichnis und online auch nicht (nicht mal im Inhaltsverzeichnis https://fhem.de/commandref.html ).

Ein funktionierendes set wäre:
set GoogleCloudMessages send Achtung|Temperaturalarm|Temperatur im Wohnzimmer

Ich würde nun noch gern den aktuellen Wert für die Temperatur mit in der Textnachricht angeben lassen. Daher die Idee mit: (ReadingsVal("Wohnzimmer_Sensor_5", "humidity", "90")

Es soll also am Ende eine Nachricht mit dem Betreff Temperaturalarm und Inhalt Temperatur im Wohnzimmer 67 °C. ankommen. Die Bedingungen dafür kann ich selbst bauen - nur die Nachricht mit dem ausgelesenen Reading will nicht.
Titel: Antw:GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Thorsten Pferdekaemper am 12 Februar 2017, 21:10:30
Hi,
da hat wohl der Modulautor geschlampt und keine Doku angehängt.
Ein bisschen komisch ist, dass bei Dir die Temperatur im Reading humidity steht, aber das ist ja erstmal ein anderes Thema.

{ fhem("set GoogleCloudMessages send Achtung|Temperaturalarm|Temperatur im Wohnzimmer ". ReadingsVal("Wohnzimmer_Sensor_5", "humidity", "90")) }

D.h. Du bastelst Dir das Kommando auf der Perl-Ebene zusammen. Möglicherweise geht das auch inzwischen einfacher, da man jetzt wohl Readings auch so auslesen kann: [Wohnzimmer_Sensor_5:humidity]. Allerdings habe ich dazu auch keine Doku gefunden und weiß auch nicht, wie man das allgemein in einen Befehl einbaut.
Gruß,
   Thorsten
Titel: Antw:GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Master_Nick am 12 Februar 2017, 21:13:22
Ehhh sie steht nicht im reading humidity  ::) 8) 8)

Das war 1000 mal lesen und nur sehen was ich wollte..... es ist natürlich das reading temperature..

Genau ich mache das großteils auf Perlscript Ebene.

Danke dir ;-) - funktioniert perfekt: { fhem("set GoogleCloudMessages send Achtung|Temperaturalarm|Temperatur im Wohnzimmer ". ReadingsVal("Wohnzimmer_Sensor_5", "temperature", "90")) }
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: igami am 12 Februar 2017, 22:02:07
Zitat von: Thorsten Pferdekaemper am 12 Februar 2017, 21:10:30
Möglicherweise geht das auch inzwischen einfacher, da man jetzt wohl Readings auch so auslesen kann: [Wohnzimmer_Sensor_5:humidity]. Allerdings habe ich dazu auch keine Doku gefunden und weiß auch nicht, wie man das allgemein in einen Befehl einbaut.
ist hier beschrieben https://fhem.de/commandref.html#set

From featurelevel 5.7 on the set and setreading command replaces:
    [device:reading] with the corresponding reading of device, if both device and reading exists.
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Master_Nick am 12 Februar 2017, 22:25:16
Vielen Dank ;-)


Kann ich eigentlich in einem Notify Geräte über Regexp abfragen? Stelle mir gerade vor, mittels einem Notify alle meine 6 Sensoren abzufrüstücken und das in der Nachricht der Raum und die Temperatur auftauchen. Dafür müsste man aber abhängig vom Gerät den Raum auslesen und das Reading. Ich muss da echt nochmal an meinem Perl arbeiten ^^
Oder mal ein Verzeichnis der Befehle finden - brauche ja eine Variable die nun sagt ich bin das Gerät, dass den Wert überschritten hat und dann kann ich ja Raum und Temperatur einfach auslesen.
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Thorsten Pferdekaemper am 12 Februar 2017, 23:14:45
Zitat von: igami am 12 Februar 2017, 22:02:07
ist hier beschrieben https://fhem.de/commandref.html#set
Ah, da steht das... Also dann müsste auch das gehen:


set GoogleCloudMessages send Achtung|Temperaturalarm|Temperatur im Wohnzimmer [Wohnzimmer_Sensor_5:humidity]


Zitat von: Master_Nick am 12 Februar 2017, 22:25:16
Kann ich eigentlich in einem Notify Geräte über Regexp abfragen?
Ja, das geht.

Zitat
Oder mal ein Verzeichnis der Befehle finden
Commandref?

Gruß,
   Thorsten
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Master_Nick am 13 Februar 2017, 10:29:40
Ja das Commandref ist das Verzeichnis der Möglichkeiten - mir fehlt es aber eher an der Sprache drum herum ^^ und das Syntax set..

Bin ein wenig eingerostet..... Perlscript Beispiele oder so ;-) Muss ich mir mal was suchen. Vor allem eben soch Sachen wie schon vorhandene Variablen der Sprache selbst.
An der Stelle wäre es ja nun eine Variable die das Gerät enthalten müsste, dass den Temperatur Wert überschritten hat.

Aber ich denke da kann ich auch mit einem "for i" arbeiten und einfach eine Variable füllen lassen indem eine Bedingung erfüllt oder eben nicht erfüllt wird.
Ich denke ich muss da konzeptionell nochmal überlegen was ich machen will und dann schauen wie ich es umsetze.
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Thorsten Pferdekaemper am 13 Februar 2017, 10:52:30
Zitat von: Master_Nick am 13 Februar 2017, 10:29:40
Ja das Commandref ist das Verzeichnis der Möglichkeiten - mir fehlt es aber eher an der Sprache drum herum ^^ und das Syntax set..
Ist schon beschrieben: https://fhem.de/commandref.html#intro
Es gibt da halt ansonsten nicht viel. Alles andere ist entweder modulspezifisch oder sowieso Perl.

ZitatBin ein wenig eingerostet..... Perlscript Beispiele oder so ;-) Muss ich mir mal was suchen. Vor allem eben soch Sachen wie schon vorhandene Variablen der Sprache selbst.
An der Stelle wäre es ja nun eine Variable die das Gerät enthalten müsste, dass den Temperatur Wert überschritten hat.
Lies halt mal wirklich die commandref. Das steht bei notify. Wahrscheinlich $NAME.

Zitat
Ich denke ich muss da konzeptionell nochmal überlegen was ich machen will und dann schauen wie ich es umsetze.
Ja, wenn man weiß, was man will, dann wird es sehr viel wahrscheinlicher, dass man das auch bekommt. ...zumindest weiß man dann, ob man bekommen hat, was man wollte.
SCNR

Gruß,
   Thorsten
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Master_Nick am 13 Februar 2017, 10:54:14
Hehe der Punkt ist vor allem: Aus meiner Sicht ist es die letzte Lösung etwas nur zu bekommen - lernen tut man es nur richtig gut indem man es versteht und am besten sich selbst erarbeitet hat.

Danke für die Tipps ich muss mal ein wenig Zeit rein investieren!
Titel: Antw:[gelöst] GoogleCloudMessaging Nachricht senden mit Variable
Beitrag von: Thorsten Pferdekaemper am 13 Februar 2017, 11:34:42
Zitat von: Master_Nick am 13 Februar 2017, 10:54:14
Hehe der Punkt ist vor allem: Aus meiner Sicht ist es die letzte Lösung etwas nur zu bekommen
Ich habe "bekommen" als Oberbegriff für "(von jemandem) bekommen" und "erreichen" gemeint. Auch um Ziele (durch eigene Arbeit) zu erreichen ist es sehr zuträglich, wenn man diese Ziele kennt.
Gruß,
   Thorsten