Hallo zusammen,
nachdem ich in einem anderen Post den Tipp bekommen habe das es mit Telegram möglich ist eine Nachricht auf dem Handy zu erhalten wenn der Fensterkontakt/Türkontakt anspricht wollte ich hier das Thema nochmal aufgreifen. Ich habe Telegram zum laufen gebracht und meine Funksteckdosen lassen sich jetzt auch super damit bedienen. Nun zu meiner Frage, wie setze ich es denn um das Telegram den Status der Kontakte ans Handy sendet wenn diese sich verändern? Es sind MAX Kontakte die über den CUBE angeschlossen sind.
Vielen Dank schon mal.
lg oneill
Moin,
z.B. mit einem DOIF
([Fensterkontakt:state] eq "open")(set telegramdevice msg text)DOELSE
Grüße
Achim
Oder mit einem notify
define notifyFensterOffenTelegram notify Fensterkontakt.*.open set telegramdevice msg Fenster $NAME offen
Das mit dem Notify klingt interessant.
Den Define setze ich einfach in die Kommandozeile ein und für $Name den Namen des Kontaktes?
Das sollte eins zu eins so klappen. $NAME beinhaltet den Namen des Devices welches das open gemeldet hat.
Hi,
deine Fensterkontakte sollten allerdings auch Fensterkontakt heißen ; -)
Gesendet von meinem SM-P605 mit Tapatalk
Oh ja sorry vergesse immer das Wesentliche bei Einsteigern.
Fensterkontakt.*
Trigger auf alles was mit Fensterkontakt beginnt.
Also der Kontakt heißt Kontakt_Fenster und hat die ID MAX_xxxxx und das ganze ist im Raum Arbeitszimmer (musste man beim MaxCube so angeben.
Zitatdefine notifyFensterOffenTelegram notify Kontakt_Fenster.*.open set telegramdevice msg Fenster $NAME offen
So müsste das dann aussehen oder?!
lg oneill
Wenn der NAME wirklich nur Kontakt_Fenster ist dann sollte ein
define notifyFensterOffenTelegram notify Kontakt_Fenster.open set telegramdevice msg Fenster $NAME offen
reichen.
Verstehe nur nicht wieso Du den nur Kontakt_Fenster nennst. Wie nennst Du denn die anderen. Hätte wenigstens noch sowas wie ein Raumname im NAME erwartet.
Achso, ja ich habe das über die Raumnamen definiert gehabt.. Habe den Namen jetzt in Fensterkontakt_Arbeitszimmer umbenannt.. Leider funktioniert das so nicht. Ich bekomme keine Nachricht
Dann mach mal folgendes.
Oben in das FHEMWEB Eingabefeld gibst du mal
list Fensterkontakt _Arbeitszimmer
ein. Und postest hier den Output.
Ausserdem machst Du mal den Eventmonitor auf. Zu finden links unten. Drückst auf das .* und gibst vor dem .* ein
Fensterkontakt _Areitszimmer
dann öffnest Du das Fenster und postest hier die Ausgabe vom Eventmonitor.
Bei list Fensterkontakt _Arbeitszimmer passiert nichts. Wenn ich dies oben eingebe.
Zitat2016.11.08 05:25:33 3 : Opening MAXCube device 192.168.x.xxx:6xxx0
2016.11.08 05:25:33 3 : MAXCube device opened
Du hast doch in FHEM ein Gerät welches Dein Fensterkontakt ist, oder? Schau mal bitte welchen NAMEN es hat.
Ich habe dir mal Screenshots aus den einzelnen Bereichen gemacht, vielleicht hilft dir das ja weiter
(http://imagizer.imageshack.us/v2/150x100q90/923/qsnYSM.png) (https://imageshack.com/i/pnqsnYSMp)
(http://imagizer.imageshack.us/v2/150x100q90/924/eRO3jV.png) (https://imageshack.com/i/poeRO3jVp)
(http://imagizer.imageshack.us/v2/150x100q90/922/cMY7TP.png) (https://imageshack.com/i/pmcMY7TPp)
(http://imagizer.imageshack.us/v2/150x100q90/923/sQ4WnF.png) (https://imageshack.com/i/pnsQ4WnFp)
Ich würde hier gerne mal die Lektüre von
http://www.fhemwiki.de/wiki/Erste_Schritte_in_fhem
und
http://fhem.de/Heimautomatisierung-mit-fhem.pdf
empfehlen.
Hier scheinen doch einige Grundlagen zu fehlen, was offensichtlich auch das Helfen an sich erschwert.
Ich kann Benni da nur Recht geben. Deine Geräte scheinen Max_ irgendwas zu heißen. Aber bevor Du nicht genau weißt was Du da machst wird Dir keiner wirklich helfen können.
Leider kenne ich mich mit Max auch nicht aus um Dir da Tips geben zu können.
Hallo nochmal,
ich würde das Thema gerne noch einmal aufgreifen da ich mir die Kontakte jetzt extra aufgrund einer Empfehlung bestellt habe. Habe mich nun ein wenig eingelesen. Vieles ist verständlich, vieles aber auch nicht. Ich denke aber das ist normal.
Ich würde mich freuen wenn mir jemand eine Möglichkeit zeigt, wie ich mit Telegram, Pushhover, etc. den Status der Fenster als Push Nachricht erhalte. Ich habe auf meinem Raspberry 2 das blanke Jessy Paket und das aktuelle FHEM. Des weiteren ist der MAX! Cube mit den 4 Fensterkontakten aufgespielt. Diese Kontakte heißen alle MAX_xxxxxx. Das ansteuern mit Telegram funktioniert leider nur bei meinen Funkssteckdosen. Die Pushnachricht der Kontakte bleibt leider aus.
Ich hoffe auf eine Rückmeldung, gerne auch per PN.
oneill
Als aller erstes solltest du deine Fensterkontakte umbenennen.
Zum Beispiel
FensterKontaktWohnzimmer_F1
Das ist bei mir das erste Wohnzimmerfenster im Uhrzeigersinn von der Tür aus ins Wohnzimmer blickend. Wenn Du das hast melde Dich noch mal.
So, habe nun das Attribut "Fensterkontakt_Arbeitszimmer" ( gibt nur das eine Fenster in dem Raum ) In dem Menüpunkt "MAX" indem die 4 Kontakte aufgelistet sind heisst dieser nun auch so.
Welches Attribut?
Normalerweise macht manmm in FHEM ein rename
rename Max_6473 FensterKontaktArbeitszimmer
Du hast nur ein Fensterkontakt oder nur ein Fenster. Wenn nur ein Fenster dann ist das ok ansonsten mach es gleich von Anfang an vernünftig.
Alles klar, das habe ich jetzt genau so erledigt.
In jedem Raum gibt es 1x Fenster insgesamt 4 Fenster diese heissen jetzt
Fensterkontakt_Arbeitszimmer
Fensterkontakt_Kueche
Fensterkontakt_Schlafzimmer
Fensterkontakt_Wohnzimmer
Supi. Jetzt schauen wir mal beide zusammen
Du machst ein
list Fensterkontakt _Wohnzimmer
In der FHEM Kommandozeile in FHEMWeb. Dann die Ausgabe hier in Codetags posten
Internals:
DEF ShutterContact 0aaa8b
IODev ml
LASTInputDev ml
MSGCNT 19
NAME Fensterkontakt_Wohnzimmer
NR 22
STATE closed
TYPE MAX
addr 0aaa8b
backend ml
ml_MSGCNT 19
ml_TIME 2016-11-16 16:55:45
rferror 0
serial KEQ0470671
type ShutterContact
Readings:
2016-11-16 16:55:45 MAXLAN_error 0
2016-11-16 16:55:45 MAXLAN_errorInCommand
2016-11-16 16:55:45 MAXLAN_initialized 1
2016-11-16 16:55:45 MAXLAN_isAnswer 0
2016-11-16 16:55:45 MAXLAN_valid 1
2016-11-16 16:55:45 battery ok
2016-11-16 16:39:42 firmware 1.4
2016-11-16 16:39:42 groupid 2
2016-11-16 16:55:45 onoff 0
2016-11-16 16:55:45 state closed
2016-11-16 16:39:42 testresult 15
Internals:
interfaces switch_active;battery
Attributes:
IODev ml
room MAX
Super. Und nun noch mal genau. Was möchtest Du jetzt haben?
Eine Nachricht mittels Telegram oder Pushover auf´s Smartphone wenn sich ein Status ändert.
Sprich ich bin nicht zuhause, das Fenster im Wohnzimmer wird geöffnet, dann würde ich gerne eine Meldung erhalten.
define notifyFensterOffenTelegram notify Fensterkontakt.*.open set telegramdevice msg Fenster $NAME offen
Sollte jedes Mal eine Nachricht senden wenn ein Fenster auf gemacht wird.
Ich habe dies nun genau so kopiert wie du mir das gesendet hast. Leider ohne Erfolg. Der Status der jeweiligen Kontakte verändert sich zwar ganz normal im FHEM aber es wird keine Nachricht aufs Handy gesendet
Das ist schlecht, klingt so als wenn du dein Telegrammdevice nicht eingetragen hast. Das musst du schon auf deine install anpassen.
Wird denn das Notify getriggert? Mach mal ein list vom Notify. Genau wie beim Fensterkontakt jetzt nur als Device das Notifydevice mit an geben.
Ich habe es ja mit der Funksteckdose (EIN/AUS) probiert. Klappt wunderbar. Habe den API Token mit "XXX" natürlich jetzt veräändert.
Internals:
DEF XXXXXX946:AAFwgXHci5AQRjg6RgRxZUPu2amqKby-XXX
FAILS 0
NAME Telegram
NR 32
OLD_POLLING 6
POLLING 6
SNAME Telegram
STATE Polling
TYPE TelegramBot
Token XXXXXX946:AAFwgXHci5AQRjg6RgRxZUPu2amqKby-XXX
UPDATER 0
URL https://api.telegram.org/botXXXX946:AAFwgXXXXXX6RgRxZUPu2amqKby-XXX
WAIT 0
me XXXXXX946:XXXX Str.80:@oneill1286_bot
offset_id 737107166
sentLastResult SUCCESS
sentMsgId 74
sentMsgPeer Lars_Lähnemann
sentMsgPeerId 279554447
sentMsgResult SUCCESS
sentMsgText TelegramBot FHEM : \n Befehl:set Radio off:\n Ergebnis:\nOK \n
Contacts:
279554447 279554447:Lars_Lähnemann:
Hu_do_params:
NAME
addr https://api.telegram.org:443
boundary TelegramBot_boundary-x0123
buf HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Wed, 16 Nov 2016 16:22:48 GMT
Content-Type: application/json
Content-Length: 306
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubdomains
{"ok":true,"result":{"message_id":74,"from":{"id":XXXXXX946,"first_name":"XXXX Str. 80","username":"oneill1286_bot"},"chat":{"id":279554447,"first_name":"Lars","last_name":"L\u00e4hnemann","type":"private"},"date":1479313368,"text":"TelegramBot FHEM : \n Befehl:set Radio off:\n Ergebnis:\nOK"}}
code 200
conn
data
displayurl <hidden>
header agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
Content-Type: multipart/form-data; boundary=TelegramBot_boundary-x0123
hideurl 1
host api.telegram.org
httpheader HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Wed, 16 Nov 2016 16:22:48 GMT
Content-Type: application/json
Content-Length: 306
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubdomains
hu_blocking 0
hu_filecount 6
loglevel 4
method POST
path /botXXXXXX946:XXXXXXAQRjg6RgRxZUPu2amqKby-XXX/sendMessage
protocol https
redirects 0
timeout 30
url https://api.telegram.org/botXXXXXX946:XXXXXXAQRjg6RgRxZUPu2amqKbyXXX/sendMessage
args:
279554447
TelegramBot FHEM : \n Befehl:set Radio off:\n Ergebnis:\nOK \n
0
1
Hash:
Sslargs:
Hu_upd_params:
FD 21
NAME
addr https://api.telegram.org:443
buf
code 200
displayurl <hidden>
header agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
hideurl 1
host api.telegram.org
httpheader HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Wed, 16 Nov 2016 16:22:48 GMT
Content-Type: application/json
Content-Length: 284
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubdomains
hu_blocking 0
hu_filecount 5
isPolling update
loglevel 4
method GET
offset 737107166
path /botXXXXXX946:XXXXXXXQRjg6RgRxZUPu2amqKby-XXX/getUpdates?offset=737107166&limit=5&timeout=180
protocol https
redirects 0
timeout 365
url https://api.telegram.org/boXXXXXX946:XXXXX5AQRjg6RgRxZUPu2amqKby-XXX/getUpdates?offset=737107166&limit=5&timeout=180
Hash:
Sslargs:
Readings:
2016-11-16 17:07:25 Contacts 279554447:Lars_Lähnemann:
2016-11-16 17:07:25 PollingErrCount 0
2016-11-16 17:17:32 StoredCommands FHEM set WZ_Papierlampe off
FHEM set Radio on
FHEM set Radio off
2016-11-16 17:22:48 msgChat
2016-11-16 17:22:48 msgFileId
2016-11-16 17:22:48 msgId 73
2016-11-16 17:22:48 msgPeer Lars_Lähnemann
2016-11-16 17:22:48 msgPeerId 279554447
2016-11-16 17:22:48 msgText FHEM set Radio off
2016-11-16 17:22:48 prevMsgChat
2016-11-16 17:22:48 prevMsgFileId
2016-11-16 17:22:48 prevMsgId 71
2016-11-16 17:22:48 prevMsgPeer Lars_Lähnemann
2016-11-16 17:22:48 prevMsgPeerId 279554447
2016-11-16 17:22:48 prevMsgText FHEM set Radio on
2016-11-16 17:22:48 sentMsgId 74
2016-11-16 17:22:48 sentMsgResult SUCCESS
sentQueue:
Attributes:
cmdKeyword FHEM
pollingTimeout 180
Das hilft mir nichts. Ich brauche ein list vom Notify
Internals:
DEF Fensterkontakt.*.open set telegramdevice msg Fenster $NAME offen
NAME notifyFensterOffenTelegram
NR 31
NTFY_ORDER 50-notifyFensterOffenTelegram
REGEXP Fensterkontakt.*.open
STATE active
TYPE notify
Readings:
2016-11-16 17:21:33 state active
Attributes:
Ok ich sehe schon.
Lese kurz meine Signatur. Gehe in Dich und überlege und schaue Dir ganz genau Dein Notify an. Versuche zu erkennen was genau jedes Wort macht und wo Du ein Problem haben könntest.
Danach wieder melden.
Nachtrag. Es gibt noch ein anderes Problem. Das Notify Trigger nicht aber das bekommen wir hin. Erstmal bitte versuchen das offensichtliche zu erkennen.
Ich hatte ja gesagt das ich es so kopiert hatte.
Es wird vermutlich hier dran liegen
Fensterkontakt.*.open set telegramdevice msg Fenster $NAME offen
Fensterkontakt_Arbeitszimmer.*.open set telegramdevice msg Fenster $NAME offen
Nein. Das ist es nicht.
Schau dir den set Befehl doch mal an. Was stimmt da nicht?
Anstatt des $NAME den Fensterkontakt_Arbeitszimmer? oder als telegramdevice den API-Token?
Mehr würde mir dazu nicht einfallen, hilf mir auf die Sprünge :o
Du musst noch viel lesen bitte
set Devicenamen
Dein Devicenamen für dein Telegrammdevice lautet Telegram
Also wird daraus ein
set Telegram msg Fenster $NAME offen
Und jetzt müssen wir aber noch schauen wie der Event aus sieht wenn du ein Fenster auf machst.
Also Eventmonitor starten und dann Fenster auf machen und die Eventausgabe hier posten
Vielen Dank schon mal für deine Mühe.
Hier der Eventlog nach dem öffnen:
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer battery: ok
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer onoff: 1
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer opened
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer MAXLAN_initialized: 1
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer MAXLAN_error: 0
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer MAXLAN_errorInCommand:
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer MAXLAN_valid: 1
2016-11-16 18:00:00 MAX Fensterkontakt_Arbeitszimmer MAXLAN_isAnswer: 0
2016-11-16 18:00:00 MAX Fensterkontakt_Wohnzimmer battery: ok
2016-11-16 18:00:00 MAX Fensterkontakt_Wohnzimmer onoff: 0
2016-11-16 18:00:00 MAX Fensterkontakt_Wohnzimmer closed
2016-11-16 18:00:01 MAX Fensterkontakt_Wohnzimmer MAXLAN_initialized: 1
2016-11-16 18:00:01 MAX Fensterkontakt_Wohnzimmer MAXLAN_error: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Wohnzimmer MAXLAN_errorInCommand:
2016-11-16 18:00:01 MAX Fensterkontakt_Wohnzimmer MAXLAN_valid: 1
2016-11-16 18:00:01 MAX Fensterkontakt_Wohnzimmer MAXLAN_isAnswer: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche battery: ok
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche onoff: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche closed
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche MAXLAN_initialized: 1
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche MAXLAN_error: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche MAXLAN_errorInCommand:
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche MAXLAN_valid: 1
2016-11-16 18:00:01 MAX Fensterkontakt_Kueche MAXLAN_isAnswer: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer battery: ok
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer onoff: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer closed
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer MAXLAN_initialized: 1
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer MAXLAN_error: 0
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer MAXLAN_errorInCommand:
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer MAXLAN_valid: 1
2016-11-16 18:00:01 MAX Fensterkontakt_Schlafzimmer MAXLAN_isAnswer: 0
Fensterkontakt_.*.opened set Telegram msg Fenster $NAME offen
Leider erzielt diese Konfiguration auch keinen Erfolg
List von Notify bitte
Internals:
DEF Fensterkontakt_.*.opened set Telegram msg Fenster $NAME offen
NAME notifyFensterOffenTelegram
NR 31
NTFY_ORDER 50-notifyFensterOffenTelegram
REGEXP Fensterkontakt_.*.opened
STATE 2016-11-16 18:11:10
TYPE notify
Readings:
2016-11-16 18:11:08 state active
Attributes:
Ok hat geklappt. Das Notify hat getriggert jetzt stimmt wohl was mit dem Set Befehl nicht. Ich habe kein Telegram weiß also nicht wie der set Befehl aussehen sollte.
Was sagt das Log. Gibt es da Fehlermeldung
2016.11.16 18:23:51 3: notifyFensterOffenTelegram return value: TelegramBot_Set: Command msg, without explicit peer requires defaultPeer being set
Dann stimmt der set Befehl für Telegram nicht. Wie hast du das bei den anderen gemacht?
FHEM set Radio on
Dies ist der Befehl für das einschalten einer Steckdose "hier im Beispiel das Radio" über die App. FHEM ist das Keyword, diesen müssten wir noch hinzufügen denke ich
Unsinn. Ich denk du willst eine Telegram Nachricht bekommen wenn ein Fenster auf geht.
Hast du wirklich auch nur Ansatzweise verstanden wie fhem arbeitet und was set, Notify und alles andere bedeutet?
Du hattest nach dem Befehl gefragt wie ich die Steckdose einschalte. Das hatte ich dir beantwortet. Entschuldige bitte, deswegen bin ich ja hier im Forum um zu lernen und das Wissen zu erweitern. Es ist ja noch kein Meister vom Himmel gefallen. Und gerade das mit den Kontakten ist für mich Neuland.
Ja aber einfachste Sachen welche man im Einsteiger Handbuch findet sollte man wissen.
Hast du schon einmal eine Nachricht von FHEM über Telegram verschicken können?
Ich kenne den Aufbau des set Befehl es nicht, das müsstest du bitte rausfinden. Ansonsten stimmt alles so wie es jetzt ist einzig der korrekte set Befehl muss noch abgeklärt werden. Das Notify Trigger auf jeden Fall.
Hast du vielleicht pushover auch installiert dann kann ich dir da helfen
Die App Pushover habe ich, wenn du mir bei der Einrichtung hilfst können wir gerne dies benutzen. Ich sagte ja zu Anfang, welcher Dienst wäre egal
http://www.fhemwiki.de/wiki/Pushover
Wenn du Fragen hast oder nicht weiter kommst Fragen. Aber erstmal lesen und versuchen um zu setzen bitte.
Ich würde hier gern helfen. Ich hab nämlich pushover und Telegram getestet, Telegram hat den Vorteil Du kannst auch Befehle senden und Grafiken. Würde da nicht von weggehen wollen.
Und zwar geht set Telegram msg NUR wenn Du einen defaultPeer definiert hast in den Attributen.
Etwa So
attr Telegram defaultPeer @hierdeinTelegramnick
Ansonsten müsste in das notify set Telegram msg @@HierdeinNick Nachricht
Hallo zusammen,
ich habe das "Problem" folgendermaßen gelöst:
define sz_stehlampe_off DOIF ([wz_stehlampe:"off"]) (set telegram message wz_stehlampe aus)
Muss halt an die eigenen Gegebenheiten angepasst werden. Vielleicht hilft es ja weiter. Der Default Peer muss aber definiert sein. Der Hinweis von AmunRe war echt hilfreich... wobei ich den defaultPeer ohne
@
eingetragen habe. Einfach nur den Namen des Kontaktes
Grüße
sxx128
Zitat von: sxx128 am 17 November 2016, 18:46:07
Muss halt an die eigenen Gegebenheiten angepasst werden. Vielleicht hilft es ja weiter. Der Default Peer muss aber definiert sein. Der Hinweis von AmunRe war echt hilfreich... wobei ich den defaultPeer ohne
Nur der Vollständigkeit halber, das Attribut defaultPeer muss gesetzt werden, wenn man nicht bei jedem Sendebefehl einen Empfänger angeben will und Empfänger müssen im Attribut defaultPeer nur dann mit @ angegeben werden, wenn es sich um den alias-namen handelt. Ich empfehle aber dafür immer die id des Accounts also die Zahl, die in den Kontakt-Readings angegeben ist zu verwenden.
Vielen Dank !
Mit Hilfe der Infos in diesem thread konnte ich FHEM dazu bringen Nachrichten an Telegram zu senden.
Manchmal ist man ja sooo blind ;-)