erste beta - fronthem, smartVISU (closed, Bitte die Anschlussthreads benutzen)

Begonnen von herrmannj, 23 Dezember 2014, 22:36:44

Vorheriges Thema - Nächstes Thema

bgewehr

Ich kann mir vorstellen, dass es neben Reading die combo für get-Methode gibt: readingsval, get, AttrVal und für Set eben Set, setreading Attr, Direct, wobei Direct für alle möglichen Befehle genutzt werden kann und auch für "trigger ..."
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj

Zitat von: oniT am 06 Januar 2015, 20:01:29
Wenn ich es richtig verstehe, müsste man dann nicht den Umweg über einen Dummy gehen der wiederum ein Notify triggert, richtig? Das hätte natürlich auch etwas. Allerdings überblicke ich da nicht die Folgen und bin mir nicht sicher ob dies dann wiederum bei allem richtig ist. Nicht, dass dann mehrere Converter programmiert werden müssen. Macht ja auch keinen Sinn.

yepp genau - die converter haben ja den Vorteil das sie kein Brot fressen - die lassen sich extremst fix programmieren.

Wenn ich die nur langsam liefere dann hängt das nicht damit zusammen das da was aufwendig ist. Ich kann die Stunde halt nur einmal vergeben und kümmere mich um erstmal um die groben Dinger. Die converter kann man sich als poweruser ganz schnell selber schnitzen, da ist nix dran aber viel drum-rum  :)

vg

herrmannj

Zitat von: bgewehr am 06 Januar 2015, 20:16:41
Ich kann mir vorstellen, dass es neben Reading die combo für get-Methode gibt: readingsval, get, AttrVal und für Set eben Set, setreading Attr, Direct, wobei Direct für alle möglichen Befehle genutzt werden kann und auch für "trigger ..."
na, net so gern  :)

Das reading ist in erster linie ein shortcut für die events um die Aktionen des converters zu triggern. Ich hatte früher tatsächlich mal geplant dem editor einen Experten Modus zu geben, ich glaub sogar in den ersten Versionen der alpha war zumindest der dropdown noch drin. Mittlerweile bin ich aber recht ab davon - das läßt sich doch alles mit convertern viel einfacher regeln. Selbst ein "get" passt doch perfekt ins system.

Der converter darf doch per se alles machen was er möchte, siehe Deinen mit den attributen. Setreading läßt sich genauso einfach umsetzen (oben das reading, converter machts und gibt 'done' zurück. 30 Sekunden coden ... Nagut - mit zum Kühlschank gehen 45  ;) ) vg

bgewehr

@jörg: Du hast Recht, alles das geht auch locker über Converter. Ich bastel mal einen für trigger, dann haben wir ja schon fast alle...
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj

oh das ist cool, danke.

Da kommen bestimmt noch welche nach, aber ist ja auch kein limit. Für die uszu zb ...  ;) Kannst mir mal so einen json schicken der aus der uszu rauskommt ? Das wäre ein guter Test für ein fhem modul mit eingebauten converter.

dancatt

Zitat von: fidel am 06 Januar 2015, 20:05:56
Unter dem Fronthem Device das GAD edit Fenster öffnen. Unten gibt es neben dem save Button auch cancel und delete...
AARRGGHHH. Danke. Irgendwie nicht gesehen.
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

reichi

Zitat von: hyper2910 am 06 Januar 2015, 13:18:10
Hi,

