Openweatermap Icons in Basic UI
-
- Beiträge: 21
- Registriert: 4. Jan 2024 08:48
Openweatermap Icons in Basic UI
Ich möchte gerne die openweathermap icons in meiner Sitemap darstellen und habe dazu folgende Rule gefunden:
import javax.imageio.ImageIO;
import java.io.File;
rule "Weather Condition Icons"
when
Member of OpenWeatherMap_Icon changed
then
if(triggeringItem.state != NULL) {
val cmd = "/etc/openhab/scripts/base642png.sh " + triggeringItem.name.replace("_Icon","").replace("owmCondition_","").toLowerCase + " \"" + triggeringItem.state.toFullString.replace("data:image/png;base64,","") + "\""
//logWarn("DEBUG",cmd)
executeCommandLine(cmd,2000)
}
end
Ich bekomme 3 Fehlermeldungen
"The import 'javax.imageio.ImageIO' is never used"
"The import 'java.io.File' is never used"
executeCommandLine(cmd,2000)
bringt "Type mismatch: cannot convert from int to String"
Was mache ich falsch?
import javax.imageio.ImageIO;
import java.io.File;
rule "Weather Condition Icons"
when
Member of OpenWeatherMap_Icon changed
then
if(triggeringItem.state != NULL) {
val cmd = "/etc/openhab/scripts/base642png.sh " + triggeringItem.name.replace("_Icon","").replace("owmCondition_","").toLowerCase + " \"" + triggeringItem.state.toFullString.replace("data:image/png;base64,","") + "\""
//logWarn("DEBUG",cmd)
executeCommandLine(cmd,2000)
}
end
Ich bekomme 3 Fehlermeldungen
"The import 'javax.imageio.ImageIO' is never used"
"The import 'java.io.File' is never used"
executeCommandLine(cmd,2000)
bringt "Type mismatch: cannot convert from int to String"
Was mache ich falsch?
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openweatermap Icons in Basic UI
Warum?
Nimm einfach ein Image Item und verlinke es direkt mit dem passenden Channel ...#icon. In der Sitemap verwendest Du ebenfalls ein Image Widget
Alternativ kannst Du auch alle Items herunterladen und passend benennen, so dass Du über die Icon ID das passende Icem darstellen kannst.
Nimm einfach ein Image Item und verlinke es direkt mit dem passenden Channel ...#icon. In der Sitemap verwendest Du ebenfalls ein Image Widget
Alternativ kannst Du auch alle Items herunterladen und passend benennen, so dass Du über die Icon ID das passende Icem darstellen kannst.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 21
- Registriert: 4. Jan 2024 08:48
Re: Openweatermap Icons in Basic UI
Weil ich es gerne als Icon bei der Text Wettermeldung stehen haben möchte.
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Openweatermap Icons in Basic UI
Wo hast du denn die Regel gefunden ? Ich habe auf die Schnelle nur hier etwas dazu finden können. Da hab ich aber nichts von "Importen" gesehen.
Hast du auch das dazugehörige Bash-Script installiert und evtl. das Imagepack, nicht zu vergessen, die entsprechenden Items ?
Die Fehlermeldung "Type mismatch: cannot convert from int to String" deutet auch darauf hin, dass die Umwandlung nicht geklappt hat.
Hast du auch das dazugehörige Bash-Script installiert und evtl. das Imagepack, nicht zu vergessen, die entsprechenden Items ?
Die Fehlermeldung "Type mismatch: cannot convert from int to String" deutet auch darauf hin, dass die Umwandlung nicht geklappt hat.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 21
- Registriert: 4. Jan 2024 08:48
Re: Openweatermap Icons in Basic UI
https://community.openhab.org/t/openwea ... emap/65298
Vielleich habe ich auch das Bash-Script falsch installiert.
Wo mache ich das genau?
Vielleich habe ich auch das Bash-Script falsch installiert.
Wo mache ich das genau?
-
- Beiträge: 20
- Registriert: 25. Dez 2020 18:24
Re: Openweatermap Icons in Basic UI
Hallo,
Das ist kein Fehler, sondern nur der Hinweis, dass Du Dir den Import der Bibliothek sparen kannst.
https://www.openhab.org/docs/configurat ... ec-actions
Keine dieser 3 Möglichkeiten passt auf die Syntax in Deiner Rule. So, wie du es angegeben hast, müsste in der Variablen cmd ein Timeout-Wert in Sekunden (also eine Zahl) stehen und die 2000 ist der Shell-Befehl, welcher ausgeführt werden soll. Der interpreter erkennt die 2000 als Integer und versucht sie zu einem String (dem Shell-Befehl) zu konvertieren. Das führt zu der Fehlermeldung "cannot convert from int to String".
Die Bibliothek wird von keinem der Befehle in Deiner Rule verwendet.
Das ist kein Fehler, sondern nur der Hinweis, dass Du Dir den Import der Bibliothek sparen kannst.
Die Bibliothek wird von keinem der Befehle in Deiner Rule verwendet.
Für den Befehl executeCommandLine gibt es 3 verschiedene Möglichkeiten, wie man ihn aufruft:
https://www.openhab.org/docs/configurat ... ec-actions
Keine dieser 3 Möglichkeiten passt auf die Syntax in Deiner Rule. So, wie du es angegeben hast, müsste in der Variablen cmd ein Timeout-Wert in Sekunden (also eine Zahl) stehen und die 2000 ist der Shell-Befehl, welcher ausgeführt werden soll. Der interpreter erkennt die 2000 als Integer und versucht sie zu einem String (dem Shell-Befehl) zu konvertieren. Das führt zu der Fehlermeldung "cannot convert from int to String".
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Openweatermap Icons in Basic UI
Das Script sollte hier liegen. Zumindest wird es von dort aus in der Rule aufgerufen. Das Script sollte natürlich auch ausführbar sein und dem User "openhab" gehören(normalerweise). Die passenden Items und natürlich das openweathermap-Binding(bzw. Onecall) hast du auch angelegt.
Es könnte auch sein, das die "Schreibweise" von "executeCommandline" nicht mehr aktuell ist. Schau mal hier.
Ich hab diesen "Moloch" nicht mehr installiert, da es aus meiner Sicht sehr ressourcenfressend ist.
Code: Alles auswählen
id 802
main "Clouds"
description "Mäßig bewölkt"
icon "03n"
daily
0
dt 1704884400
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 21
- Registriert: 4. Jan 2024 08:48
Re: Openweatermap Icons in Basic UI
das script base642png.sh
liegt im Unterverzeichnis scripts
und sieht so aus:
#!/bin/sh
/bin/echo "$2" | base64 -d > /etc/openhab/icons/classic/$1.png
liegt im Unterverzeichnis scripts
und sieht so aus:
#!/bin/sh
/bin/echo "$2" | base64 -d > /etc/openhab/icons/classic/$1.png
-
- Beiträge: 21
- Registriert: 4. Jan 2024 08:48
Re: Openweatermap Icons in Basic UI
das script base642png.sh
liegt im Unterverzeichnis scripts
und sieht so aus:
#!/bin/sh
/bin/echo "$2" | base64 -d > /etc/openhab/icons/classic/$1.png
liegt im Unterverzeichnis scripts
und sieht so aus:
#!/bin/sh
/bin/echo "$2" | base64 -d > /etc/openhab/icons/classic/$1.png
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Openweatermap Icons in Basic UI
Das Script liegt wohl im richtigen Ordner, dann muss es wohl an den Umgebungsvariablen und/oder an der "Action" (executeCommandLine) liegen. Ich habe leider keine Möglichkeiten, das bei mir zu testen.
Vielleicht findest du im internationalen Forum einen Ansatz.
Vielleicht findest du im internationalen Forum einen Ansatz.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian