FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dr4g0n am 31 März 2019, 01:19:28

Titel: PNG in MQTT Message und anschließend im Reading.
Beitrag von: dr4g0n am 31 März 2019, 01:19:28
Hallo,

ich habe meinen Roborock gerootet und dort Valentudo installiert.
Die Software bietet die Möglichkeit einen MQTT Server anzubinden (durch FHEM bereitgestellt), das Device wurde automnatisch von FHEM generiert und auch erkannt.
Nun gibt es ein Reading welches sich "map" nennt und  in diesem scheint die aktuelle Karte zu liegen.

Hier ein kleiner ausschnitt aus dem Reading:

�PNG


IHDR����x�IDATx���qdK��s+����)#ʘgG�B�p%Im!����3�)���
G���l�*?�d2y�#�����l�*�ົ����G����AF� �4��[U���;���ʯ��٭�G����AF� ��G\ww6�U�7�3�亻�����8�d��}Ue7��[U���ϼ����uwgs_U��8�d�gZU����VU��ٝݪ�G������0#p�8����U����nU��[Uyevg����uwgs_U>�d2y��aUe7��[U� ��;/�WUv�;�U������ٝݪ�+�;���
�G��AF� #p�G�Ѯ�;�����ϼ���'����d2y�3���fwv�*��uwgs_U���|���G���VU>bv���;����+�;�U�����AF� ��5���fwv�*����Ou��;�lUe7����y麻���3����A�L�*�ٝݪ
��1��[Uyev����꺻�����U��g�[U�2����A�{��٭��fw~�U����nU��g�[U���|���nU8�d2y�m��;���


Wie kann ich dieses z.b. in ein Bild umwandeln und in FTUI anzeigen? Muss ich es erst im Hintergrund umparsen und dann speichern oder geht das direkt über FHEM?

Danke im vorraus.
Grüße
Pascal
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: Netvirus am 05 April 2019, 21:55:39
Hi,

ich versuche auch über Valeduto und MQTT die map zu bekommen. Bei mir wurde das Device auch per autocreate erstellt. Allerdings habe ich bisher noch nicht geschafft die Map zu bekommen. Ist die bei dir direkt im reading drin? Muss man da erst etwas publishen, damit man die bekommt?

Viele grüße
Daniel
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: dr4g0n am 08 April 2019, 08:38:59
Ich habe lediglich mit der Version 0.2.3 die MQTT Settings gefüllt, sobald der Robi losfährt wird die Karte alle x Sekunden per MQTT gesendet.
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: Florian_GT am 06 Mai 2019, 00:16:32
Hat jemand von euch eine fertige config für Fhem und MQTT und Valetudo?
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: dr4g0n am 11 Mai 2019, 00:14:07
Also bei mir ist nun alles Prima :)

Ich nutze das normale Xiaomi FHEM Addon und beziehe damit die Werte vom Sauger.
Die Karte wird über ICantBeliveItsNotValetudo generiert (Der Sauger schickt alles per MQTT an den Broker, ICantBeliveItsNotValetudo subscribt und generiert die Map). Damit ich mir das FHEM nicht mit den MQTT Messages vom Sauger voll mülle habe ich 2 MQTT Broker am laufen, einmal mein normaler für FHEM&Devices und ein Trash Broker nur für den Sauger und die Map :) Zudem hab ich das ICantBeliveItsNotValetudo an einer Stelle erweitert, dass dort ein Reading in FHEM gesetzt wird mit dem aktuellen MapPath und einem Timestamp hinten dran. (mapURL http://FHEMSERVER:3001/api/map/image?_=1557499000596).

Wenn der Sauger nun läuft, werden alle Werte über FHEM ausgelesen und die Mapgenerierung startet. Wenn es ein MapUpdate gibt dann wird der Path incl. Timnestamp aktualisiert und durch den neuen Value wird das Image-Load im FTUI angetriggert. (wenn er saugt, dann jede Sekunde und im Idle nur alle x Minuten)

Somit habe ich immer die aktuelle Karte im FTUI, aber auch nur wenn es Updates gibt. :)

Vorteile:
- CPU-Auslastung für das Map erstellen wird vom Sauger auf ein schnelleres Gerät übertragen
- Durch das Render via ICantBeliveItsNotValetudo kann das Theme bzw die Farben der Karte angepasst werden (im RenderScript)
- Ich habe das Script etwas aufgebohrt, damit die Fehlerhaften-Scan Daten nicht mitgerendert werden :)
- Es wird lediglich die Datenbasis für die Map übermittelt und kein großes Bild, somit spart man auch Bandbreite zum Sauger
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: drhirn am 11 Mai 2019, 12:09:20
Was ist "ICantBeliveItsNotValetudo"?
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: dr4g0n am 11 Mai 2019, 12:30:31
https://github.com/Hypfer/ICantBelieveItsNotValetudo
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: drhirn am 11 Mai 2019, 12:38:26
Oh, das habe ich bisher übersehen. Danke dir!
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: vbretsch am 22 Mai 2019, 14:40:25
Zitat von: dr4g0n am 11 Mai 2019, 00:14:07
Also bei mir ist nun alles Prima :)


Somit habe ich immer die aktuelle Karte im FTUI, aber auch nur wenn es Updates gibt. :)


Das FTUI Widget sieht superelegant aus! Wärst Du vielleicht bereit den html-Source-Code hier zu posten?

Viele Grüße,
Volker
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: UHT am 22 Juli 2019, 08:29:42
@dr4g0n

Finde deine Lösung auch sehr schick. Magst du da noch ein paar mehr Informationen raus rücken?
Wo läuft bei dir ICantBeliveItsNotValetudo? Was genau hast du da angepasst?
Auch den SourceCode vom Widget wäre gut
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: alf_85 am 17 Oktober 2019, 21:48:29
Ich wäre auch an einer genaueren Beschreibung interessiert! Muss ich ICantBelieveItsNotValetudo auf dem ROBOROCK installieren? Das macht ja eigentlich wenig Sinn... aber wo genau gebe ich die IP des Saugers an? ::) ???
Titel: Antw:PNG in MQTT Message und anschließend im Reading.
Beitrag von: dr4g0n am 14 Dezember 2019, 01:16:00
Hallo,

das tool ICant..... wird auf einem Linux installiert, damit die CPU-Last zum rendern der Karte vom Robo herunter genommen wird.

Hier der Link mit meinen Anpassungen, leider ist es derzeit bei mir defekt, da die Koordinaten zum saubermachen der Karte aktualisiert werden müssen.
Ich habe den Code fix kommentiert.. ich hoffe man versteht es einigermaßen. zudem habe ich ein timestamp an dem bild dran, damit dieser geändert wird und FTUI das Bild nur neu läd, wenn ein eine Aktualisierung vorliegt.

https://pastebin.com/b2RhCu3n