ReadingsVal direkt per TelegramBot verschicken?

Begonnen von Grml, 31 August 2016, 18:52:16

Vorheriges Thema - Nächstes Thema

Grml

Hallo zusammen,
ich google jetzt seit einigen Stunden, aber scheinbar nach dem Falschen. Bestimmt habe ich als FHEM Einsteiger auch falsche gedankliche Verknüpfungen erstellt...
Das Einsteiger-PDF hilft mir da momentan nicht weiter. Aber vielleicht deshalb, weil ich evtl. falsch denke?

Ich versuche eigentlich nur ganz simpel den Temperaturwert eines Homematic-Außensensors direkt per TelegramBot zu verschicken.
Dazu gibt es mein Device TempHumSensTerrasse01 bei dem auch alle Werte sauber in der GUI ankommen.

Wenn ich nun in der Kommandozeile ein "set MyTelegramBot message ReadingsVal("TempHumSensTerrasse01","temperature","") abschicke bekomme ich nicht den erhofften Wert, sondern den Klartext. Wie müsste ich denn hier nach "message" weitermachen, um das sauber zu verknüpfen? Und wie müsste das aussehen, wenn ich noch einen weiteren Wert mitschicken möchte, bspw. die Uhrzeit der letzten Messung?

Wenn das mal geht würde ich mir daraus gerne ein at bauen, dass mir jeden Morgen die aktuelle Temperatur in eine Telegram-Gruppe schickt.

Würde mich freuen, wenn mir da jemand auf die Sprünge hilft.

justme1968

set MyTelegramBot message [TempHumSensTerrasse01:temperature]

oder

set MyTelegramBot message {( "Temperatur: ". ReadingsVal("TempHumSensTerrasse01","temperature","") )}

oder

