znázornění AKU nádrže - gradietní vybarvení dle teplot

Nevíte kam vložit svůj příspěvek? Vložte jej sem, najdeme pro něj to správné místo.
Odpovědět
ringo
Aktivní autor
Aktivní autor
Příspěvky: 71
Registrován: 31. říjen 2021, 20:03
Dal poděkování: 4 poděkování
Dostal poděkování: 4 poděkování

znázornění AKU nádrže - gradietní vybarvení dle teplot

Příspěvek od ringo »

Kdysi jsem na SDS micro vytvořit ovládní tepelného čerpadla, kdy v HTML stránce v obrázku vytvořeném pomocí SVG se mi dařilo zobrazit nahřátí aku nádrže vybarvením pomocí barevného gradientu závislého na teplotách v jednotlivých úrovní nádrže (použití <rect fill="url(#grad1)" x="8.0" y="7.1" width="4.1" height="11.4" rx="2" ry="1"/> a ve style byl nadefinován tento gradient)
gradient_sds.JPG
Nyní se pokouším přenést toto ovádání do HA (abych na to navázal další automatizace a neměl ovládání na více místech) ale to vybarvení mě vůbec nenapadá jak realizovat.
Samozřejmě se tam dá načíst i původní WWW stránka, ale to nefunguje pro vzdálené připojení a a nedoplním tam ovládací prvky pro HA.
Takto to mám v HA zatím nyní :
gradient_ha.JPG
Nemáte prosím někdo tip jak na to a jestli vůbec něco takového lze realizovat přímo v Lovelace?

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1395
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 134 poděkování
Dostal poděkování: 154 poděkování
Kontaktovat uživatele:

Re: znázornění AKU nádrže - gradietní vybarvení dle teplot

Příspěvek od Lion® »

předpokládám, že budeš potřebovat tolik obrázků nádrže kolik si představuješ vizuálních výsledků a podle teplot je obměňovat
nevím o kartě která by to dokázala jinak
ale třeba se pletu
https://www.home-assistant.io/dashboard ... -elements/
________________
🍻 Přispět?
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

bimbop
Pokročilý
Pokročilý
Příspěvky: 157
Registrován: 22. srpen 2022, 15:46
Bydliště: Frýdlant nad Ostravicí
Dal poděkování: 32 poděkování
Dostal poděkování: 1 poděkování

Re: znázornění AKU nádrže - gradietní vybarvení dle teplot

Příspěvek od bimbop »

Zkusil bych Floor plan. Ještě tady https://community.home-assistant.io/t/c ... s/375604/4 něco řešili.

ringo
Aktivní autor
Aktivní autor
Příspěvky: 71
Registrován: 31. říjen 2021, 20:03
Dal poděkování: 4 poděkování
Dostal poděkování: 4 poděkování

Re: znázornění AKU nádrže - gradietní vybarvení dle teplot

Příspěvek od ringo »

Bingo, nakonec se mi podařílo najít jak na to - doplněno do karty picture-element za použití addonu https://github.com/thomasloven/lovelace-card-mod. V kartě jako první element přidám obrázek a ten je pak dalšími elementy přepisován. Jako obrázek jsem použil malinky obdélník v levém horním rohu vytvořený v Inkscape-takže spíše ten obrázek je jen prázdná stránka.
No a pak na to použiji následující kód:

Kód: Vybrat vše

type: picture-elements
elements:
  - type: image
    entity: pokus
    image: /local/obdelnikredmini.svg
    card_mod:
      style: |
        :host {
          background: linear-gradient(to top, rgb({{states("sensor.sds_zas1_f")|int*5}},0,255),rgb({{states("sensor.sds_zas2_f")|int*5}},0,0),..,rgb({{states("sensor.sds_zas5_f")|int*5}},0,0));
          width: 6%;
          top: 59%;
          left:47%;
          height: 50%;
          }
........
A dostanu toto (ta zelená uprostřed je tam vnucena ručně pro kontrolu)
gradient_card_mod.JPG
Nyní tam mám zkušebně pro každý senzor teplot vytvořen text "rgb({{states("sensor.sds_zas1_f")|int*5}},0,255)" ale v praxi by to mělo být ve tvaru RGB(fce1(teplota),0,fce2(teplota)) - tj barvu skládat z intenzity červené a modré, kde mám již z drívějška vytvořenu funkci která vrací řetězec "RGB(R,0,B)" kdy to R a G jsou konkrétní čísla v závislostě na teplotě do funkce vstupující:

Kód: Vybrat vše

function temptoRGB(intemper){
	var jrrgb;
	if (intemper<20) {jrrgb="(0,0,255)";
			} else { if (intemper<37) {jrrgb="("+((intemper-20)*255/(37-20)).toFixed()+",0,255)";
		                                 } else { if (intemper<55) {jrrgb="(255,0,"+(255-(intemper-37)*255/(55-37)).toFixed()+")";
								  } else { if (intemper>=55) {jrrgb="(255,0,0)";}}}} 
	return jrrgb;}
No a to bych potřeboval nějak dostat do toho kódu du nahoře či vyřešit v HA nějak jinak - a tady jsem zase s tou syntaxi v koncích ;-) Naťukněte mě zase někdo prosím ? :idea:

Odpovědět

Zpět na „Nová nezařazená témata“