NEWS
jarvis v2.2.0 - just another remarkable vis
-
@schuetzeschulz Wobei ich sowas eher über Skript und eigenen "virtuelles" Gerät löse, damit ich es besser wiederum in Skripten nutzen kann. Sonst müsste ich die Logik 2mal implementieren... Hängt aber vom Anwendungsfall ab...
-
@rkccorian Stell doch bitte Dein Beispiel mit Sctpt rein.
-
@mcu sagte in jarvis v2.2.0 - just another remarkable vis:
Sctpt
Beispiel (Blockly-Export) für das Zusammenfassen von 3 Rollläden zu einem Wohnzimmerrollladen... diesen kann ich über Alexa als Einheit (Bspw.: "Fahre Wohnzimmerrolladen auf 0%") ansteuern und für weitere Skripte nutzen.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="gjx]|luV{.9x+Nv.z(5~">BLIND_COMMAND</variable> <variable id="TE:tWwvegdlK/Q(csApk">ZahlRollladenOffen</variable> <variable id=",0{r:?u/aly[3$V{xB;}">ZahlDelayAnsteuerungRollladen</variable> </variables> <block type="comment" id="AIO27bS%kQ;EX4=O_pX~" x="-1087" y="-562"> <field name="COMMENT">Init</field> <next> <block type="comment" id="@i`ZZ/f,/XP|+{VJSYDQ"> <field name="COMMENT">=================================================</field> <next> <block type="comment" id="X8xCI/w:_*4kG^R=x@KJ"> <field name="COMMENT">Parameter</field> <next> <block type="variables_set" id="/1aW:D[_6kBs:I]yY^.;"> <field name="VAR" id=",0{r:?u/aly[3$V{xB;}">ZahlDelayAnsteuerungRollladen</field> <value name="VALUE"> <block type="math_number" id="n|tTg!uOCgo*_:H2Q}J:"> <field name="NUM">100</field> </block> </value> <next> <block type="comment" id="s,RjqR{6wOAQd.#i%t|D"> <field name="COMMENT">Status ermitteln</field> <next> <block type="procedures_callnoreturn" id="yLNzUCBEYvycm;S$M;@H"> <mutation name="GetBlindStatus"></mutation> <next> <block type="debug" id=";a=PYFEyv;-g[XTLJY^v"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="1YWGyV`Vx*q;q2tUx[rN"> <field name="TEXT">Init done</field> </shadow> </value> <next> <block type="comment" id="4E?#KM+?LQ6NEI2Y7GcR"> <field name="COMMENT">Cyclically</field> <next> <block type="comment" id="0ZQNock*JNBzVvE|cBAl"> <field name="COMMENT">=================================================</field> <next> <block type="comment" id="B(=i#Yb5sD6(uII#57Q)"> <field name="COMMENT">OnChange</field> <next> <block type="comment" id="l^.FdWT#;zPWR?dBKn]7"> <field name="COMMENT">=================================================</field> <next> <block type="on_ext" id="hGE?4Xmj{aJ{ODk3`txy"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid"> <field name="oid">0_userdata.0.Wohnung.Beleuchtung.SET</field> </shadow> <block type="field_oid" id="YT}ysX^ZNM;LHElUJ8P*"> <field name="oid">alias.0.Wohnzimmer.Balkonrollladen_Links.LEVEL</field> </block> </value> <value name="OID1"> <shadow type="field_oid"> <field name="oid">default</field> </shadow> <block type="field_oid" id="By27+iu|5_uQk6gkngpO"> <field name="oid">alias.0.Wohnzimmer.Balkonrollladen_Rechts.LEVEL</field> </block> </value> <value name="OID2"> <shadow type="field_oid"> <field name="oid">default</field> </shadow> <block type="field_oid" id="mA0x~V$%)^ZrR9|gN,EA"> <field name="oid">alias.0.Wohnzimmer.Schrankwandrollladen.LEVEL</field> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="[uCUcf@*pG:$jHM+mEdU"> <mutation name="GetBlindStatus"></mutation> <next> <block type="debug" id="`pSbQDmHm!RuW+rbx(~c"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="[Y5xVbP}gEJ]wz7d*iY#"> <field name="TEXT">GetBlindStatus triggered & executed</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="on_ext" id="Cu~[B4qOnuq}YS6;P[eb"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION">false</field> <value name="OID0"> <shadow type="field_oid"> <field name="oid">0_userdata.0.Wohnung.Beleuchtung.SET</field> </shadow> <block type="field_oid" id="Iv%p2b[oPFB#^1yG9NrZ"> <field name="oid">alias.0.Wohnzimmer.Wohnzimmerrollladen.BLIND_COMMAND</field> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="f7UFIpycv+Prt^3M7YWr"> <mutation name="SetBlindStatus"> <arg name="BLIND_COMMAND"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="*WGFO!_Iy;ErARVW7}7:"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="debug" id="dY$c$afWsZlvd|^Z%m]-"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="7Lok*(^AL^QosgJ/,?Ml"> <field name="TEXT">SetBlindStatus triggered & executed</field> </shadow> </value> <next> <block type="update" id="j=sqDOFhAvs$dwc:@K,o"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Wohnzimmer.Wohnzimmerrollladen.BLIND_COMMAND</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="on_source" id="lMY(,YjP.Ej2s]5%+36D"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="j{UsX+KMv7LOF$.!{Ziw"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION">false</field> <value name="OID0"> <shadow type="field_oid" id="b8KA5aDb|IlYY3S#B*XN"> <field name="oid">0_userdata.0.Wohnung.Beleuchtung.SET</field> </shadow> <block type="field_oid" id="S}v-GygXp?#cwy)xCGL;"> <field name="oid">alias.0.Wohnzimmer.Wohnzimmerrollladen.LEVEL_COMMAND</field> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="jxT?,l|?5LL|X/i6v^[%"> <mutation name="SetBlindStatus"> <arg name="BLIND_COMMAND"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="Fbu/?LLyNhZ+!TCbohR-"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="debug" id="~M)`t8;R+HLx3.U^W1I^"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Y=~|K(!Vr??g9oJuy^ML"> <field name="TEXT">SetBlindStatus triggered & executed</field> </shadow> </value> <next> <block type="update" id="i{m?CTG(B]K3,!+6CUG?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Wohnzimmer.Wohnzimmerrollladen.LEVEL_COMMAND</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="on_source" id="T{RHhCVD$*9TvYQht=!b"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="nl|Gz_IzC$x;iFR,(OXC" x="-413" y="-563"> <field name="NAME">GetBlindStatus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="xOhFRJi|;kojv]}j5Xgj"> <field name="COMMENT">Prüfe ob alle Rollläden unten sind</field> <next> <block type="variables_set" id="`]7paiYcUcRyk;FXgy%Q"> <field name="VAR" id="TE:tWwvegdlK/Q(csApk">ZahlRollladenOffen</field> <value name="VALUE"> <block type="math_number" id="J9bzQ@Zrm4WG2!.dyF}1"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="3V%RY7IMITDP@z:Lp~F$"> <field name="COMMENT">Balkonrollladen Links</field> <next> <block type="controls_if" id="{Oy:=C}jX0;~6;K-@{#A"> <value name="IF0"> <block type="logic_compare" id="LvUcSb3X-[iEwR}~]$S#"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="7mI9ghg3AG)HVlf9v~$S"> <field name="ATTR">val</field> <field name="OID">alias.0.Wohnzimmer.Balkonrollladen_Links.LEVEL</field> </block> </value> <value name="B"> <block type="math_number" id="s]ise-N$PImo#DbIIp%|"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="ZHyyi#}nL9~CKAb1Vv`!"> <field name="VAR" id="TE:tWwvegdlK/Q(csApk">ZahlRollladenOffen</field> <value name="DELTA"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id=")J^oqzE`61,VN8n!YBTh"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="comment" id="^F0U)eF%zPN;[9oPt90u"> <field name="COMMENT">Balkonrollladen Rechts</field> <next> <block type="controls_if" id="*Mp.@+ii+V,W,ELD#dt%"> <value name="IF0"> <block type="logic_compare" id="+pZ(Dd~#RRFqzOdHw,Ff"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="gyHnPsFtB*zDG-mV7J5n"> <field name="ATTR">val</field> <field name="OID">alias.0.Wohnzimmer.Balkonrollladen_Rechts.LEVEL</field> </block> </value> <value name="B"> <block type="math_number" id="ebG?BEZ{h8)IE,].T8xe"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="r(o$eOhmh,bbro|/sC{:"> <field name="VAR" id="TE:tWwvegdlK/Q(csApk">ZahlRollladenOffen</field> <value name="DELTA"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id=")De0u7H(SQi_72OxU9T4"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="comment" id="lchGE13bWa|+iz~|P-WN"> <field name="COMMENT">Schrankwandrollladen Rechts</field> <next> <block type="controls_if" id="x6i@{%6`C3da+uU#+p6#"> <value name="IF0"> <block type="logic_compare" id="%!i#zYm1.!h`-rVvm~Ig"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="m%WceY0B5H[?10~fGx%8"> <field name="ATTR">val</field> <field name="OID">alias.0.Wohnzimmer.Schrankwandrollladen.LEVEL</field> </block> </value> <value name="B"> <block type="math_number" id="Wz7$Nd$%KitsivLi(92e"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="8XJ-1oATg];T.y+[/Gxr"> <field name="VAR" id="TE:tWwvegdlK/Q(csApk">ZahlRollladenOffen</field> <value name="DELTA"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="l~0rCdJ_hq-dw5if!|Bh"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="comment" id="eVJ)u[6n-U3-c^q64d`U"> <field name="COMMENT">Aktualisiere Status</field> <next> <block type="update" id="I2;fD(}/vq6)Ce!Y,y+p"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Wohnzimmer.Wohnzimmerrollladen.STATUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_negate" id="-h:;BFrA0u]la3nm5.__"> <value name="BOOL"> <block type="logic_compare" id="F,KmI+SB.P]wpg`?}Es0"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="cuO~ggi/CIwAIfuwu;Lm"> <field name="VAR" id="TE:tWwvegdlK/Q(csApk">ZahlRollladenOffen</field> </block> </value> <value name="B"> <block type="math_number" id="(93uMgO7O%qPq.`?[m4A"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="}%[AJZu9Kk%i+:I8RS:7" x="363" y="-562"> <mutation> <arg name="BLIND_COMMAND" varid="gjx]|luV{.9x+Nv.z(5~"></arg> </mutation> <field name="NAME">SetBlindStatus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="(f*sHNfS~V!T8%fW7~lW"> <field name="COMMENT">Alle Rollläden steuern</field> <next> <block type="comment" id="0V-%9B+Z42J|0K{Ze|`e"> <field name="COMMENT">Balkonrollladen Links</field> <next> <block type="control" id="_ea#]3w#u?4(tPUx]AT-"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Wohnzimmer.Balkonrollladen_Links.BLIND_COMMAND</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=".GR.snGg9F4DJh(NllJu"> <field name="VAR" id="gjx]|luV{.9x+Nv.z(5~">BLIND_COMMAND</field> </block> </value> <next> <block type="comment" id="6i[;h+RYaUSD(vD/9B*z"> <field name="COMMENT">Balkonrollladen Rechts</field> <next> <block type="timeouts_wait" id="%QSLSUlTQ6?*XJz56{hn"> <field name="DELAY">ZahlDelayAnsteuerungRollladen</field> <field name="UNIT">ms</field> <next> <block type="control" id="uL7St4hrP=|4$^c*;GPa"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Wohnzimmer.Balkonrollladen_Rechts.BLIND_COMMAND</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="[r$/p1kZ7.@UWhGr~j^Y"> <field name="VAR" id="gjx]|luV{.9x+Nv.z(5~">BLIND_COMMAND</field> </block> </value> <next> <block type="comment" id="bOhdRM78mr@M%w),jl16"> <field name="COMMENT">Schrankwandrollladen</field> <next> <block type="timeouts_wait" id="%?2Ko?o{yvT?$hVO;S4P"> <field name="DELAY">ZahlDelayAnsteuerungRollladen</field> <field name="UNIT">ms</field> <next> <block type="control" id="kJo=s2{$voCe)#3:n=8y"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Wohnzimmer.Schrankwandrollladen.BLIND_COMMAND</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="~|HPUBE9z|#DHmtxOhqC"> <field name="VAR" id="gjx]|luV{.9x+Nv.z(5~">BLIND_COMMAND</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@Mcu: Danke für die Doku bzgl. Batterieladeanimation. Was mir noch fehlt (und woran ich hänge)... wie setze ich das ein. Kannst Du es noch um einen Screenshot / Info ergänzen wie ich die erstellte Animation in JARVIS nutzen kann?! Vielen Dank im Voraus!
Geht um: https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/beispiele/styles/effekte/charge#charge
-
@mcu Habe das gerade so versucht, das klappt aber nicht:
{hm-rpc.0.MEQ0028801.1.STATE} || {hm-rpc.0.MEQ0029513.1.STATE}
-
@schuetzeschulz Ja es gibt halt noch Probleme in jarvis. Geduld. Aber Deine Einstellung ist nicht korrekt. Es fehlt der Wert.
-
@rkccorian Nutzen kann man es wie den "blink" -Effekt. Also im Icon:
{"default": "home charge"}
-
@mcu Hmm... die Angabe vom "home" Symbol ist wegen der Syntax notwendig, wenngleich es durch die Animation überschrieben wird?!
Hab es so probiert, klappt leider nicht bei mir Bilder sind erreichbar, hab die links selber probiert. alpha-106
Meine Konfig
=> im Gerät{"default": "home animationBatteryCharge "}
=> im CSS
.animationBatteryCharge { color: transparent; animation: animationBatteryCharging 3s infinite; } @keyframes animationBatteryCharging { 0% { background-image: url(https://192.168.168.27/icons/battery-outline.svg); } 33% { background-image: url(https://192.168.168.27/icons/battery-low.svg); } 66% { background-image: url(https://192.168.168.27/icons/battery-medium.svg); } 100% { background-image: url(https://192.168.168.27/icons/battery-high.svg); } }
-
@mcu
Ah ok, wie würde es denn richtig aussehen?
Etwa so?{hm-rpc.0.MEQ0028801.1.STATE = "true"} || {hm-rpc.0.MEQ0029513.1.STATE = "true"}
Wie ist das eigentlich, gibt es eine Möglichkeit, eine Information zu bekommen wenn es eine neue Git-Version gibt?
Oder muss man hier proaktiv schauen?
Das mit den Bindings würde mich schon interessieren. Sonst läuft mein Jarvis extrem stabil und performant. -
@rkccorian Weil Deine Animation falsch definiert. 2 Okjektklammern am Anfang. Falsch gelesen.
Vielleicht hat sich wieder was geändert. Nimm mal transparent !important -
@schuetzeschulz Ja besser. Nur nicht "true" sondern true.
Also in Deinem Fall:{"{hm-rpc.0.MEQ0028801.1.STATE }= true || {hm-rpc.0.MEQ0029513.1.STATE} = true":"was soll dann passieren"}
Zum Thema "proaktiv" , ja man muss nachschauen.
Du kannst zwar mit "Watch" alle Nachrichten bekommen, was so geschrieben wird, es kommt aber keine Nachricht eine Neue Version ist vorhanden. Nur in der Nachricht selbst steht teilweise drin:"teste mal die neue Version von Zefau"
-
@mcu sagte in jarvis v2.2.0 - just another remarkable vis:
!important
Dann ist kein Symbol mehr sichtbar. Warum ist das transparent drin? Wird das Symbol nicht durchsichtig und ist nicht mehr sichtbar?
-
@rkccorian Genau kein Symbol. Nur noch die Animation.
-
@mcu Tja.... Dark Theme und schwarze Icons funktioniert nicht Kann ich die Icon direkt über CSS einfärben oder muss ich die Bilder in der Wunschfarbe speichern?!
-
@rkccorian In den SVG bei path statt "currentColor" Deine Farbe setzen.
-
@mcu Geht das als Hex / rgb?
-
@rkccorian Ich glaube nur Named Color.
https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/beispiele/styles/effekte/svg-animation-aus-icons
Vesuch mal HEX-Color.
Du kannst ja einen entsprechenden Feature Request einstellen. Man muss halt die Farbe vor dem Laden der Animation entsprechend ändern. Das kann nur im Programm selbst geschehen.
Bei Hex-Color nicht # verwenden sondern z.B.: %23FF0000Man kann allerdings auch mit Filter arbeiten um eine andere Farbe zu bekommen: (aus schwarz mach blau)
filter: invert(8%) sepia(100%) saturate(7001%) hue-rotate(248deg) brightness(98%) contrast(145%);
-
@mcu Hab's hinbekommen. Symbol unter iconify auswählen, Farbe wählen, Größe als 24x24, dann den SVG code Kopieren und über Editor in eine svg-Datei kopieren. Diese Datei lokal abspeichern und normal über einen Web-Server einbinden, wie von Dir beschrieben. Klappt wunderbar
-
@rkccorian Also, wenn in der Doku irgendetwas nicht stimmt oder etwas fehlt, immer direkt mitteilen, dann kann ich das Problem für andere anpassen bzw. vermeiden.
Hast du das mit HEX-Color probiert?
Du kannst den svg-Code auch direkt verwenden, musst es nicht in eine Datei schreiben. -
@mcu Deswegen habe ich die Lösung oben geschrieben
Jetzt nochmal mit Bildern...