NEWS
Test Adapter lovelace v1.2.x
-
@erstam
ok, gucke ich mir nochmal an.@janhp said in Test Adapter lovelace v1.2.x:
@Garfonso QQ: Ich habe 2x switch.XXX; allerdings wird 1x das blitz icon als toggle angezeigt und 1x der schalter toggle. Ich würde das gerne einheitlich machen --> beide als schalter. hast du eine idee?
über input.XXX lässt sich der state leider nicht einfärben, weshalb ich den datenpunkt gerne als switch.XXX lassen würde.
Das liegt am Attribut "assumed_state". Im Moment ist das Verhalten so, dass automatisch erstellte Entities assumed_state: false haben (dann kommt der Schalter) und manuell erstellte entities immer assumed_state: true haben, dann kommen die zwei Blitze.
Ich will das noch ändern, bin aber noch nicht so ganz sicher, wie... beim automatischen entity werde ich vermutlich bald einbauen, dass man es zumindest über Bearbeiten des custom-Teil im Objekt-Editor einstellen kann (geht noch nicht).
Bis dahin kannst du halt "einfach" die Erstellung angleichen.@janhp said in Test Adapter lovelace v1.2.x:
Ich habe ein weiteres Problem mit der custom card mini-graph-card
Nachdem ich die js (wie bisher mit anderen custom-cards auch) in die iobroker instanz gezogen habe und den adapter neu gestartet habe... passiert leider nichts. in der raw datei ist der eintrag des modules vorhanden
Hast du nach dem Neustart etwas gewartet? Das Laden der Dateien dauert im Moment irgendwie etwas... da hab ich etwas umgestellt und offensichtlich nicht so optimal gelöst... daher kommt es dazu, wenn das UI angezeigt werden soll, aber der Adapter die Karten noch nicht gelesen hat. Das ist zumindest ein häufiges Problem.
(den modules-Eintrag in der Raw-Datei kannst du löschen, den braucht Lovelace nicht mehr) -
@garfonso said in Test Adapter lovelace v1.2.x:
assumed_state: false
wo genau soll ich assumed_state: false eintragen? nach eintragen nach objekt state+raw hat sich leider nichts verändert.
danke dir schon mal!
-
@janhp
Noch geht das nicht. Wenn dann in einer neuen Version. Wenn das soweit ist, melde ich mich.
Aktuell kriegst du das nur gleich, wenn beides manuell oder automatisch generiert wird. -
Hallo,
ich bin noch recht am Anfang, aber langsam steig ich dahinter. Etwas verstehe ich nicht.....
Ich hab unterschiedliche Darstellung in Chrome und Fully Kiosk Browser. Cache habe ich bei beiden geleert, aber:
Eigentlich will ich die Darstellung wie sie in Chrome ist, so habe ich es auch in der Theme im Skript. Aber in Fully stimmen weder die Farben (Leiste oben) noch wird mein Hintergrund geladen. Mach ich was falsch ob gibt es ein Problem mit Fully (Firefox)?
Chrome:
Fully:
-
@nukleuz said in Test Adapter lovelace v1.2.x:
Hallo zusammen,
ist es möglich einen Datenpunkt, dem sein Inhalt ein Base64 codiertes Bild ist, in Lovelace anzuzeigen?
data:image/jpeg;base64,/9j/2wCEAAsHCAoIBwsKCQoM..................................................................
Wenn nicht, dann bitte ich um Hilfe bei folgender Problemstellung:
Ich möchte nach Bewegungserkennung meiner Reolink-Kamera einen Snapshot machen - das Bild speichern und mir in Lovelace anzeigen lassen. Ich habe das Bild als Base64-Code in einem Datenpunkt und auch als jpg/png im Ordner /home/iobroker/snapshot.jpg liegen.Gebe ich diesen Pfad (/home/iobroker/snapshot.jpg) in der Card -> Picture/Picture Entity an, wird mir nichts angezeigt.
Ich habe auch schon versucht das Bild in /cards/ abzulegen, doch da funktioniert es ebenfalls nicht bzw. es wird mir immer nur das erste gespeicherte Bild angezeigt, aber nie das aktuellste. Datei wird bei Bewegung überschrieben.Also, wo kann ich es ablegen damit es angezeigt wird (vielleicht auch zu einfach oder nur ne Blockade :))?
Wie habt ihr sowas gelöst?Danke für Infos vorab.
Hab grad noch eine Lösung in Discord mit Markdown Card gesehen:
https://cdn.discordapp.com/attachments/767748795102396420/828438285138919424/unknown.png -
Da setzt er mir lediglich den String vom Datempunkt rein - interpretiert es also nicht als Bild.
Vielen Dank für deine Bemühungen.
Ich teste heute Abend erst weiter mit den anderen Vorschlägen - die Arbeit ruft
-
das base64 gedöns geht aber grundsätzlich für die Darstellung im Browser? (Sonst ggf. mal hiermit prüfen: https://base64.guru/converter/decode/image/jpg
)bzw. mal als Test so, ob das Bild überhaupt angezeigt wird:
https://cdn.discordapp.com/attachments/767748795102396420/828424087784128532/unknown.png//Edit:
Ok, ich hatte wohl etwas missverstanden. Bei dem anderen User steht wohl noch mehr HTML im Datenpunkt, versuch es mal so ca.:type: markdown content: '<img src="{0_userdata.0.Kameras.Reoling-Cam-Hof.cam.image}" />'
-
Geilo - das funktioniert 1A.
Vielen Dank für deinen Support!
type: markdown content: '<img src="{0_userdata.0.Kameras.Reolink-Cam-Hof.cam.image}" />' title: Test
-
Hallo,
hab mir grad mit Blockly eine kleine Tabelle für den Birthdays Adapter gebastelt.
Wollte das Blockly nur kurz zu Verfügung stellen.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="(m}dH@gw]g]CrCq4X:^O">Liste</variable> <variable id="^u_U-Az-`mhCz~(F_#oT">text</variable> <variable id="x(8OtWm-n$bsM}t4],DO">i</variable> <variable id="B=:MPlbZ]`U`oQR_H1ZO">obj</variable> <variable id="|9,SdA]rgGmj%K}^fKl*">Alter</variable> <variable id="2xs$M*SFSh^lkODi*Z,g">Name</variable> <variable id=";RHJ=)9w[N*6ii2YVbv#">Tage_bis_Geburtstag</variable> <variable id="[hejW*.Wk;gQUlv)`eJ|">Tag_Monat</variable> <variable id="e}Pk:{7j{A~j7#a%49!f">Geburtsjahr</variable> </variables> <block type="on" id="ubL@LBF!,o_rkk4*V?$c" x="263" y="38"> <field name="OID">birthdays.0.summary.json</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="W?1q7FaV,*wmZaIkPQ*o"> <field name="VAR" id="(m}dH@gw]g]CrCq4X:^O">Liste</field> <value name="VALUE"> <block type="convert_json2object" id="-+dC_oJ;-(a!X+qq3ItL"> <value name="VALUE"> <block type="on_source" id="W9LY54G8%@AW$,Dv.c1;"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="variables_set" id="*Gbs7`LVq2ggdi|-gk1#"> <field name="VAR" id="^u_U-Az-`mhCz~(F_#oT">text</field> <value name="VALUE"> <block type="text" id="D2QaAKbM6V%.nH8G!WO8"> <field name="TEXT"></field> </block> </value> <next> <block type="controls_for" id="VAh4_5skpQ(-58)cTsN5"> <field name="VAR" id="x(8OtWm-n$bsM}t4],DO">i</field> <value name="FROM"> <shadow type="math_number" id="UtEruMTPhi^T~g$#4=X%"> <field name="NUM">1</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="SL!L;!$5LE6b.-i2{-x8"> <field name="NUM">10</field> </shadow> <block type="lists_length" id="IA8x7(aD91K?{^4e{t?p"> <value name="VALUE"> <block type="variables_get" id="Uw=RBKOt~o^7pvz5@?jp"> <field name="VAR" id="(m}dH@gw]g]CrCq4X:^O">Liste</field> </block> </value> </block> </value> <value name="BY"> <shadow type="math_number" id="X?ku5(f{C?`POZ9}Ykn$"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="variables_set" id="?x8p%;#1!zl^M{*-WeD_"> <field name="VAR" id="B=:MPlbZ]`U`oQR_H1ZO">obj</field> <value name="VALUE"> <block type="lists_getIndex" id="!p81u1HNh}swg_ZCMWGd"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="3ETVK*E:VqCH}#kblamq"> <field name="VAR" id="(m}dH@gw]g]CrCq4X:^O">Liste</field> </block> </value> <value name="AT"> <block type="variables_get" id="4ZY9FTQA,JoJx!nEg^nc"> <field name="VAR" id="x(8OtWm-n$bsM}t4],DO">i</field> </block> </value> </block> </value> <next> <block type="variables_set" id="_?!N}.aye8u=,XQ}5rY{"> <field name="VAR" id="|9,SdA]rgGmj%K}^fKl*">Alter</field> <value name="VALUE"> <block type="get_attr" id="V=ixw;0O?aW0sXtNbLyR"> <value name="PATH"> <shadow type="text" id="XE}T12XOKYB-U6A8etD("> <field name="TEXT">age</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Aqx9nyk[/uZhLuG|WKW]"> <field name="VAR" id="B=:MPlbZ]`U`oQR_H1ZO">obj</field> </block> </value> </block> </value> <next> <block type="variables_set" id="C@RzukD_z2Vc[/_q1s4q"> <field name="VAR" id="2xs$M*SFSh^lkODi*Z,g">Name</field> <value name="VALUE"> <block type="get_attr" id="si%nmaEYZ8yF2`)aXAA["> <value name="PATH"> <shadow type="text" id="Vv?R@/OzO]p40i%9sCnd"> <field name="TEXT">name</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Dv389p@`@/Y3}]gx``_e"> <field name="VAR" id="B=:MPlbZ]`U`oQR_H1ZO">obj</field> </block> </value> </block> </value> <next> <block type="variables_set" id=")z0aBTEtrg5l23)8iHRs"> <field name="VAR" id=";RHJ=)9w[N*6ii2YVbv#">Tage_bis_Geburtstag</field> <value name="VALUE"> <block type="get_attr" id="`wPRO=fu4+XJSLOOaSO0"> <value name="PATH"> <shadow type="text" id="%IZ(eKv9iMml(NI-f]5P"> <field name="TEXT">daysLeft</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="3Hno*M89!AaJIE6(3=33"> <field name="VAR" id="B=:MPlbZ]`U`oQR_H1ZO">obj</field> </block> </value> </block> </value> <next> <block type="variables_set" id="J/6:.#/@k1b,K1u(Bpq/"> <field name="VAR" id="[hejW*.Wk;gQUlv)`eJ|">Tag_Monat</field> <value name="VALUE"> <block type="get_attr" id=";tsY?ta87G!Ip{x3uz#T"> <value name="PATH"> <shadow type="text" id="HmVz%-OkrSIKER](18V:"> <field name="TEXT">dateFormat</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Vq9etR=Lc?:t?%0IUjP9"> <field name="VAR" id="B=:MPlbZ]`U`oQR_H1ZO">obj</field> </block> </value> </block> </value> <next> <block type="variables_set" id="$+EHiR+SK#`|(Fs[.{n~"> <field name="VAR" id="e}Pk:{7j{A~j7#a%49!f">Geburtsjahr</field> <value name="VALUE"> <block type="get_attr" id="vr3`]9_k0Ke3+G;BPe0$"> <value name="PATH"> <shadow type="text" id="g}99n.xJZe2a;])BF`jI"> <field name="TEXT">birthYear</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="C?}|MWY(:zJSY(62Q!L-"> <field name="VAR" id="B=:MPlbZ]`U`oQR_H1ZO">obj</field> </block> </value> </block> </value> <next> <block type="variables_set" id=",AX3xaQpP,RI_FeH!Xx|"> <field name="VAR" id="^u_U-Az-`mhCz~(F_#oT">text</field> <value name="VALUE"> <block type="text_join" id="oc7)%`;1Y7hZ,{LSK@n^"> <mutation items="12"></mutation> <value name="ADD0"> <block type="variables_get" id="SjYSlvJOrj+1T]NFWCL0"> <field name="VAR" id="^u_U-Az-`mhCz~(F_#oT">text</field> </block> </value> <value name="ADD1"> <block type="text" id="@UfRgRh#-n,^e{wnY,#$"> <field name="TEXT"><td align=left></field> </block> </value> <value name="ADD2"> <block type="variables_get" id="bJfAhLxPp7#nS|JLsb$2"> <field name="VAR" id="2xs$M*SFSh^lkODi*Z,g">Name</field> </block> </value> <value name="ADD3"> <block type="text" id="SmFyDO|0Dgd0$?eaA`Sg"> <field name="TEXT"></td><td align=left></field> </block> </value> <value name="ADD4"> <block type="variables_get" id=";1!SxOtb)P*,f@2txLG+"> <field name="VAR" id="[hejW*.Wk;gQUlv)`eJ|">Tag_Monat</field> </block> </value> <value name="ADD5"> <block type="text" id="3Q6jnW~yh]:hVCAUBoKb"> <field name="TEXT"></td><td align=left></field> </block> </value> <value name="ADD6"> <block type="variables_get" id="7r#.X6VO;Q,F#?pc,v0W"> <field name="VAR" id="e}Pk:{7j{A~j7#a%49!f">Geburtsjahr</field> </block> </value> <value name="ADD7"> <block type="text" id="+vLQ9vR)6X{N-nzVKvN^"> <field name="TEXT"></td><td align=left></field> </block> </value> <value name="ADD8"> <block type="variables_get" id="A]OKm4e`3x(zLzn6s(QN"> <field name="VAR" id="|9,SdA]rgGmj%K}^fKl*">Alter</field> </block> </value> <value name="ADD9"> <block type="text" id="r~]`+Ui@uG2}fm0!SCcO"> <field name="TEXT"></td><td align=left></field> </block> </value> <value name="ADD10"> <block type="variables_get" id="fIhTLcQB}M=fC^B;!y[3"> <field name="VAR" id=";RHJ=)9w[N*6ii2YVbv#">Tage_bis_Geburtstag</field> </block> </value> <value name="ADD11"> <block type="text" id="0ihN7QSrFrH1sgNZgp;f"> <field name="TEXT"></tr> </field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="update" id="~ezoSMAi3J%e*eL}tsO."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.VIS.Tabellen.Geburtstage</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id=")4[foVL+;!xdhFv($WVn"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="rqH.Tp+,./Gm@C8e99ZY"> <field name="TEXT"><table> <tr> <th width=100 align=left>Name</th> <th width=60 align=left>Datum</th> <th width=60 align=left>Jahr</th> <th width=60 align=left>Alter</th> <th width=60 align=left>In Tagen</th> </tr> <tr> <td colspan="5"><hr></td> </tr> <tr></field> </block> </value> <value name="ADD1"> <block type="variables_get" id="4R$*aP-tIeoXAU7-OHcp"> <field name="VAR" id="^u_U-Az-`mhCz~(F_#oT">text</field> </block> </value> <value name="ADD2"> <block type="text" id="3Nljk,tpV27x(#;V?7mB"> <field name="TEXT"> </table></field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
Im letzten Text erstellen Block findet Ihr im ersten Textbereich mehrnals was von "th width=......", dort könnt Ihr die Spaltenbreiten an eure Bedürfnisse anpassen. Wenn dort nur eine Zahl steht gebt Ihr Pixel an, mit einem % die Spaltenbreite in %.
-
Hallo,
ich fange gerade an mich mit iobroker zu beschäftigen und wollte von meinen ersten Sensoren mal eine VISU bauen. Dabei bin ich über lovelace gestolpert, was mir optisch am Besten gefällt.
Ich habe via git nun Version 1.5 von iobroker lovelace installiert. Dieser 1.2 Thread hier scheint aber der aktuelle zu sein. Habe ich nun eine falsche Version um zu starten? Kann dann jemand noch nen Beginner Guide empfehlen?
Grüße,
Stefan -
Hallo,
mit der 1.5 kannst du gut starten.
Eine gute Anleitung findest du hier im ThreadIn meiner Signatur findest du einen Link zu Beispielen von anderen Usern mit dem entsprechenden Code.
Da kann man sich immer schön was abschauen und bei lernen.Glaube hier der Thread ist auch der aktuellste.
-
Danke David - das ist super. Gibt es einen Tipp, welchen Weg man für die Entitäten gehen sollte?
- Automatische Erzeugung von Entitäten
- Manuelle Zuordnung von Entitäten
- Erzeugung von Entitäten über den Adapter "TODO"
-
@disaster123 said in Test Adapter lovelace v1.2.x:
Automatische Erzeugung von Entitäten
Versuche ich wo es nur geht. Schon alleine, weil manuell nicht immer alle Funktionen klappen (zB dass bei einem Fenster offen/geschlossen steht, anstatt an/aus.)
Zudem habe ich mehrere lovelace Instanzen am laufen, bin zu faul es immer überall zu pflegen.Manuelle Zuordnung von Entitäten
Geht aus meiner Meinung oben hervor ^^
Erzeugung von Entitäten über den Adapter "TODO"
Kenne ich nicht.
-
Super danke. Ich wundere mich warum mein Wetter MultiSensor irgendwie drei verschiedene Entitäten bekommen hat. Sollte es nicht "ein" Device / eine Entität mir mehreren Eigenschaften sein?
-
Die Entitäten sind manuell angelegt, da lassen sich Datenpunkte nicht "kombinieren".
Das geht nur mit der automatischen Erkennung.
Aber nur, wenn lovelace das Gerät (nicht explizit die Marke, sondern den Typ) auch kennt. -
@david-g Hilfe neh ich wollte nichts per Hand anlegen... was hab ich falsch gemacht? Stehe da gerade auf dem Schlauch.
-
@david-g siehe hier:
-
Die Entitäten mit dem blauen Schlüssel sind manuell angelegt.
Mit dem grauen Schlüssel automatisch erkannt.Hier siehst du beide Varianten.
Manuell angelegt hast du die hier:
Wenn die Geräte automatisch erkannt werden, braucht man das da nicht machen.
Die Funktion die du dem Objekt gibst, muss lovelace kennen, dann erkennt er es von selber.
Der Raum ist auch Pflicht.Steht alles sehr schön in dem Leitfaden erklärt.
-
@david-g sagte in Test Adapter lovelace v1.2.x:
Die Entitäten mit dem blauen Schlüssel sind manuell angelegt.
Mit dem grauen Schlüssel automatisch erkannt.OK danke - graue gibt es bei mir gar nicht.
Wenn die Geräte automatisch erkannt werden, braucht man
das da nicht machen.Die Funktion die du dem Objekt gibst, muss lovelace
kennen, dann erkennt er es von selber.
Der Raum ist auch Pflicht.Steht alles sehr schön in dem Leitfaden erklärt.
Das habe ich auch genau wie im Leitfaden gemacht - bilde ich mir ein - scheinbar aber nicht? Ich sehe den Fehler nicht. Als Funktion habe ich Weather genommen - siehe mein Screenshot von vorhin.
-
Du musst noch eine Rolle vergeben, die beschreibt was es für ein Wert ist.
Die Werte können ja alles sein.Der Accuweather-Adapter legt es zb so an
So ist es bei meinem Heizungsthermistat