FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: satprofi am 25 Dezember 2021, 21:22:24

Titel: teslamate mqtt2
Beitrag von: satprofi am 25 Dezember 2021, 21:22:24
hallo.
kann man mqtt devices so einstellen dass autocreate devices den bamen immer gleich behalten?
nach reboot von teslamate wird neues device angelegt und die werte von duv. verknüpfungen nicht mehr aktualisiert
Titel: Antw:teslamate mqtt2
Beitrag von: Otto123 am 25 Dezember 2021, 22:02:31
Hi,

Du musst deinem MQTT "Sender" sagen, er soll jedes mal die gleiche ClientID verwenden.

Wenn das nicht geht, musst Du einen separaten MQTT2_SERVER für diese Verbindung definieren und das attr ClientID setzen. Siehe commandref:
https://fhem.de/commandref.html#MQTT2_SERVER

Schöne Weihnachten
Otto
Titel: Antw:teslamate mqtt2
Beitrag von: Beta-User am 26 Dezember 2021, 09:57:18
...oder einfach in der readingList jeweils die CID-präfixe löschen, wenn sich diese Gegenstelle nicht überreden läßt, die ClientID zu behalten...

(mit (RAW-Def-) Code ist es wesentlich einfacher, konkret zu helfen...)
Titel: Antw:teslamate mqtt2
Beitrag von: satprofi am 26 Dezember 2021, 10:00:17
hmmm, schöne brocken haut ihr mir vor die füsse. werd mich schlau machen.
Titel: Antw:teslamate mqtt2
Beitrag von: Beta-User am 26 Dezember 2021, 10:07:14
Na ja, jedem Anfänger sagt man, er soll Infos liefern warum also nicht dem Fortgeschrittenen, der nicht ins Wiki schaut. Ist nämlich ein "Klassiker": https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#St.C3.A4ndig_neue_Devices.3F (https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#St.C3.A4ndig_neue_Devices.3F)
Titel: Antw:teslamate mqtt2
Beitrag von: Otto123 am 26 Dezember 2021, 10:18:02
Zitat von: satprofi am 26 Dezember 2021, 10:00:17
hmmm, schöne brocken haut ihr mir vor die füsse. werd mich schlau machen.
Naja Du hattest auch nur ein Bröckchen :)
Titel: Antw:teslamate mqtt2
Beitrag von: satprofi am 26 Dezember 2021, 10:56:37
sehe ich das richtig, wenn ich die readingList so ändere

TESLAMATE_.*:teslamate/cars/1/rated_battery_range_km:.* cars_1_rated_battery_range_km
das jede meldung mit "TESLAMATE.*" eingelesen wird, egal wie die definitation des MQTT2 client lautet?
Titel: Antw:teslamate mqtt2
Beitrag von: Otto123 am 26 Dezember 2021, 11:18:32
ich würde es so machen:
teslamate/cars/1/rated_battery_range_km:.* cars_1_rated_battery_range_km

Hinweis teslamate verwendet mosquitto - dummerweise lässt sich die ClientID offenbar nicht ändern. https://docs.teslamate.org/docs/configuration/environment_variables
Titel: Antw:teslamate mqtt2
Beitrag von: rudolfkoenig am 26 Dezember 2021, 11:29:00
Zitatsehe ich das richtig, wenn ich die readingList so ändere [...]
Falls clientId immer mit TESLAMATE_ anfaengt, dann ja.
Oder auch: beim Eintreffen einer MQTT-Nachricht werden alle readingsList Eintraege erst mit $topic:$message und dann mit $clientid:$topic:$message geprueft.

Die Pruefungen fuer passende ClientIds sind etwas optimiert, bei vielen MQTT2_DEVICEs mit jeweils vielen unterschiedlichen topics sollte das einen merkbaren Unterschied ausmachen.
Titel: Antw:teslamate mqtt2
Beitrag von: satprofi am 27 Dezember 2021, 09:15:43
ok, danke.
fängt immer mit telsmate an, zusätzlich einer langen zahlenreihe, wo aber immer nur die letzten drei sich ändern.
habe es jetzt mit meinem beispiel versucht, readings werden z.zt. aktualisiert.
mal sehen was bei änderung der zahlenreihe.
Titel: Antw:teslamate mqtt2
Beitrag von: Dracolein am 29 März 2022, 17:50:48
Zitat von: satprofi am 27 Dezember 2021, 09:15:43
ok, danke.
fängt immer mit telsmate an, zusätzlich einer langen zahlenreihe, wo aber immer nur die letzten drei sich ändern.
habe es jetzt mit meinem beispiel versucht, readings werden z.zt. aktualisiert.
mal sehen was bei änderung der zahlenreihe.

Hast Du Lust mir ein kleines HowTo zu tippen, wie Du FHEM und TeslaMate miteinander "verbunden" hast?
Letzteres läuft auf meinem NAS in einem Docker-Container, während meine FHEM Instanz auf einem Raspberry Pi läuft. Ich würde gern einige wenige Daten aus Teslamate für mein FHEM-Dashboard verwenden wollen (z.B. den Akkustand)
Titel: Antw:teslamate mqtt2
Beitrag von: Florian_GT am 23 Februar 2023, 16:18:48
Hey, magst du die Config in Fhem für TeslaMate MQTT mit uns teilen?
Titel: Antw:teslamate mqtt2
Beitrag von: Dracolein am 04 März 2023, 08:45:51
Bei mir läufts inzwischen seit Monaten problemlos.

