[FHEM-Tablet-UI] Widgets for fhem-tablet-ui

Begonnen von nesges, 10 April 2015, 10:30:25

Vorheriges Thema - Nächstes Thema

bjoernbo

ZitatWenn in Kürze die neue Doku für das Widget wind_direction geschrieben wird (das dürfte nicht allzu schwierig sein), sollten die ausgelobten Eigenschaften auch zutreffen.

Nur mal zur Info. Das o.g. Modul "wind_direction" wurde seinerzeit von nesges ins Leben gerufen. Deine Ansage liest sich ziemlich scharf. Wenn Du es besser kannst, darfst du es gerne anpassen und nebenbei auch die Doku aktualisieren, dass dürfte nicht allzu schwierig sein :-D
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

stefanru

Hi Setstate,

du hattest mir den meteoconsdirect eingebaut.
Ich habe mitlerweile festgestellt das der ZambrettiCode nicht einfach dem Meteocons entspricht.
Beide verwenden zwar A-Z und Sonderzeichen sind aber nicht 1 zu 1 mappbar.

Ich habe ein Mapping erstellt. Leider habe ich es nicht so gut ins weather js widget code. Irgendwie wollte er mit meinem Mapping das nur ein Buchstabe enthält nicht mit dem mapped.replace(/^:/, '') ersetzen.

Hier mal mein mapping und meine Coding anpassungen.

Mapping für Meteocons:
var meteoconsmap = {
        // Zambretti
        'A': 'B',
        'B': 'B',
        'C': 'H',
        'D': 'H',
        'E': '3',
        'F': '3',
        'G': 'N',
        'H': 'N',
        'I': '5',
        'J': '5',
        'K': 'Y',
        'L': 'Y',
        'M': '%',
        'N': '%',
        'O': 'Q',
        'P': 'Q',
        'Q': '7',
        'R': '7',
        'S': '7',
        'T': 'R',
        'U': 'R',
        'V': 'R',
        'W': '8',
        'X': '8',
        'Y': 'T',
        'Z': '!',
        .....


Im mapping unten:
....
else {
                        mapped = meteoconsmap[mapped.replace(/^:/, '')];
                        console.log('mapped:',mapped);
                        if (typeof mapped == 'undefined') {
                         mapped = typeof translation == "undefined" ? val : translation;
                         mapped = meteoconsmap[mapped.replace(/ /, '')];
                         console.log('mapped1:',mapped);
                         }
                       
                        elem.attr('data-icon', mapped);
                    }
......


Würdest du das übernehmen? Eventuell braucht man die Sonderlogik im zweiten Block nicht wenn man versteht warum das mapping nicht geklappt hat.

Gruß,
Stefan

devil77

Hallo,
auch wenn es schon eine Weile alt ist wollte ich doch mal versuchen deine unten aufgeführte Lösung umzusetzen.
Kannst Du mir dazu noch deinen Code aus der 99_myUtils.pm zur Verfügung stellen?
Schon mal vielen Dank im Voraus!

Zitat von: setstate am 07 November 2015, 08:15:11
Hier nun mein Code dazu:
FTUI

        <li data-row="1" data-col="2" data-sizex="9" data-sizey="3">
        <header>TIMER</header>
            <div class="inline large darker thin cell" >Bad warm ab:</div>
            <div data-type="datetimepicker" data-device="BeforeGettingUp"
              data-get="TIMESPEC" data-set-value="*$v" data-cmd="modify"
              data-step="15"
              data-datepicker="false" data-format="H:i"
              class="inline bigger thin orange cell"></div>
            <div class="inline large darker thin cell" >für:</div>
            <div data-type="datetimepicker" data-device="BeforeGettingUp"
                   data-get="onfortimer"
                   data-cmd="setreading"
                   data-set="onfortimer"
                   data-step="15"
                   data-datepicker="false" data-format="H:i"
                   class="inline bigger thin orange cell"></div>
            <div class="inline large darker thin cell" >Stunden</div>
            <div data-type="checkbox" data-device='BeforeGettingUp'
               data-get-on="!off" data-get-off="inactive"
               data-set-on="active" data-set-off="inactive"
               class="inline left-space-3x"></div>
        </li>


und die Definition des at in der fhem.cfg

define BeforeGettingUp at *05:15 {\
  if ( !($we) && Value("HomeStatus")<3 ) {\
      SetHeizungGettingup();;\
      my $onfortimer = ReadingsVal("BeforeGettingUp","onfortimer","01:00");;\
      fhem("define AfterGettingUp at +".$onfortimer.":00 {\
         if( Value('HomeStatus')<3 ) {\
           if(\$hour > 8 && \$hour < 24) {\
             SetHeizungPresent();;;;\
           } else {\
             SetHeizungNormal();;;;\
           }\
         }\
      }");;\
  }\
}


Zur Erklärung:
Wenn das at "BeforeGettingUp" triggert, wird, wenn es ein Wochentag ist !($we) und jemand Zuhause ist Value("HomeStatus")<3, die Heizung auf die definierten Werte laut Funktion in 99_myUtils.pm gesetzt.
Gleichzeitig wird auch ein neues temporäres at "AfterGettingUp" angelegt, was nach einer festgelegten Zeit, die Heizungswerte wieder auf die normalerweise gültigen Werte zu dieser Zeit setzt. Die Dauer speichere ich mir in einem Userreading "onfortimer" des at "BeforeGettingUp".

Ampheus

Verstehe ich das richtig, dass das Clock Widget nur die lokale am FHEM Server eingestellte Uhrzeit anzeigen kann? Gibt es einen Weg auch eine andere Zeitzone anzuzeigen? Ich würde gern bei meiner Abwesenheit eine (je nach Reiseziel) einstellbare Uhr anzeigen lassen.

Danke.

Gruß
Thomas.