Seite 1 von 3
Openweatermap Icons in Basic UI
Verfasst: 9. Jan 2024 10:28
von papet
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?
Re: Openweatermap Icons in Basic UI
Verfasst: 9. Jan 2024 19:37
von udo1toni
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.
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 11:23
von papet
Weil ich es gerne als Icon bei der Text Wettermeldung stehen haben möchte.
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 13:53
von peter-pan
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.
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 16:33
von papet
https://community.openhab.org/t/openwea ... emap/65298
Vielleich habe ich auch das Bash-Script falsch installiert.
Wo mache ich das genau?
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 17:52
von tomtom97
Hallo,
papet hat geschrieben: ↑9. Jan 2024 10:28
Ich bekomme 3 Fehlermeldungen
"The import 'javax.imageio.ImageIO' is never used"
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.
papet hat geschrieben: ↑9. Jan 2024 10:28
"The import 'java.io.File' is never used"
Die Bibliothek wird von keinem der Befehle in Deiner Rule verwendet.
papet hat geschrieben: ↑9. Jan 2024 10:28
executeCommandLine(cmd,2000)
bringt "Type mismatch: cannot convert from int to String"
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".
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 18:01
von peter-pan
papet hat geschrieben: ↑9. Jan 2024 10:28
/etc/openhab/scripts/
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
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 18:29
von papet
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
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 18:29
von papet
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
Re: Openweatermap Icons in Basic UI
Verfasst: 10. Jan 2024 21:14
von peter-pan
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.