1.) MQTT2-Client definieren
( https://wiki.fhem.de/wiki/MQTT2_CLIENT )
Der typische Teslamate-Port ist 1883 (je nachdem auf welchem Gerät es läuft, muss ggf. dort der Port auch noch in einer lokal aktiven Firewall freigegeben werden damit Zugriff möglich)

2.) MQTT2_DEVICE definieren
( https://wiki.fhem.de/wiki/MQTT2_DEVICE )

Bei mir läuft Teslamate in einem Docker-Container auf einer Synology Diskstation und FHEM auf einem Raspberry Pi
Titel: Antw:teslamate mqtt2
Beitrag von: satprofi am 11 März 2023, 11:36:29
Zitat von: Dracolein am 29 März 2022, 17:50:48
Hast Du Lust mir ein kleines HowTo zu tippen, wie Du FHEM und TeslaMate miteinander "verbunden" hast?
Letzteres läuft auf meinem NAS in einem Docker-Container, während meine FHEM Instanz auf einem Raspberry Pi läuft. Ich würde gern einige wenige Daten aus Teslamate für mein FHEM-Dashboard verwenden wollen (z.B. den Akkustand)

sorry für späte antwort.
denke du hast es schon hinbekommen, wenn nicht dann nochmals hier:

leg die eine .env datei an

MQTT_HOST=##.##.##.##
MQTT_PORT=1883
MQTT_USERNAME=#####
MQTT_PASSWORD=#####


dann musst du in deiner docker-compose.yml folgende zeilen hinzufügen:

       - MQTT_HOST=${MQTT_HOST}
       - MQTT_PORT=${MQTT_PORT}
       - MQTT_USERNAME=${MQTT_USERNAME}
       - MQTT_PASSWORD=${MQTT_PASSWORD}


und dann teslamate neu starten  docker-compose up -d

danach sollten die readings unter MQTT erscheinen
Titel: Antw:teslamate mqtt2
Beitrag von: Florian_GT am 14 März 2023, 13:33:11
Zitat von: satprofi am 11 März 2023, 11:36:29
sorry für späte antwort.
denke du hast es schon hinbekommen, wenn nicht dann nochmals hier:

leg die eine .env datei an

MQTT_HOST=##.##.##.##
MQTT_PORT=1883
MQTT_USERNAME=#####
MQTT_PASSWORD=#####


dann musst du in deiner docker-compose.yml folgende zeilen hinzufügen:

       - MQTT_HOST=${MQTT_HOST}
       - MQTT_PORT=${MQTT_PORT}
       - MQTT_USERNAME=${MQTT_USERNAME}
       - MQTT_PASSWORD=${MQTT_PASSWORD}


und dann teslamate neu starten  docker-compose up -d

danach sollten die readings unter MQTT erscheinen

Teslamate läuft bei mir schon so weit, aber wie sieht die Device Definition bei FHEM bei euch aus?
Titel: Aw: teslamate mqtt2
Beitrag von: Dracolein am 27 März 2023, 16:13:09
define TeslaMate MQTT2_CLIENT 192.168.***.***:1883
attr TeslaMate autocreate no
attr TeslaMate room Teslamate

define MQTT2_TeslaMate MQTT2_DEVICE TeslaMate
attr MQTT2_TeslaMate autocreate 1
attr MQTT2_TeslaMate readingList TeslaMate:teslamate/cars/1/charge_energy_added:.* cars_1_charge_energy_added\
TeslaMate:teslamate/cars/1/battery_level:.* cars_1_battery_level\
TeslaMate:teslamate/cars/1/since:.* cars_1_since\
TeslaMate:teslamate/cars/1/ideal_battery_range_km:.* cars_1_ideal_battery_range_km\
TeslaMate:teslamate/cars/1/rated_battery_range_km:.* cars_1_rated_battery_range_km\
TeslaMate:teslamate/cars/1/state:.* cars_1_state\
TeslaMate:teslamate/cars/1/est_battery_range_km:.* cars_1_est_battery_range_km\
TeslaMate:teslamate/cars/1/usable_battery_level:.* cars_1_usable_battery_level\
TeslaMate:teslamate/cars/1/inside_temp:.* cars_1_inside_temp\
TeslaMate:teslamate/cars/1/display_name:.* cars_1_display_name\
TeslaMate:teslamate/cars/1/version:.* cars_1_version\
TeslaMate:teslamate/cars/1/sentry_mode:.* cars_1_sentry_mode\
TeslaMate:teslamate/cars/1/locked:.* cars_1_locked\
TeslaMate:teslamate/cars/1/windows_open:.* cars_1_windows_open\
TeslaMate:teslamate/cars/1/doors_open:.* cars_1_doors_open\
TeslaMate:teslamate/cars/1/trunk_open:.* cars_1_trunk_open\
TeslaMate:teslamate/cars/1/frunk_open:.* cars_1_frunk_open\
TeslaMate:teslamate/cars/1/outside_temp:.* cars_1_outside_temp\
TeslaMate:teslamate/cars/1/charge_limit_soc:.* cars_1_charge_limit_soc\
TeslaMate:teslamate/cars/1/time_to_full_charge:.* cars_1_time_to_full_charge\
\
\
attr MQTT2_TeslaMate room Teslamate
attr MQTT2_TeslaMate stateFormat cars_1_usable_battery_level