NEWS
Test Adapter lovelace v1.2.x
-
@xbit
Ok, mit aktuelle git version (also jetzt gerade ;-) ) sollte history hoffentlich wieder gehen. -
@xbit
Ok, mit aktuelle git version (also jetzt gerade ;-) ) sollte history hoffentlich wieder gehen. -
Kannst du mir zufÀllig sagen wie ich die "Map" Card dazu bekomme aus google-sharedlocations den Standort anzuzeigen?
Es scheitert schon an der EntitÀt da ja Lat. und Log. getrennte Datenpunkte sind. -
Kannst du mir zufÀllig sagen wie ich die "Map" Card dazu bekomme aus google-sharedlocations den Standort anzuzeigen?
Es scheitert schon an der EntitÀt da ja Lat. und Log. getrennte Datenpunkte sind.@xbit said in Test Adapter lovelace v1.2.x:
Lat. und Log. getrennte Datenpunkte sind
Ja, aber dafĂŒr gibt es ein passendes GerĂ€t. Gibt quasi zwei verscheidene gps-location GerĂ€te im ioBroker, entweder in einem Datenpunkt oder getrennt.
Ich hab zwar auch dafĂŒr alias angelegt, aber gerade getestet -> einfach einem User Raum & Funktion zugewiesen und es kam das entity mit lat, long & accuracy. :-)
-
@xbit said in Test Adapter lovelace v1.2.x:
Lat. und Log. getrennte Datenpunkte sind
Ja, aber dafĂŒr gibt es ein passendes GerĂ€t. Gibt quasi zwei verscheidene gps-location GerĂ€te im ioBroker, entweder in einem Datenpunkt oder getrennt.
Ich hab zwar auch dafĂŒr alias angelegt, aber gerade getestet -> einfach einem User Raum & Funktion zugewiesen und es kam das entity mit lat, long & accuracy. :-)
-
@idlebit
Staubsauger ist noch nicht unterstĂŒtzt, i.e. fehlt noch im Adapter. Hast du denn im ioBroker ein "Staubsauger"-GerĂ€t? Irgendwie hatte ich, als ich mal geguckt hab, nicht so richtig verstanden, was da die einzelnen States machen und hab's dann erstmal zurĂŒckgestellt. Da wĂ€re ein bisschen Input ganz gut.Im Grunde ist die Aufgabe, das und das ĂŒbereinander zu bekommen. :-) Irgendwo war ich da gestolpert beim letzten Versuch und hab meinen Staubsauger (ist aber auch Ă€lter) auch nicht so richtig in das ioBroker-Modell bekommen.
-
Nachdem ich die Tankerkönig Card nicht ans laufen gebracht habe, habe ich mich daran gesetzt die Tankerkönigkarten fĂŒr die Markdown Card aufzubereiten. Mein erster Entwurf ist das hier:

Wer das bereits nutzen möchte, kann den folgenden JS Code als Script anlegen.
// Tankerkönig createState('javascript.0.Lovelace.Tankerkoenig', { name: 'Tankerkönig - HTML', type: 'string', read: true, write: true}); function f_tankerkoenig(val) { let html = ''; let farbe_status = ''; const name = getState('tankerkoenig.0.stations.'+val+'.name').val; const status = getState('tankerkoenig.0.stations.'+val+'.status').val; const e5 = getState('tankerkoenig.0.stations.'+val+'.e5.feed').val; const e10 = getState('tankerkoenig.0.stations.'+val+'.e10.feed').val; const diesel = getState('tankerkoenig.0.stations.'+val+'.diesel.feed').val; if (status == 'open') { farbe_status = '#00FF00'; } else { farbe_status = '#FF0000'; } html = ['<tr><td>',name,'</td><td align=center><font size="3" color=',farbe_status,'>â</font></td><td align=center>',e5,'€</td><td align=center>',e10,'€</td><td align=center>',diesel,'€</td></tr>'].join(''); return html; } schedule("*/1 * * * *", async function () { let htmlStr = ''; let stations = 6; htmlStr = ['<table width="100%"><tr><th align=left>Tankstelle</th><th align=center>Status</th><th align=center>E5</th><th align=center>E10</th><th align=center>Diesel</th><tr><td colspan="5"><hr></td></tr><tr>'].join(''); for (let j = 0; j< stations ; j++) { htmlStr = htmlStr + f_tankerkoenig([j]); } htmlStr = htmlStr + ['</table>'].join(''); setState('javascript.0.Lovelace.Tankerkoenig', htmlStr, true); });Je nach Anzahl der Tankstellen die man anzeigen möchte, muss man die Variable in Zeile 21 (stations) anpassen. Dabei muss man berĂŒcksichtigen, dass bei 0 gestartet wird. Beispiel: Ich möchte 7 Tankstellen anzeigt bekommen, also trage ich dort 6 ein.
AuĂerdem sollte das Objekt nach der eigenen Vorstellung angepasst werden (Zeile 2 und 27). -
@idlebit
Staubsauger ist noch nicht unterstĂŒtzt, i.e. fehlt noch im Adapter. Hast du denn im ioBroker ein "Staubsauger"-GerĂ€t? Irgendwie hatte ich, als ich mal geguckt hab, nicht so richtig verstanden, was da die einzelnen States machen und hab's dann erstmal zurĂŒckgestellt. Da wĂ€re ein bisschen Input ganz gut.Im Grunde ist die Aufgabe, das und das ĂŒbereinander zu bekommen. :-) Irgendwo war ich da gestolpert beim letzten Versuch und hab meinen Staubsauger (ist aber auch Ă€lter) auch nicht so richtig in das ioBroker-Modell bekommen.
-
Nachdem ich die Tankerkönig Card nicht ans laufen gebracht habe, habe ich mich daran gesetzt die Tankerkönigkarten fĂŒr die Markdown Card aufzubereiten. Mein erster Entwurf ist das hier:

