FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Guenni1404 am 15 März 2021, 22:42:54

Titel: Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 15 März 2021, 22:42:54
Hallo,

ich bin blutiger Anfänger in Python und MQTT.
Ich habe ein Python script das über PAHO MQTT Daten bekommt.
Wie bekomme ich die Daten am besten nach FHEM?
Kann mir jemand helfen?
Ich nutze in FHEM MQTT2
Das Script habe ich von hier https://gist.github.com/zerog2k/b3afcaf3ff92a60474a159c7044dc8ce (https://gist.github.com/zerog2k/b3afcaf3ff92a60474a159c7044dc8ce)
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Otto123 am 16 März 2021, 09:55:08
Moin,

wie Du siehst kann mit Deiner Frage keiner so richtig was anfangen.

Wenn "über PAHO MQTT Daten bekommt" und "Ich nutze in FHEM MQTT2" warum dann nicht einfach die Daten nach MQTT2 ???
Was macht das Script und wo läuft es? Was kommt rein was soll rauskommen?

Gruß Otto
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 16 März 2021, 12:27:26
Hi Otto,

ich versuche es nochmal:

Ich möchte MQTT Daten die von
mq.youpinyuntai.com:55450
kommen, nach FHEM bekommen.

Ich habe ein Phyton Script gefunden, dass die Daten empfängt und auf Konsolenebene ausgibt.

Entweder wäre es schön, wenn ich die Daten nach FHEM weiterleiten könnte oder wenn ich es direkt in MQTT2 einbinden könnte.

Die direkte Einbindung wäre super - habe aber keine Ahnung davon.
Habe jetzt die Python FHEM API gefunden, aber noch nicht ausprobiert.

Wenn du einen Tipp hättest, wie ich die Daten direkt, über MQTT2, einbinden kann, wäre es super.

Hoffe es ist jetzt besser erklärt

Gruß

Christian
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Otto123 am 16 März 2021, 12:41:01
Diese Web Adresse - was ist das? Ein MQTT Server?
Dann kannst Du einen MQTT2_CLIENT in FHEM definieren und der empfängt die Daten dann direkt, Du kannst ihn mal auf Autocreate stellen dann erzeugt er ein MQTT2_DEVICE und Du bist (fast) fertig.

Alles in allen so etwa: https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Owntracks_GPS_Tracking_in_FHEM

Gruß Otto
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: rudolfkoenig am 16 März 2021, 12:44:38
ZitatDie direkte Einbindung wäre super - habe aber keine Ahnung davon.
Das geht mit
define mqc MQTT2_CLIENT mq.youpinyuntai.com:55450

Allerdings erzeugt das mit dem default-Subscription ein Datenstrom von 100-300kB/sec, das ist ca 10MB/Minute, FHEM ist vermutlich nicht das Optimum, um diese Daten zu verarbeiten.
Was fuer Daten sind das genau?
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 16 März 2021, 13:00:36
Das sind Daten von einem Luftsensor.
Enthält Temperatur, Luftfeuchtigkeit, TVOC, HCHO, eCO2, PM2.5


[{u'content': u'0', u'dptId': 1, u'deviceToken': u'XXXXXXXXXXXXXXX', u'seq': 1}, {u'content': None, u'dptId': 1, u'deviceToken': u'', u'seq': 2}, {u'content': None, u'dptId': 1, u'deviceToken': u'', u'seq': 3}, {u'content': u'20', u'dptId': 1, u'deviceToken': u'', u'seq': 4}, {u'content': u'48', u'dptId': 1, u'deviceToken': u'', u'seq': 5}, {u'content': u'36', u'dptId': 1, u'deviceToken': u'', u'seq': 6}, {u'content': u'0.034', u'dptId': 1, u'deviceToken': u'', u'seq': 7}, {u'content': u'0.590', u'dptId': 1, u'deviceToken': u'', u'seq': 8}, {u'content': u'394', u'dptId': 1, u'deviceToken': u'', u'seq': 9}, {u'content': u'2700', u'dptId': 1, u'deviceToken': u'', u'seq': 10}]



Die Daten werden im Script über den deviceToken eingegrenzt .
Aufruf vom Script ist: python script token
Wenn das auch über MQTT2 ginge wäre es die optimale Lösung
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Otto123 am 16 März 2021, 13:12:55
zwei Stellen im Script
TOPIC = sys.argv[1]
...
client.subscribe(TOPIC)

Also offenbar einfach beim client den Subscribe mit deinem Token füttern ? Attribute setzen?:
Zitatsubscriptions <subscriptions>
space separated list of MQTT subscriptions, default is #
Jetzt bist Du dran mit testen Christian :)
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: rudolfkoenig am 16 März 2021, 13:43:24
ZitatDas sind Daten von einem Luftsensor.
Das halte ich fuer ein Geruecht, eher Daten von tausenden von Sensoren.
In einer Minute habe ich 1623 unterschiedliche deviceTokens erhalten.
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Otto123 am 16 März 2021, 13:45:49
@Rudi Das Script macht offenbar ein Subscribe für einen deviceToken - das würde dann ja passen
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 16 März 2021, 13:46:09
Zitat von: Otto123 am 16 März 2021, 13:12:55
zwei Stellen im Script
TOPIC = sys.argv[1]
...
client.subscribe(TOPIC)

Also offenbar einfach beim client den Subscribe mit deinem Token füttern ? Attribute setzen?:Jetzt bist Du dran mit testen Christian :)

Super!

Besten Dank, hat funktioniert.
Habe die Daten jetzt im Device und muss sie nur noch verarbeiten.
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: rudolfkoenig am 16 März 2021, 13:47:32
Ich frag mich nur, wer verteilt die Daten aller an alle.
Wir haben doch 2021, oder habe ich was verpasst?
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 16 März 2021, 13:48:12
@Rudi
Stimmt, das sind aber die Daten aller Sensoren.

https://de.aliexpress.com/i/1005001356026748.html (https://de.aliexpress.com/i/1005001356026748.html)

Hatte den Sensor geschenkt bekommen und wollte ihn mal testen und die Daten verarbeiten.

Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 16 März 2021, 13:53:57
Zitat von: rudolfkoenig am 16 März 2021, 13:47:32
Ich frag mich nur, wer verteilt die Daten aller an alle.
Wir haben doch 2021, oder habe ich was verpasst?

Nein du hast nichts verpasst. Eigentlich soll die App genutzt werden, da siehst du nur deine Daten.
Die MQTT Schnittstelle ist aber offen. Ohne deviceToken kannst du die Daten nicht zuordnen.
Naja ist ein chinesischer Cloudanbieter für IOT
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Otto123 am 16 März 2021, 13:59:37
ich habe noch nicht verstanden, wie ihr einen connect hinbekommt? Bei mit macht er immer connect disconnect - wollte das bloß mal nachvollziehen
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: rudolfkoenig am 16 März 2021, 14:03:53
Zitatich habe noch nicht verstanden, wie ihr einen connect hinbekommt? Bei mit macht er immer connect disconnect - wollte das bloß mal nachvollziehen
Ich habe nur "mosquitto_sub -v- t # -h mq.youpinyuntai.com -p 55450" probiert.
Aber mit meinem Vorschlag von oben funktioniert es auch ohne Probleme.
Titel: Antw:Python Paho MQTT zu FHEM
Beitrag von: Guenni1404 am 16 März 2021, 14:04:08
Es gibt immer wieder Probleme mit der Verbindung. Hatte ich schon vorher festgestellt. Mal läuft es einige Zeit ohne Probleme, dann wieder mit Verbindungsabbrüchen.