wie hast du die Temperatur Regelung gebaut?`

Meine Widgets
/**
* Small RTR (Room Temperatur Regulator)
*
* @param       unique id for this widget
* @param       name of the rtr
* @param       a gad/item for the actual temperature
* @param       a gad/item for the set temperature
* @param       a gad/item for the current state of the actor
* @param       step for plus/minus buttons (optional, default 0.5°)
*/
{% macro smallrtr(id, txt, gad_actual, gad_set, gad_state, step) %}
{% import "basic.html" as basic %}
{% set uid = uid(page, id) %}

/** Design */
<div id="{{ uid }}" class="rtr">
    <table style="width:100%; text-align: left;">
        <tr>
            <th width="25%">{% if txt %} {{ txt }} {% endif %}</th>
            <td width="15%"><div class="temp">{{ basic.float(id~'actual', gad_actual, '°C' ) }}</div></td>
            <td width="15%">
                {% if gad_set %}
                    {{ basic.button(id~'minus', '', '', 'minus', '', 'micro') }}
                {% endif %}
            </td>
            <td width="15%"><div class="temp">{{ basic.float(id~'set', gad_set, '°C' ) }}</div></td>
            <td width="15%">
                {% if gad_set %}
                    {{ basic.button(id~'plus', '', '', 'plus', '', 'micro') }}
                {% endif %}
            </td>
            <td width="15%">
                {{ basic.symbol(id~'stateon', gad_state, '', icon1~'sani_floor_heating.png', 1) }}
                {{ basic.symbol(id~'stateoff', gad_state, '', icon0~'sani_floor_heating.png', 0) }}
            </td>
        </tr>

    </table>

    {% if gad_set %}

        /** Events */
        <script type="text/javascript">
            // plus / minus
            $("#{{ uid~'minus' }}").unbind('click').bind('click', function(){
                var temp = (Math.round((parseFloat($("#{{ uid~'set' }}").html().replace(',','.')) - {{ step|default(0.5) }}) * 10) / 10).toFixed(1);
            $("#{{ uid~'set' }}").html(temp + ' °C');
            io.write("{{ gad_set }}", temp);
            });
            $("#{{ uid~'plus' }}").unbind('click').bind('click', function(){
                var temp = (Math.round((parseFloat($("#{{ uid~'set' }}").html().replace(',','.')) + {{ step|default(0.5) }}) * 10) / 10).toFixed(1);
            $("#{{ uid~'set' }}").html(temp + ' °C');
            io.write("{{ gad_set }}", temp);
            });
        </script>
    {% endif %}
</div>




/**
* Max RTR (Room Temperatur Regulator)
*
* @param unique id for this widget
* @param name of the rtr
* @param a gad/item for the actual temperature
* @param a gad/item for the set temperature
* @param a gad/item for the current state of the actor
* @param step for plus/minus buttons (optional, default 0.5)
*/
{% macro rtr(id, txt, gad_actual, gad_set, gad_state, step) %}
        {% import "basic.html" as basic %}

        <div id="{{ uid(page, id) }}" data-widget="device.rtr" data-step="{{ step|default(0.5) }}"
                class="rtr">
                <div class="actual">
                        <div class="temp">{{ basic.float(id~'actual', gad_actual, '°C' ) }}</div>
                        <div class="text">{{ txt }} {% if gad_state != 0 %} ({{ gad_state }}) {% endif %}</div>
                </div>

                {% if gad_set %}
                        <div class="set">
                                <a data-role="button" data-icon="minus" data-inline="true" data-iconpos="notext" class="ui-mini"></a>

                                <div class="temp">{{ basic.float(id~'set', gad_set, '°C' ) }}</div>
                                <a data-role="button" data-icon="plus" data-inline="true" data-iconpos="notext" class="ui-mini"></a>
                        </div>
                {% endif %}
        </div>
{% endmacro %}



{% endmacro %}


hier eins im Einsatz:

{{ max.rtr('arbeitszimmer_heizen', 'Arbeitszimmer', 'arbeitszimmer.heizung.ist_temperatur', 'arbeitszimmer.heizung.soll_temperatur', 'arbeitszimmer.heizung.status') }}

im gad die soll temp über "desiredTemperature" mit NumDirect als 'Converter

bgewehr

UZSU:

UZSU aktiv, leerer Eintrag:
{"active":true,"list":[]}

UZSU aktiv, ein leerer inaktiver Eintrag:
{"active":true,"list":[{"active":false,"rrule":"","time":"00:00","value":0}]}

UZSU aktiv, ein aktiver Eintrag, Mo-Fr 08:00 up:
{"active":true,"list":[{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR","time":"08:00","value":1}]}

... Und dann auch noch Mo-Fr 21:00 down:
{"active":true,"list":[{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR","time":"08:00","value":1},{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR","time":"21:00","value":0}]}

Lässt sich mit einem Direct Converter erfolgreich an einen dummy state geben, aber so richtig cool wäre natürlich ein UZSU Converter...
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj

Zitat von: bgewehr am 06 Januar 2015, 22:43:10
UZSU:

UZSU aktiv, leerer Eintrag:
{"active":true,"list":[]}

UZSU aktiv, ein leerer inaktiver Eintrag:
{"active":true,"list":[{"active":false,"rrule":"","time":"00:00","value":0}]}

UZSU aktiv, ein aktiver Eintrag, Mo-Fr 08:00 up:
{"active":true,"list":[{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR","time":"08:00","value":1}]}

... Und dann auch noch Mo-Fr 21:00 down:
{"active":true,"list":[{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR","time":"08:00","value":1},{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR","time":"21:00","value":0}]}

Lässt sich mit einem Direct Converter erfolgreich an einen dummy state geben, aber so richtig cool wäre natürlich ein UZSU Converter...

Hi,

wo ist der Unterschied zwischen
UZSU aktiv, leerer Eintrag:
UZSU aktiv, ein leerer inaktiver Eintrag:

Oder anders: gibt es UZSU inaktiv ?

danke  und Grüße
Jörg

bgewehr

Jeder einzelne Regel für sich kann aktiv oder inaktiv sein. Man kann aber auch die gesamte Zeit Schalt Uhr aktiv oder inaktiv setzen.
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

herrmannj


Jojo11

Zitat von: bgewehr am 05 Januar 2015, 12:38:00
Ich habe mal den nw_tiles Stil ausprobiert und muss sagen, dass ich das noch schöner finde. Kombiniert mit ein bisschen Quad design kommt das einem Gira HomeServer schon recht nahe!

Hallo,

mal ne blöde Frage: Wie bekommst Du die zwei Spalten in der Übersicht hin? Class="nw_tiles" reicht doch dafür nicht aus, oder? Ist das quad?
Gibt es zu den designs irgendwo eine Kurzdoku?

schöne Grüße
Jo

bgewehr

Lad dir die visu.css aus meinem Git im Pages/Gewehr Folder, da sind die Styles drin!
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Jojo11

Cool, danke. Ich wusste doch da fehlt was.

schöne Grüße
Jo