Wer das bereits nutzen möchte, kann den folgenden JS Code als Script anlegen.
// Tankerkönig createState('javascript.0.Lovelace.Tankerkoenig', { name: 'Tankerkönig - HTML', type: 'string', read: true, write: true}); function f_tankerkoenig(val) { let html = ''; let farbe_status = ''; const name = getState('tankerkoenig.0.stations.'+val+'.name').val; const status = getState('tankerkoenig.0.stations.'+val+'.status').val; const e5 = getState('tankerkoenig.0.stations.'+val+'.e5.feed').val; const e10 = getState('tankerkoenig.0.stations.'+val+'.e10.feed').val; const diesel = getState('tankerkoenig.0.stations.'+val+'.diesel.feed').val; if (status == 'open') { farbe_status = '#00FF00'; } else { farbe_status = '#FF0000'; } html = ['<tr><td>',name,'</td><td align=center><font size="3" color=',farbe_status,'>â</font></td><td align=center>',e5,'€</td><td align=center>',e10,'€</td><td align=center>',diesel,'€</td></tr>'].join(''); return html; } schedule("*/1 * * * *", async function () { let htmlStr = ''; let stations = 6; htmlStr = ['<table width="100%"><tr><th align=left>Tankstelle</th><th align=center>Status</th><th align=center>E5</th><th align=center>E10</th><th align=center>Diesel</th><tr><td colspan="5"><hr></td></tr><tr>'].join(''); for (let j = 0; j< stations ; j++) { htmlStr = htmlStr + f_tankerkoenig([j]); } htmlStr = htmlStr + ['</table>'].join(''); setState('javascript.0.Lovelace.Tankerkoenig', htmlStr, true); });Je nach Anzahl der Tankstellen die man anzeigen möchte, muss man die Variable in Zeile 21 (stations) anpassen. Dabei muss man berĂŒcksichtigen, dass bei 0 gestartet wird. Beispiel: Ich möchte 7 Tankstellen anzeigt bekommen, also trage ich dort 6 ein.
AuĂerdem sollte das Objekt nach der eigenen Vorstellung angepasst werden (Zeile 2 und 27).@dontobi danke fĂŒr dein Scipt, ich war so frei und habe es Event basierend umgebaut.
#Edit musste noch mal nachbessern ;)
// Tankerkönig const dp_HTMLString= '0_userdata.0.VIS.Tankerkoenig'; const dataStore = {}; createState(dp_HTMLString, { name: 'Tankerkönig - HTML', type: 'string', read: true, write: true}); $('tankerkoenig.0.stations.*.station_id]').each((id)=>{ if (!id.includes('cheapest') && existsState(id)){ const stationID = getState(id).val const nameID = id.replace('.station_id', '.name'); dataStore[stationID] = { name: getState(nameID).val } } }); let jsonData = JSON.parse(getState('tankerkoenig.0.json').val); on({id: 'tankerkoenig.0.json', change: 'ne'}, (obj)=>{ jsonData = JSON.parse(obj.state.val); mapData(); createHTML(); }); mapData(); createHTML(); function mapData(){ for(const stationID of Object.keys(jsonData.prices)){ const price = jsonData.prices[stationID]; dataStore[stationID].status = price.status == 'open'; dataStore[stationID].e5 = Math.round(price.e5 * 100) / 100; dataStore[stationID].e10 = Math.round(price.e10 * 100) / 100; dataStore[stationID].diesel = Math.round(price.diesel * 100) / 100; } } function createHTML(){ let html = '<table width="100%"><tr><th align=left>Tankstelle</th><th align=center>Status</th><th align=center>E5</th><th align=center>E10</th><th align=center>Diesel</th><tr><td colspan="5"><hr></td></tr><tr>'; for (const mainID in dataStore){ const station = dataStore[mainID]; const farbe_status = station.status ? '#00FF00':'#FF0000'; html += `<tr><td> ${station.name}</td><td align=center><font size="3" color=${farbe_status}>â</font></td><td align=center>${station.e5.toFixed(2)}€</td><td align=center>${station.e10.toFixed(2)}€</td><td align=center>${station.diesel.toFixed(2)}€</td></tr>`; } html += `</table>`; setState(dp_HTMLString, html, true); } -
ich habe mal eine generelle Frage, wobei ich mir nicht sicher bin, ob es an lovelace liegt:
Ich habe das Problem, dass sich einige cards nach einiger zeit inaktivitĂ€t nciht mehr aktualisieren bzw. buttons etc. nicht mehr funktionieren. Ich fĂŒhre das auf eine abgelaufene session (?) zurĂŒck.,,,
Beispiel: ich nutze hauptsÀchlich mein iphone (safari) um auf lovelace zuzugreifen. Wenn ich das handy sperre und nach2 Stunden die OberflÀche wieder öffne (tab bzw. safari wurde nicht geschlossen), dann funktioniert die interaktion nicht mehr - ich muss dann safari beenden und die seite neu laden.
Wenn ich mir jetzt vorstelle ein tablet an die wand zu hÀngen wÀre das u.U. ein problem, weil die OberflÀche einfach immer funktionieren soll.Womit kann das zusammenhÀngen und kann ich das irgendwie abfangen?
danke
-
ich habe mal eine generelle Frage, wobei ich mir nicht sicher bin, ob es an lovelace liegt:
Ich habe das Problem, dass sich einige cards nach einiger zeit inaktivitĂ€t nciht mehr aktualisieren bzw. buttons etc. nicht mehr funktionieren. Ich fĂŒhre das auf eine abgelaufene session (?) zurĂŒck.,,,
Beispiel: ich nutze hauptsÀchlich mein iphone (safari) um auf lovelace zuzugreifen. Wenn ich das handy sperre und nach2 Stunden die OberflÀche wieder öffne (tab bzw. safari wurde nicht geschlossen), dann funktioniert die interaktion nicht mehr - ich muss dann safari beenden und die seite neu laden.
Wenn ich mir jetzt vorstelle ein tablet an die wand zu hÀngen wÀre das u.U. ein problem, weil die OberflÀche einfach immer funktionieren soll.Womit kann das zusammenhÀngen und kann ich das irgendwie abfangen?
danke
Hey,
unter Android habe ich das noch nicht beobachtet.
Ein Gedanke den ich habe. Apple legt das wlan ja komplett auf Eis, wenn das GerÀt was aus ist. Evtl geht es dann nach einem neuverbinden nicht.
Was macht er denn, wenn du Safari verlÀsst und das GerÀt irgendwie 2h aktiv lassen könntest (einfach einen Film auf Youtube, Netflix abspielen) etc) und dann wieder in den Browser gehst?
-
ich habe mal eine generelle Frage, wobei ich mir nicht sicher bin, ob es an lovelace liegt:
Ich habe das Problem, dass sich einige cards nach einiger zeit inaktivitĂ€t nciht mehr aktualisieren bzw. buttons etc. nicht mehr funktionieren. Ich fĂŒhre das auf eine abgelaufene session (?) zurĂŒck.,,,
Beispiel: ich nutze hauptsÀchlich mein iphone (safari) um auf lovelace zuzugreifen. Wenn ich das handy sperre und nach2 Stunden die OberflÀche wieder öffne (tab bzw. safari wurde nicht geschlossen), dann funktioniert die interaktion nicht mehr - ich muss dann safari beenden und die seite neu laden.
Wenn ich mir jetzt vorstelle ein tablet an die wand zu hÀngen wÀre das u.U. ein problem, weil die OberflÀche einfach immer funktionieren soll.Womit kann das zusammenhÀngen und kann ich das irgendwie abfangen?
danke
-
@gyle ja das liegt an Lovelace, in der aktuellen Git Version ist schon auf das neue Lovelace aktualisiert worden, da lÀuft es schon um einiges besser.
-
Hi zusammen,
ich habe ein Frage zur Karte SchaltflÀche.
Ich habe eine SchaltflÀche, die meine Poolpumpe mittels eines Shellys steuert.
Soweit alles klein Problem.
Allerdings Ă€ndert sich des Icon nicht, wenn ich schalte, lediglich der angezeigte Zustand Ă€ndert sich. Ist es möglich, ohne auf eine andere Karte umzusteigen, eine Ănderung auf der SchaltflĂ€che zu erzeugen?Alternativ wĂŒrde ich versuchen, es mit der custom button card zu realisieren, aber ich weiĂ nicht, wie der Code aussehen muss. Ich habe mir bisher folgendes zusammengesucht:
type: custom:button-card tap_action: action: toggle icon: mdi:toggle-switch-off entity: switch.Filterpumpe name: Custom Filterpumpe show_state: true state: - value: 'true' icon: mdi:toggle-switch - value: 'false' icon: mdi:toggle-switch-offDas klappt aber auch nicht... :confounded:
FĂŒr eure Hilfe wĂ€re ic sehr dankbar!
Danke -
Hi zusammen,
ich habe ein Frage zur Karte SchaltflÀche.
Ich habe eine SchaltflÀche, die meine Poolpumpe mittels eines Shellys steuert.
Soweit alles klein Problem.
Allerdings Ă€ndert sich des Icon nicht, wenn ich schalte, lediglich der angezeigte Zustand Ă€ndert sich. Ist es möglich, ohne auf eine andere Karte umzusteigen, eine Ănderung auf der SchaltflĂ€che zu erzeugen?Alternativ wĂŒrde ich versuchen, es mit der custom button card zu realisieren, aber ich weiĂ nicht, wie der Code aussehen muss. Ich habe mir bisher folgendes zusammengesucht:
type: custom:button-card tap_action: action: toggle icon: mdi:toggle-switch-off entity: switch.Filterpumpe name: Custom Filterpumpe show_state: true state: - value: 'true' icon: mdi:toggle-switch - value: 'false' icon: mdi:toggle-switch-offDas klappt aber auch nicht... :confounded:
FĂŒr eure Hilfe wĂ€re ic sehr dankbar!
Danke -
Hast du ein individuelles Theme im Einsatz?
Falls ja, sind da ggf. keine unterschiedlichen Farben hinterlegt. -
@david-g
Danke. Ja, ist ein individuelles Theme.
Ich möchte ja nicht, dass sich die Farben verÀndern, sondern das gesamte Icon.
Schalter aus: icon: mdi:toggle-switch-off
Schalter ein: icon: mdi:toggle-switchDa hab ich nicht richtig gelesen .......
Habe es eben mal probiert und auch nicht hinbekommen.Das wÀre ein Workarround:
type: picture-entity entity: switch.Antrieb_Garage show_name: false show_state: false tap_action: action: toggle state_image: 'on': /cards/garage_auf.png 'off': /cards/garage_auf.pngDer Nachteil ist, dass man Bilder nehmen muss. Die mdi Icons klappen da nicht. Evtl bekommt man es Àhnlich hin, wenn man sich die Icons als Bild mit transpatentem Hintergrund abspeichert.
Die Bilder mĂŒssen in den Instanzeinstellungen hochgeladen werden. -
Hat jemand eine Idee, wie ich eine Klimaanlage, die die Modis und on/off auf eigenen Datenpunkten hat, sauber in lovelace reinbekomme? Wenn ich das JS richtig interpretiere, so wird aktuell nur einer von beiden Datenpunkten unterstĂŒtzt. Die Modes klappen sauber. Ein/Aus bekomme ich aber leider nicht in die Lovelace Card rein :-(
Die Klimaanlage wird ĂŒber den Tuya Adapter gesteuert. Anbei ein Screenshot der Datenpunkte.

-
Da hab ich nicht richtig gelesen .......
Habe es eben mal probiert und auch nicht hinbekommen.Das wÀre ein Workarround:
type: picture-entity entity: switch.Antrieb_Garage show_name: false show_state: false tap_action: action: toggle state_image: 'on': /cards/garage_auf.png 'off': /cards/garage_auf.pngDer Nachteil ist, dass man Bilder nehmen muss. Die mdi Icons klappen da nicht. Evtl bekommt man es Àhnlich hin, wenn man sich die Icons als Bild mit transpatentem Hintergrund abspeichert.
Die Bilder mĂŒssen in den Instanzeinstellungen hochgeladen werden.@david-g #
Danke fĂŒr deinen Workaround.
Ich habe es nun so hinbekommen:
type: custom:button-card tap_action: action: toggle entity: switch.Filterpumpe name: Custom Filterpumpe NEU show_state: true state: - value: 'on' icon: mdi:toggle-switch-outline - value: 'off' icon: mdi:toggle-switch-off-outline