{fhem( "set MyTelegramBot message Temperatur: ". ReadingsVal("TempHumSensTerrasse01","temperature","") }

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

igami

Dafür gibt es zwei Möglichkeiten (siehe commandref: http://fhem.de/commandref#set):

set MyTelegramBot message {(ReadingsVal("TempHumSensTerrasse01","temperature",""))}


set MyTelegramBot message [TempHumSensTerrasse01:temperature]


mist, zu langsam :D
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Grml


borsTiHD

#4
Hallo zusammen,

ich weiß der Thread ist schon etwas älter, aber ich habe genau die gleiche Frage, mit nur einem zusätzlichen Problem.
Wie sieht die Syntax es vor wenn ich zwei, oder sogar noch mehr "Readings" in einer Message verschicken möchte?
Da ich ein Notify mit mehreren Zeilen habe, bevorzuge ich folgende Schreibweise:
{fhem( "set MyTelegramBot message @xxx 🎶Musik gestartet:". ReadingsVal("Spotify","track_artist_name",""}

Dahinter hätte ich gerne vom Modul den "track_name" ausgelesen.
Die Commandref hab ich mir schon durchgelesen, aber finde nicht wirklich was mir hilft.  :-\

Vielen Dank schon mal.  :)

igami


set MyTelegramBot message [Spotify:track_artist_name] [Spotify:track_name]
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

borsTiHD

Danke dir für die schnelle Antwort.  ;D
Als einzelner abgesetzter Befehl klappt das sehr gut, aber wenn ich versuche das in mein DEF meines Notifys einzutragen gibt er mir einen Syntax Error:
syntax error at (eval 4726) line 1, at EOF

Folgenden Notify hab ich definiert:
define notify_Spotify_play_arrival notify geofancy:currLoc_xxx:.home {\
{fhem("set Spotify playContextByURI spotify:user:xxx:playlist:xxx 1 TX-NR646")}\
{fhem("set Onkyo_AVR on")}\
{fhem("set Onkyo_AVR volume 6")}\
{fhem("sleep 10")}\
{fhem("set Spotify repeat all")}\
{fhem("set Spotify shuffle on")}\
{fhem("set Spotify skipToNext")}\
{fhem("sleep 2")}\
{fhem("set MyTelegramBot message @xxx [Spotify:track_artist_name] [Spotify:track_name]"}\
}

igami

Zitat von: borsTiHD am 17 Dezember 2017, 10:19:57
Danke dir für die schnelle Antwort.  ;D
Als einzelner abgesetzter Befehl klappt das sehr gut, aber wenn ich versuche das in mein DEF meines Notifys einzutragen gibt er mir einen Syntax Error:
syntax error at (eval 4726) line 1, at EOF

Folgenden Notify hab ich definiert:
define notify_Spotify_play_arrival notify geofancy:currLoc_xxx:.home {\
{fhem("set Spotify playContextByURI spotify:user:xxx:playlist:xxx 1 TX-NR646")}\
{fhem("set Onkyo_AVR on")}\
{fhem("set Onkyo_AVR volume 6")}\
{fhem("sleep 10")}\
{fhem("set Spotify repeat all")}\
{fhem("set Spotify shuffle on")}\
{fhem("set Spotify skipToNext")}\
{fhem("sleep 2")}\
{fhem("set MyTelegramBot message @xxx [Spotify:track_artist_name] [Spotify:track_name]"}\
}

Wo hast du das denn her? In Perl {} werden einzelne Befehle durch ; getrennt. Das fehlt bei dir komplett.
Warum du die fhem aufrufe nochmal in {} gekapselt hast verstehe ich auch nicht. Ich bin mir nicht mal sicher ob das überhaupt zulässig ist.
Weiterhin musst noch das @ escapen, wenn du in perl unterwegs bist und es sich nicht um ein array handelt

Sowie ich das sehe kannst du hier doch aber auch komplett auf perl verzichten und auf der fhem Ebene bleiben.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

borsTiHD

#8
Echt?  ??? Ok verdammt...  :-[
Das hab ich mir bisher selsbt so zusammengebastelt als ich mal auf der Suche war nach "fhem notify mehrere set befehle".
Bis auf den letzten Teil mit der Telegramm Nachricht funktioniert es allerdings.  ;D

Könntest du mir bitte erklären wie ich das auf fhem Ebene in einem Notify machen kann?
Weil bisher hab ich alle Notifys, die mehr wie ein Set Befehl ausführen sollen so gemacht.  :-\

€dit:
Achja... ich weiß nicht ob es andere Wege gibt, aber ich editier die Notifys über das DEF Feld im Webinterface.
Gibt es einfachere oder andere Wege?

igami

Zitat von: borsTiHD am 17 Dezember 2017, 10:31:21
Echt?  ??? Ok verdammt...  :-[
Das hab ich mir bisher selsbt so zusammengebastelt als ich mal auf der Suche war nach "fhem notify mehrere set befehle".
Bis auf den letzten Teil mit der Telegramm Nachricht funktioniert es allerdings.  ;D

Könntest du mir bitte erklären wie ich das auf fhem Ebene in einem Notify machen kann?
Weil bisher hab ich alle Notifys, die mehr wie ein Set Befehl ausführen sollen so gemacht.  :-\
steht in der commandref zu notify

Zitat von: borsTiHD am 17 Dezember 2017, 10:31:21
€dit:
Achja... ich weiß nicht ob es andere Wege noch gibt, aber ich editier die Notifys über das DEF Feld im Webinterface.
Gibt es da auch noch andere Wege?
ja, gibt es, sind aber für Anfänger nicht empfohlen
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

borsTiHD

Zitat von: igami am 17 Dezember 2017, 11:06:07
steht in der commandref zu notify

HA!!! ES FUNKTIONIERT!!! xDDD
Ich bin schon vorher, als ich das erste mal Probleme damit hatte, auf die Syntax define b3lampV3 notify btn3 set lamp1 $EVENT;;set lamp2 $EVENT gestoßen. Aber aus irgendeinem Grund, hab ich es wohl damals (vor paar Tagen) falsch angewandt und es funktionierte nicht, weshalb ich auch nach einer anderen Möglichkeit gesucht hatte und bin dann auf die obige mit der Perl Syntax gestoßen.
Dadurch war das ganze zunächst abgehakt für mich.

Weil du mich erneut darauf hingedeutet hast, hab ich es einfach nochmal probiert und es klappt.  ;D
Mein Notify zum Anlegen hab ich jetzt so aufgebaut:
define notify_Spotify_play_arrival2 notify geofancy:currLoc_xxx:.home set Spotify playContextByURI spotify:user:xxx:playlist:xxx 1 TX-NR646;; set Onkyo_AVR on;; set Onkyo_AVR volume 6;; sleep 10;; set Onkyo_AVR on;; set Onkyo_AVR volume 6;; set Spotify repeat all;; set Spotify shuffle on;; set Spotify skipToNext;; sleep 2;; set Telegramm_Bot message @xxx[Spotify:track_artist_name] [Spotify:track_name] *kritische Sachen antürlich ge'x'ed

DANKE DANKE DANKE!!!  :-*

Einzige was mir dran nicht gefällt ist, das ich alles in einer Zeile hab.
Ich schau mal das ich das mit den Zeilenumbrüchen noch hinbekomme (ja ich weiß das es wohl mit \ irgendwie geht.  :)

igami

Zitat von: borsTiHD am 17 Dezember 2017, 11:21:36
Einzige was mir dran nicht gefällt ist, das ich alles in einer Zeile hab.
Ich schau mal das ich das mit den Zeilenumbrüchen noch hinbekomme (ja ich weiß das es wohl mit \ irgendwie geht.  :)
Wenn du es in der DEF bearbeitest einfach folgendes eingeben:

geofancy:currLoc_xxx:.home
set Spotify playContextByURI spotify:user:xxx:playlist:xxx 1 TX-NR646;
set Onkyo_AVR on;
set Onkyo_AVR volume 6;
sleep 10;
set Onkyo_AVR on;
set Onkyo_AVR volume 6;
set Spotify repeat all;
set Spotify shuffle on;
set Spotify skipToNext;
sleep 2;
set Telegramm_Bot message @xxx[Spotify:track_artist_name] [Spotify:track_name];

Die ; und Zeilenumbrüche werden dann durch FHEM selbst maskiert. Wenn die interessiert wie das aussieht einfach mal auf Raw definition klicken.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

borsTiHD

Oh das wäre ja perfekt. Ich danke dir nochmal.  ;D
Dann hab ich ja egt genau das was ich gerne haben möchte.
Ich definiere ein neues Notify und bearbeite das anschließend über die Weboberfläche mit DEF.   ;)
Frei nach dem Motto:
ZitatGib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.


FHEM ist schon genial, hab es jetzt zwar erst paar Tage, aber bin richtig begeistert, vorallem macht es spaß zu basteln. :D
Allerdings ist der Einstieg schon etwas Hürden belastet. Vorallem wenn man aus jeder Ecke mit unterschiedlichen Vorgehensweisen konfrontiert wird.
Im Internet gibt es tausend tutorials und damit auch tausend unterschiedliche Wege (gefühlt).  :P