Ankündigung

Einklappen
Keine Ankündigung bisher.

RTR Nacht (3x Bit) - falsches Icon?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    RTR Nacht (3x Bit) - falsches Icon?

    Ich benutze den RTR mit 3x Bit inkl. Nacht. Wenn das zugewiesene Item = 0 ist dann erscheint das Icon scene_night.svg. Soweit ok, aber wenn das Item = 1 ist, dann wechselt das Icon zu scene_day.svg und wird hervorgehoben. Ich glaube so ist das nicht ganz sinnig. Entweder das Icon bleibt immer scene_night.svg und wird hervorgehoben oder nicht, oder man tauscht die Iconanzeige, sodass Nacht = 0 = scene_day.svg und Nacht = 1 = scene_night.svg (und hervorgehoben) oder was meint ihr?

    #2
    Seh ich auch so, drum habe ich mir das RTR Widget in den Unterordner widgets meiner pages kopiert, in eine Datei namens mydevice.html.
    Darin das RTR Widget umbenannt in myrtr und dann so angepasst, wie ich es haben möchte.

    RTR.png

    So sieht das dann aus.
    Das dynamische "Batterie" Icon unterhalb der Ist-Temperatur zweckentfremde ich als Anzeige für das Stellventil.
    Die Status-Icons habe ich mir angepasst und das Heizkörpersymbol ist auch das dynamische. Aufruf dann mit

    Code:
    	<div class="block">
    		<div class="set-1" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
    			<div data-role="collapsible" data-collapsed="false">
    				<h3>Raumtemperatur</h3>
    				{{ mydevice.myrtr('WZ_Heizung', 'Wohnzimmer.Raumtemperatur.Ventilposition', 'Wohnzimmer.Raumtemperatur.Ist', Wohnzimmer.Raumtemperatur.Soll',
    				'Wohnzimmer.Raumtemperatur.Komfortbetrieb', 'Wohnzimmer.Raumtemperatur.Nachtbetrieb', 'Wohnzimmer.Raumtemperatur.Frostschutz', '', '', '0.2', '', [icon.heating('','','Wohnzimmer.Raumtemperatur.Ventilposition',0,100, '#F00')]) }}
    			</div>
    		</div>
    	</div>
    Das geänderte Widget sieht so aus:

    Code:
    /**
    * My modified RTR (Room Temperatur Regulator)
    *
    * @param {id=} unique id for this widget (optional)
    * @param {item} an item for the valve position
    * @param {item} an item for the actual temperature
    * @param {item} an item for the set temperature
    * @param {item=} an item for comfort / standby (3x bit or 1x byte, optional)
    * @param {item=} an item for night (3x bit or 1x byte, optional)
    * @param {item=} an item for frost (3x bit or 1x byte, optional)
    * @param {item=} an item for the current state of the actor (optional)
    * @param {item=} an item for a text (some rtr have a text-display), (optional)
    * @param {value=0.5} step for plus/minus buttons (optional, default: 0.5)
    * @param {item=} an item for the offset temperature (optional, if provided set temperature changes will be written to this item instead of 'item_set')
    * @param {text[]=} list of additional widgets / content to display
    */
    {% macro myrtr(id, item_pos, item_actual, item_set, item_comfort, item_night, item_frost, item_state, item_txt, step, item_offset, supplements) %}
    	{% import "basic.html" as basic %}
        {% import "icon.html" as icon %}
    
    	<div{% if not id is empty %} id="{{ uid(page, id) }}"{% endif %} data-widget="device.rtr" class="rtr">
    		<div class="actual">
    			<div class="temp">{{ basic.print('', item_actual, '°' ) }}</div>
                <div class="valve">{{ icon.battery('', '', item_pos, 0, 100) }} {{ basic.print('', item_pos, '%') }}</div>
    		</div>
    		<br>
    		{% if item_set %}
    			<div class="set">
    				{{ basic.offset('', item_offset|default(item_set), -(step|default(0.5)), 'minus', '', 'mini' ) }}
    				<div class="temp">{{ basic.print('', item_set, '°' ) }}</div>
    				{{ basic.offset('', item_offset|default(item_set), step|default(0.5), 'plus', '', 'mini' ) }}
    			</div>
    		{% endif %}
    		<br>
    		{% if item_comfort is not empty or item_night is not empty or item_frost is not empty or item_state is not empty or supplements is not empty %}
    		<div class="control">
    			{% if item_comfort is not empty and (item_comfort == item_night or item_night is empty) and (item_comfort == item_frost or item_frost is empty) %}
    				{{ basic.stateswitch('', item_comfort, 'icon', (config_driver == 'linknx' ? ['comfort', 'standby'] : [1, 2]), ['status_available.svg', 'status_away_2.svg'], '', ['icon1', 'icon0']) }}
    				{{ basic.stateswitch('', item_comfort, 'icon', (config_driver == 'linknx' ? ['night', 'standby'] : [3, 2]), ['scene_night.svg', 'scene_day.svg'], '', ['icon1', 'icon0']) }}
    				{{ basic.stateswitch('', item_comfort, 'icon', (config_driver == 'linknx' ? ['frost', 'standby'] : [4, 2]), ['weather_frost.svg', 'weather_frost.svg'], '', ['icon1', 'icon0']) }}
    			{% else %}
    				{% if item_comfort is not empty %}
    					{{ basic.stateswitch('', item_comfort, 'icon', '', ['status_away_2.svg', 'status_available.svg']) }}
    				{% endif %}
    				{% if item_night is not empty %}
    					{{ basic.stateswitch('', item_night, 'icon', '', ['scene_day.svg', 'scene_night.svg']) }}
    				{% endif %}
    				{% if item_frost is not empty %}
    					{{ basic.stateswitch('', item_frost, 'icon', '', ['weather_frost.svg', 'weather_frost.svg']) }}
    				{% endif %}
    			{% endif %}
    			{% if item_state is not empty %}
                    {{ basic.symbol('', item_state, '', 'sani_heating.svg', 1, '', 'icon1') }}			
                    {{ basic.symbol('', item_state, '', 'sani_heating.svg', 0) }}
    			{% endif %}
    			{% for supplement in supplements %}
    				{{ supplement|raw }}
    			{% endfor %}
    		</div>
    		{% endif %}
    	</div>
    {% endmacro %}
    Wird trotz RAW Modus beim Einfügen hier nicht 100%ig schön eingerückt angezeigt. Sorry.
    Aber das sollte dir helfen das Widget anzupassen wie du es möchtest.

    Gruß, Martin
    Angehängte Dateien

    Kommentar


      #3
      Das Widget usw. anzupassen ist für mich nicht das Problem. Darum habe ich auch nicht nach einer Lösung/Workaround gefragt. Die Frage war eher, ob sich dabei einer was gedacht hat und by-design ist oder ob es ein Bug ist welcher gefixed werden sollte.

      Es sollte eigentlich reichen, wenn in device.html die Iconreihenfolge von ['scene_night.svg', 'scene_day.svg'] in ['scene_day.svg'', 'scene_night.svg] oder ['scene_night.svg', 'scene_night.svg'] getauscht wird.

      Kommentar


        #4
        Es macht keinen Sinn, von scene_night auf scene_day umzuschalten. Eindeutiger ist es, nur scene_night zu verwenden und dieses hervorzuheben, wenn die Nachtabsenkung aktiv ist.

        Ist jetzt so im develop.

        Kommentar

        Lädt...
        X