NEWS
Test Adapter lovelace v1.2.x
-
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
-
@david-g sagte in Test Adapter lovelace v1.2.x:
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
Das klingt total sinnvoll - aber geht nicht... es wird mir in dem Feld kein value.temperature angeboten.
Siehe:
Edit:
Ah - das scheint ein Freitextfeld zu sein und es werden einem nur die bisher genutzten angezeigt. Hier gibt es eine komplette Liste:
https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.mdMeine Fibaro Schalter werden z.B. automatisch erkannt als Binary Switch aber dort fehlt die current watt usage und kwh Verbraucht...
-
Einfach rein tippen.
Man muss sich nicht an die Auswahl halten.Wobei es keine Karte gibt, die deine 3 Werte sinnig anzeigt.
Da ist es vermutlich eh besser, die Entitäten einzeln zu haben. -
@david-g sagte in Test Adapter lovelace v1.2.x:
Einfach rein tippen.
Man muss sich nicht an die Auswahl halten.Wobei es keine Karte gibt, die deine 3 Werte sinnig anzeigt.
Da ist es vermutlich eh besser, die Entitäten einzeln zu haben.DANKE - https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.md hilft... Ich teste es.
-
-
@david-g so ein wenig weiter gekommen bin ich schon aber leider noch nicht am Ziel
Ich versuche diesen Typ zu bekommen:
https://github.com/ioBroker/ioBroker.type-detector/blob/master/index.js#L578Wenn ich es richtig sehe, sollte der automatisch erkannt werden, sobald es humidity und temperatur gibt. Seltsamerweise erkennt er immer zwei Entities anstatt eine mit zwei Attributen:
Muss man im Objektbaum tatsächlich die Namen so umständlich per Hand vergeben in dem man den Tree im Namen abbildet:
z.B. "Garage_3_Multisensor_Sensor_Temperature" -
@david-g nächstes Problem die Rolle wird bei jedem Schreiben eines Wertes wieder zurück gesetzt. Sobald das Device eine neue Temperatur sendet steht dort wieder value und nicht mehr value.temperature in der Rolle
-
Warum er die Rollen zurücksetzt weiß ich auch nicht. Hab die noch die manuell abgelegt.
Hatte immer alle schon, da diese schonmal von irgend welchen Adaptern angelegt wurden.
Evtl legt er 2 Geräte an, da er dein Gerät nicht kennt. Am nächsten kommt ja eine Heizung. Glaube aber, da erwartet er noch den Wert zum Temperatur regeln, aber nicht sicher.
Aber einzeln bekommst du die doch eh besser eingebunden.
Möchtest ja zb keine Heizunskarte haben für die beiden Werte und die Solltemperatur nicht steuern können.Kannst die 2 Werte ja trotzdem zusammengehörig anzeigen lassen.