NEWS
Unterschiedliche Darstellung in Vis.app und Browser
-
Hi,
ich habe mal wieder ein Problem und hoffe auf eure Hilfe!
Folgendes Szenario: Ich möchte mir den Batteriestand meiner einzelnen HM-Geräte in Vis als Bild darstellen, diese Bilder wähle ich dynamisch in einem Script aus, speichere die Pfade in einer Variable zwischen und füge sie als Binding in der Bildquelle ein. Im Browser am PC und Tablet wird alles richtig angezeigt, in der App jedoch nicht.
Hier die Details:
Script:
createState('Batterie_Status.Status_Thermostat_GaesteWC', { def: '/vis.0/Wandtablet/img/images/battery/default.png', type: 'string', name: 'Batterie GästeWC', desc: 'Batterielevel Thermostat GästeWC' }); var idimg = "javascript.0.Batterie_Status.Status_Thermostat_GaesteWC"; on("hm-rpc.0.MEQXXXXXXX.4.BATTERY_STATE"/*Thermostat.Gaeste.WC.MEQXXXXXX:4.BATTERY_STATE*/, function (data) { var level = data.state.val; var image = ''; if (level <= 1) image = '/vis.0/Wandtablet/img/images/battery/state_09.png'; if (level > 1 && level <= 1.7) image = '/vis.0/Wandtablet/img/images/battery/state_1.png'; if (level > 1.7 && level <= 2.5) image = '/vis.0/Wandtablet/img/images/battery/state_17.png'; if (level > 2.5) image = '/vis.0/Wandtablet/img/images/battery/state_25.png'; // log(dynbreite); setState(idimg, image); });
Die Bilder:
Und die Einbindung mache ich so:
Mit verschiedenen Darstellungen in Browser bzw. Vis.app.
Hier die Darstellung im Browser:
Und hier die in der App:
Es scheint als würde er den Bildpfad nicht finden. Vielleicht kann mir ja jemand auf die Sprünge helfen ob es am Script, Bild oder evtl. an der Art der Einbindung liegt.
Vielen Dank schonmal
Peoples
-
Ich habe dazu schon mal was gelesen:
Hallo pit1980,
Bei der Android-App liegen die Dateien lokal. Da du die Bilder nur mit javascript aufrufst wurden sie auch beim synchronisieren nicht auf das Gerät geladen bzw. die Links nicht angepasst.
Damit der aktuelle javascript Code so läuft müsstest du den Server in der url mit angeben. `
Das hab ich von hier: http://forum.iobroker.net/viewtopic.php … app#p60325
Vielleicht hilft dir das weiter!
Enrico
-
Hallo zusammen,
es gab früher mal Vorgaben in welches Verzeichnis eigene Bilder hochgeladen werden müssen, damit sie in der vis-app dargestellt werden.
Bluefox hatte da noch etwas geändert und IMHO durften die Bilder überall liegen.
Habe es jetzt mal erneut getestet.
Bilder, die unter````
/vis.0/main/img/Ich habe die Bilder z.B. unter
/vis.0/Testordner/img/Tanken/Logo_Freie_Tanken.png
also ein Pfad ähnlich deinem. Diese werden nicht dargestellt. ich fürchte es liegt an der Ordnerstruktur, nach```` /vis.0/ ````kommt hier der Projektname. Bei mir ist das Projekt trotzdem "main" Ist bei dir das Projekt "Wandtablet" ausgewählt? Gruß Rainer
-
Danke für den Tipp, ich habe gerade die Bilder als IMG mit auf die Seite gepackt um sicher zu gehen dass diese mit geladen werden.
Die statische Anzeige funktioniert, jedoch die dynamische trotzdem nicht.
Werde mal versuchen den kompletten Pfad zu hinterlegen.
@ Rainer
Ja das ausgewählte Projekt ist Wandtablet.
Ich überlege jetzt die ganzen Bilder in den Standardordner zu packen, das ist jedoch ne mortz Arbeit und nimmt irgendwie die Strucktur.
Zudem werden eigentlich alle Bilder bis auf den Batteriestatus richtig angezeigt (zumindest bis gerade eben jetzt fehlen noch mehr).
Werde mal testen wenn ich die dynamischen wieder raus nehme ob die statischen dann wieder da sind.
-
So, habe einen Workaround benutzt der wie folgt aussieht:
Das geänderte Script:
/* createState('Batterie_Status.Status_Thermostat_GaesteWC', { def: 0, type: 'number', name: 'Batterie GästeWC', desc: 'Batterielevel Thermostat GästeWC' }); */ var idimg = "javascript.0.Batterie_Status.Status_Thermostat_GaesteWC"; on("hm-rpc.0.MEQ1550820.4.BATTERY_STATE"/*Thermostat.Gaeste.WC.MEQ1550820:4.BATTERY_STATE*/, function (data) { var level = data.state.val; var image = ''; if (level <= 1) image = 1; if (level > 1 && level <= 1.7) image = 2; if (level > 1.7 && level <= 2.5) image = 3; if (level > 2.5) image = 4; // log(dynbreite); setState(idimg, image); });
Für die Darstellung benutze ich ein "image 8" welches seinen Status aus der JavaScript Variablen bezieht.
Dann funktionierts
Gruß
Peoples
-
Wenn das Projekt Wandtablet heisst und auch so in der Konfiguration eingetragen ist, muss ich das mal versuchen nachzustellen.
Bisher arbeite ich nur mit main.
Es hat hier im Forum bereits einen Beitrag gegeben, dass sich anscheinend die Zusammensetzung der Adresse beim Aufruf von Views bei Projekten von der Ordnerstruktur unterscheidet.
Dann muss @Bluefox da mal nachsehen.
Gruß
Rainer