NEWS
Karte in VIS mit mihome-vacuum Adapter wird nicht angezeigt
-
Hallo zusammen,
ich bräuchte eure Hilfe bei der Darstellung der Karte meines Xiaomi Saugroboters in ioBroker VIS.
Hier mein Setup:
-
ioBroker Adapter: mihome-vacuum, Version 4.2
-
Roboter: Roborock S5 Max
-
App: MiHome (auf dem Smartphone)
-
VIS-Widget: vis-inventow Image Widget
-
Ziel: Karte des Saugroboters in VIS anzeigen
Ich habe bereits versucht, die Karte wie folgt darzustellen:
-
Datenpunkt für Karte: Ich nutze mihome-vacuum.0.cleanmap.map64 als Objekt-ID im Image Widget. Leider wird jedoch kein Bild angezeigt.
-
Statuswerte: Im ioBroker-Objektbaum zeigt actualMap den Wert 0, während MapStatus auf WithSegments(3) steht, was anscheinend bedeutet, dass die Karte erstellt wurde und drei Segmente enthält.
-
Adapter- und Robotereinstellungen: Alle Adapter-Einstellungen sind Standard, und die Kartendarstellung ist in der MiHome App aktiviert.
Fragen:
-
Hat jemand eine Idee, warum die Karte im VIS-Image Widget nicht angezeigt wird?
-
Gibt es eventuell alternative Lösungen oder Widgets, die besser funktionieren?
-
Muss ich bestimmte Adapter-Einstellungen anpassen, damit die Kartendarstellung klappt?
Vielen Dank für jede Hilfe oder Anregung!
-
-
-
@kingralph
Kann ja nicht angezeigt werden da keine Werte da sind -
Hallo zusammen,
nach einigen Versuchen konnte ich die Karte meines Roborock S5 Max erfolgreich in ioBroker VIS anzeigen lassen. Hier eine kurze Zusammenfassung, wie ich das Problem gelöst habe:
-
Canvas-Paket installieren: Zunächst musste ich sicherstellen, dass das Canvas-Paket installiert ist, da dies für die Kartendarstellung notwendig ist. Nach einigen Installationsschritten (lokale und globale Installation) wurde es schließlich erkannt.
-
Überprüfung der Karte: Im ioBroker-Objektbaum habe ich gesehen, dass map64 die Karte im Base64-Format enthält und mapURL die URL zur Karte als PNG-Bild bereitstellt.
-
Direktzugriff auf URL: Um sicherzugehen, dass die Karte korrekt erstellt wird, habe ich die mapURL-Adresse (z. B. http://192.***:8082/mihome-vacuum.0.userfiles/actualMap.png) direkt im Browser getestet. Die Karte wurde korrekt angezeigt.
-
Einbindung in VIS: In VIS habe ich das Basic Image Widget genutzt und die URL als Bildquelle eingetragen. Die Karte wird nun im Dashboard korrekt angezeigt.
Danke für die (eine) Hilfe
! Wenn jemand Verbesserungsvorschläge hat, freue ich mich auf Feedback.
-
-
@kingralph sagte in Karte in VIS mit mihome-vacuum Adapter wird nicht angezeigt:
Zunächst musste ich sicherstellen, dass das Canvas-Paket installiert ist, da dies für die Kartendarstellung notwendig ist. Nach einigen Installationsschritten (lokale und globale Installation) wurde es schließlich erkannt.
Hört sich nach Gefrickel an.
canvas wird (so denn die entsprechenden Pakete bereits installiert sind) bei Bedarf im Zuge der Adapter-Installation gebaut.cd /opt/iobroker && npm ls canvas
sollte sowas in der Art liefern:
iobroker.inst@3.0.0 /opt/iobroker ├─┬ iobroker.echarts@1.9.2 │ ├── canvas@2.11.2 │ └─┬ jsdom@25.0.1 │ └── canvas@2.11.2 deduped └─┬ iobroker.mihome-vacuum@4.2.0 └── canvas@2.11.2 deduped
Da wird nix 'global' installiert.
-
Vielen Dank an Thomas Braun für den Tipp mit dem „Gefrickel“ – das hat mich auf die richtige Spur gebracht!
Ich konnte das Problem nun lösen. Es stellte sich heraus, dass mehrere Versionen des Canvas-Pakets installiert waren, was zu Konflikten führte. Hier die Schritte, die zur Lösung geführt haben:
Ältere Canvas-Version entfernt: Ich habe die ältere Canvas-Version (2.6.1) entfernt, damit nur noch die für den Adapter notwendige Version 2.11.2 vorhanden ist.
iobroker.inst@3.0.0 /opt/iobroker +-- canvas@2.6.1 `-- iobroker.mihome-vacuum@4.2.0 `-- canvas@2.11.2
Dazu habe ich folgenden Befehl genutzt:
cd /opt/iobroker sudo npm uninstall canvas
iobroker.inst@3.0.0 /opt/iobroker `-- iobroker.mihome-vacuum@4.2.0 `-- canvas@2.11.2
Adapter neu gestartet: Nach der Bereinigung habe ich den mihome-vacuum Adapter neu gestartet.
Danke nochmals für den entscheidenden Hinweis, Thomas!
-
@kingralph sagte in Karte in VIS mit mihome-vacuum Adapter wird nicht angezeigt:
sudo npm uninstall canvas
Und weiter geht das Gefrickel....
npm wird nicht mit root-Rechten/sudo verwendet. Jedenfalls auf keinen Fall im iobroker-Verzeichnis.
Überhaupt kommt sudo nur in ganz ausgewählten Fällen zum Einsatz.
-
Ich konnte das Problem jetzt lösen, indem ich doppelte Canvas-Installationen entfernt und npm so konfiguriert habe, dass es ohne Root-Rechte funktioniert.
Hier die Schritte, die ich durchgeführt habe:
- Berechtigungen im ioBroker-Verzeichnis ändern:
sudo chown -R ralph:ralph /opt/iobroker
- npm-Konfiguration anpassen, um globale Pakete lokal zu installieren:
mkdir -p ~/.npm-global npm config set prefix '~/.npm-global'
Dann habe ich ~/.profile (oder ~/.bashrc) angepasst und folgende Zeile hinzugefügt:
export PATH=~/.npm-global/bin:$PATH
Danach die Datei neu geladen:
source ~/.profile
- Alte Canvas-Version entfernt und neu installiert:
cd /opt/iobroker npm uninstall canvas npm install canvas
- Überprüfung der Canvas-Installation:
npm ls canvas
Die Ausgabe zeigt jetzt nur noch die korrekte Version:
iobroker.inst@3.0.0 /opt/iobroker `-- iobroker.mihome-vacuum@4.2.0 `-- canvas@2.11.2
Nach diesen Änderungen funktioniert die Kartenanzeige in VIS einwandfrei.
Wäre das so in Ordnung, oder gibt es noch Verbesserungen, die ich beachten sollte?
-
@kingralph sagte in Karte in VIS mit mihome-vacuum Adapter wird nicht angezeigt:
Berechtigungen im ioBroker-Verzeichnis ändern:
Du bist der ungekrönte König der Frickler...
Was reitet dich bitte, rekursiv in /opt/iobroker die Eigentümer zu ändern?
Die Files dort gehören durch die Bank dem user iobroker, das hat auch einen tieferen Sinn...Der Rest von dem Herumgehacke ergibt auch keinen Sinn. Es muss weder die Konfig von npm verbogen werden noch sonst irgendwie da mit globalen Modulen irgendwas gemacht werden.
Wäre das so in Ordnung, oder gibt es noch Verbesserungen, die ich beachten sollte?
Wie wäre es denn einfach den Adapter mihome-vacuum nochmal neuzubauen oder nur neuzuinstallieren? Dann sollte canvas im Zuge dessen automatisch gebaut werden. Ohne solche Harakiri-Aktionen wie da oben.
So funktioniert das nämlich bei allen anderen usern auch... -
Mach den ganzen Murks wieder rückgängig, jag den
iob fix
über das System, schau ob die Pakete
build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
installiert sind und installier den mihome-vacuum ggfls. nochmal neu, evtl. zuvor komplett deinstallieren. -
Ich habe die Berechtigungen im ioBroker-Verzeichnis auf den Benutzer iobroker zurückgesetzt, iob fix ausgeführt (inklusive Neustart und Stoppen der Instanzen), die erforderlichen Systempakete installiert und den mihome-vacuum Adapter neu installiert, damit Canvas automatisch eingebunden wird.
Wäre das so in Ordnung, oder fehlt noch etwas?
-
@kingralph sagte in Karte in VIS mit mihome-vacuum Adapter wird nicht angezeigt:
Wäre das so in Ordnung, oder fehlt noch etwas?
Da ich nicht weiß was du da alles veranstaltet hast kann ich dir das nicht beantworten.
-
Hier eine detaillierte Übersicht über die Schritte, die ich durchgeführt habe:
Berechtigungen wiederhergestellt: Ich habe alle Eigentümerrechte im Verzeichnis /opt/iobroker auf den Benutzer iobroker zurückgesetzt, damit die Standard-Berechtigungen wiederhergestellt sind.
iob fix ausgeführt: Beim Ausführen von iob fix wurde ich dazu aufgefordert, das Boot-Target auf multi-user umzustellen. Nach einem Neustart und dem Stoppen aller ioBroker-Prozesse habe ich iob fix erneut ausgeführt, um sicherzustellen, dass alle Berechtigungen und Konfigurationen korrekt gesetzt sind.
Systempakete installiert: Ich habe die erforderlichen Pakete build-essential, libcairo2-dev, libpango1.0-dev, libjpeg-dev, libgif-dev und librsvg2-dev installiert, wie empfohlen, um sicherzustellen, dass das Canvas-Paket korrekt gebaut werden kann.
mihome-vacuum Adapter neu installiert: Schließlich habe ich den mihome-vacuum Adapter deinstalliert und dann neu installiert, um sicherzustellen, dass Canvas automatisch eingebunden wird und alle Abhängigkeiten korrekt eingerichtet sind.