Abfallkalender - Schriftgröße und Höhe ändern

Begonnen von Kusselin, 22 November 2017, 21:10:26

Vorheriges Thema - Nächstes Thema

TomLee

#30
Ok, versteh ich, passt bei dir. Dann lass ich das erstmal mit (0|1).

Aber warum bei mir nicht.
Bei mir gewinnt immer der erste Ausdruck  :-\ und data-colors greift auch nicht.

Heute ist Restabfall/Wertstoffe_1

<div class="vbox">
<div class="bigger bottom-narrow"
data-device="Google_Abfallkalender"
data-type="symbol"
data-get="nextWastedays"
data-get-warn=".*(\d+).*"
data-states='["Rest.*_0","Rest.*_1","Rest.*"]'
data-colors='["red","yellow","green"]'
data-icons='["fa-trash-o warn fa-spin","fa-trash-o warn","fa-trash-o"]'>
</div>



OdfFhem

@TomLee

Ich hatte mittlerweile Gelegenheit mit Deinem nextWastedays-Wert und Deiner Widget-Definition zu testen. Und bei mir erscheint dann erwartungsgemäß ein gelber Mülleimer mit einer warnenden 1.

Der erste Verdacht wäre nun, dass nextWastedays einen anderen Wert enthält - ansonsten müsste ja einer der angegebenen Array-Werte matchen. Was passiert denn bei Dir, wenn Du statt

data-states='["Rest.*_0","Rest.*_1","Rest.*"]'

einfach

data-states='[".*_0",".*_1",".*"]'

verwendest?

TomLee

#32
Es ist zum Mäuse melken.

Das Icon ist grün,dreht sich und es wird kein warn icon mehr angezeigt  ::) ;D

Heute ist Restabfall/Wertstoffe_0

<div class="vbox">
<div class="bigger bottom-narrow"
data-device="Google_Abfallkalender"
data-type="symbol"
data-get-on="nextWastedays"
data-get-warn=".*(\d+).*"
data-states='[".*_0",".*_1",".*"]'
data-colors='["red","blue","green"]'
data-icons='["fa-trash-o warn fa-spin","fa-trash-o warn","fa-trash-o warn fa-spin"]'>
</div>


Hab schon ewig nichts mehr in meinem FTUI gemacht, das Repository ist mit update add eingebunden, also alles aktuell.
Fehlt mglw. eine Angabe im head ?

edit:sry Code nochmal geändert

OdfFhem

@TomLee

Noch ist nicht alles verloren, da für mich das Verhalten nachvollziehbar ist:



  • Die Darstellung ist grün und rotierend; folglich sollte das dritte Array-Element zugeschlagen haben; daraus wiederum sollte folgen, dass weder ein _0 noch ein _1 am Ende des Readings steht.

  • Da kein Warnwert angezeigt wird, sollte das Reading auch keine Ziffer beinhalten. In einem solchen Fall wird trotz warn-Klasse mangels Wert keine Warnung angezeigt.

Gib doch mal bitte mit folgendem Konstrukt Deinen Wert aus:

  <div data-type="label" data-device="Google_Abfallkalender" data-get="nextWastedays" data-pre-text="#" data-post-text="#"></div>



Übrigens hast Du jetzt scheinbar kein data-get mehr, dann wird STATE ausgewertet - keine Ahnung, was da drin steht ...

TomLee

Es steht aber wie gesagt heute eine 0 dahinter.

TomLee

Ups sry, das mit data-get-on waren wieder Spielereien.

Jetzt mit data-get matcht der erste Ausdruck das icon ist rot und dreht sich, alles wie es sein soll.

Nehm ich aber wieder diese Variante:

data-states='["Rest.*_0","Rest.*_1","Rest.*"]'

greift data-colors nicht mehr, das icon dreht sich weiterhin und auch das warn Icon wird angezeigt.

OdfFhem

@TomLee

So, wie es aussieht, scheint ja (vielleicht) noch irgendwas zwischen # und Restabfall zu stehen.

Was passiert denn z.B. bei:

  data-states='[".*Rest.*_0",".*Rest.*_1",".*Rest.*"]'

TomLee

#37
Nö, das liegt an <meta name="widget_base_width" content="145">

Hier ein list:

Internals:
   DEF        ical url https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxx%40group.calendar.google.com/private-xxxxxxxxxxxxx/basic.ics 21600
   FUUID      5c97edc1-f33f-78f5-4056-9a9141279c98c990
   NAME       Google_Abfallkalender
   NOTIFYDEV  global
   NR         29
   NTFY_ORDER 50-Google_Abfallkalender
   STATE      triggered
   TYPE       Calendar
   READINGS:
     2020-01-03 15:42:39   calname         Abfallkalender
     2020-01-03 15:42:39   lastUpdate      2020-01-03 15:42:37
     2019-03-24 21:51:16   modeAlarm       
     2020-01-03 00:00:00   modeAlarmOrStart 7fb5254b241e3aaa7b000999ee14a341
     2019-03-24 21:51:16   modeAlarmed     
     2020-01-03 03:42:39   modeChanged     
     2020-01-03 15:42:39   modeEnd         582f3fe4cfa5a38e0ceac8d763c8d420;7aed1eba602cfb65fde4094333152d74;6e1dde3002f52ec32cda6a417e60f9f8;a98c3a74ca533579622f9e4364bb4918;d9dc29f465821a0fabdc43d09932533e;02fb86dbc492d6e222fbc19e4e2cb6e0;c1e2a31c97489039aaa504f0d149e9c7;ebf6e87c57e4d1a85062886b25052684;eb610dc955cf631b0252fda8446db7d2;e388d29a4c3fa6f1bd963a77a82a7421;ee44968df440488e3ba08050bda22862;c123d3b08e03ce2ca21654ec618a2b07;f14daa0e54a687dd6a3c67f43b70203e;8e83be071a7fcf849357b382e2aa459f;eb42c49d73b8d760b659c6684d06988d;aef6114e170537127af2664e5d67e86d;c017cd272c8f98672094ab97ac8e5529;998bab8d5729e32ef744e31038781d87;419d8ccceafcd36b67e311ca26f3fac1;89eabf7970b2f89d14cfb5f13c574620;f9af1f2e0726de919a39640b354b0d2e;5d51522a84ac8cdc7e73c67a47ca3c3e;da49e537f29049e2118542597bee4a48;541a59866bb0bfc815b5e80f0589ee42;5696bf20a3c88a4b1bcf882576f0dd26;572f0bb7ef63b2e963487c3af808b20c;11bd91193f7d3a93c2a6a16aec72fdcc;f7844ec12b6b84b4d8c86b153eaaddc7;08536644298e5eb9eac444d9c93ad73f;45be9db66ba7aeae1e8e060ee425bc5f;b6be8ba12e4e30495d1286a91e8fb917;3b0a6696506db385748d5188d7889024;d7bf29a97b1d951828b946f5269ed39c;41ca1837c4cff5965066e2896297fbe3;583e84afdcac86d4785510c4dff92d56;0c149c16fbad06f16089b058499e07bb;d8916e6d4b8b0f8f2f3f71f859b135c6;31c0932540a2234f58ec0678c0bbf723;5638070cc1ec2db4f06ec5fde036449c;f190c596790bf2ac1157b81e4e6dfa32;3cd27ac838f7daee217ca93dbf4f6b4d;14d6809307e51dab83f10b3810c01174;70474697cd4f0da4acc74fdfda22260c;1626edd70165f01417906c420c682494;0104ee61a54c7ab12cd28bce85fdbb88;1269b10a4eeec11f32ae575b6b7d7216;df96549c28e25b9d1a0660b870fa5dc8;484dbedc2a414d2aa82a6100add56ebc;3b224fe1e8cd62e856d57b453b3d0b60;6a9f936d8a0ba0a5c1e3300bc4c34353;105e286a6ef3804f23e40b1e14e26c8b;a64c970419795b03acb56c91b70f96a8;558d6b0c585a263d960006b07d77e62a;c770c0e3e2570eb091ad7f7b1718ab65;6260bd137f775f7b4ae40689a0d98063;f79bc7e4c13ac3b1378ecdbf956ce834;c69e12aa6531dcfd11ddcf0a3db5e99f;a873ea28a9c9920054b518a5b5033187;ac081de07be60181774ed7cee6d7346f;a1fd7aea39539424379a8aa076807735;1snba435r7nl2sgf96c0u8nvf5googlecom;ef9a53d15792953adfeaae6a44b2d570;90e1eb1335b38b3ba0118e3a7c879c86;9762ebe6a27750ff35b53258a11e640d
     2020-01-02 02:51:34   modeEnded       
     2020-01-03 00:00:00   modeStart       7fb5254b241e3aaa7b000999ee14a341
     2020-01-03 03:42:39   modeStarted     
     2020-01-03 15:42:39   modeUpcoming    765c9ff441328f907e10d1f7340f4eab;79e40c16c5d33c18881a411885c74332;6ea7a4f4530661a18f9496b5953af254;c70ad69e1fceb62ec59625c849edcf2d;dd0c6e7764c097adc3930c2483035556;bfe4ee05ee9d98c67e37c399e390717f;c44b79b951885b9b58c6a2c34d910408;fdbef9f8655f130319675f4c0d2e0742;f008c177ffa0522adaf5645735ed3292;fb8c488b37b7a18725a885008a35f956;4fb62630fdab0979b6ee756247304252;2d4d6787dd64ada2ac08a497ff0c430b;826def62fd7c0887d60a16484af78789;14b4a328edf017f24d6eeb66cf129dbf;36cdcb3d85ca848343b639e0b8ef6740;85872e58a7c014ae48b1bcb58c18ad8d;2138700127853d3bd505c7db259c3539;82860ccedf565de0299210875cff6de4;2a71f36a8842449fd9d857a3a3ed8c3a;eb8b750fdf15355e27fbadeaebcf4fc0;2ac7c834e71f860dde4d4ea0c9c06cfc;580499cdc8c87c4836d5ff1d5bce49aa;33fb96831adc046dfc9cbc539a502dc4;38ca550456ccd076c401d50731a8374f;105e489dabbaadb722ef849f6286ae43;d29af509ca3ef000012c7a6cfe5b019f;95b1b82a6c08d6eee822b18ac6d7e268;27c2905cfa3110e5eacdd4d0014a9e49;53412487b7244c391d6ba7ad425db1cc;9b5e064989b8358532b63f388d4d452f;4699d75997c25d24c24e530756b70588;fb639d3e8eadd372149f1652c5ccca1d;d7110cfb4a147fe6056d7ed91bcfdaf7;32ec938a656e6d1375014255716ce3e0;71e74e93f145129e0f4dcc4877f2bf47;567161f968d598b820f4fcb64fb24f29;f5917fb0f47b30beadf13c477763997c;527082e6b54d8b84af7e84e3ee9f90ba;0e8dffdb68834552f5bf4b0148781b8e;6e2f758ca1c3bd09d587e10064566607;ed2507e75481a442e015bf7742d263b1;df8e000d95288f66721725906f71f495;ca906a241b4a6fddefc4b44b146faf79;d2f8d4c07058b915d2142e61a4cb45a2;93a5a0dd5c0f00ca4fb788bda919680f;d962b2775ac588af1e827435b46faddf;bb15234ad2981dd9ed0e1fedd87e32ba;7f278cb9254cd6948610b67fe251b550;bad1dd3e8cfff9bfcfeca172b1a4263e;1e67ecce77a21b0e90071c82681c5233;41321c8f1ec5864ce3e9c0858a5f177f;c88d10ddcfb8b8e75f0b2ab6f9db319f;2cc2c8c5407ea3ba9cb1d1c2fe4be3a6;0c622b3d451ec7bdf4605cd3a7ed9edd;d4eed7b2adcb38dc54ed684387b4b8ab;259e42fff0b219e134fcd2de4cb885c8;592d73dce2f69ce9f06d0646a31007f5;cb50e43d0bedf304fa3bea12011e00bd;dcee2f091eb2b45cb38ab60658efc101;ff01d36183eee1d049a36a0740bdd927;9ce6cc9b038ede3ce3e8333f09e34719
     2020-01-03 15:42:39   nextUpdate      2020-01-03 21:42:37
     2020-01-03 15:42:39   nextWakeup      2020-01-03 21:42:37
     2020-01-03 15:42:39   nextWaste        Restabfall/Wertstoffe
     2020-01-03 15:42:39   nextWastedays    Restabfall/Wertstoffe_0
     2020-01-03 15:42:39   state           triggered
Attributes:
   comment    "$T1 $D $S"
nextWasteDays {int((fhem('get '.$name.' events format:custom="$t1" limit:from=0,count=1',1) + 86399 - time) / 86400)},
nextWaste {fhem('get '.$name.' events format:custom="$S" limit:from=0,count=1')}
   defaultFormat "$T1 $S"
   room       Kalender
   userReadings nextWaste {my $var1 =fhem('get '.$name.' events format:custom="$S" limit:from=0,count=1',1);
my $var2 =int((fhem('get '.$name.' events format:custom="$t1" limit:from=0,count=1',1) + 86399 - time) / 86400);
my $regex = qr/Abfuhrtermin|in|Buxtehude| am \d{1,2}\.\d{1,2}\.\d{4}/p;
my $result = $var1 =~ s/$regex//rg;
return $result},
nextWastedays {my $var1 =fhem('get '.$name.' events format:custom="$S" limit:from=0,count=1',1);
my $var2 =int((fhem('get '.$name.' events format:custom="$t1" limit:from=0,count=1',1) + 86399 - time) / 86400);
my $regex = qr/Abfuhrtermin|in|Buxtehude| am \d{1,2}\.\d{1,2}\.\d{4}/p;
my $result = $var1 =~ s/$regex//rg;
my $nwd = "$result"."_"."$var2";
return $nwd}

TomLee

#38
Nochmal ups, jetzt im list wo ichs poste sehe ich das Leerzeichen auch.

Und mit Leerzeichen funzt auch das letzte data-states  :)

Dann werd ich mal wieder an alle vier Tonnen machen.

Danke für die Hilfe.

edit:

es sind mehre Leerzeichen gewesen die ich in $regex = qr/Abfuhrtermin.|.in|.Buxtehude|.am \d{1,2}\.\d{1,2}\.\d{4}/p; nicht entfernt hatte 8)

TomLee

#39
Also, mit dem Code aus #26 war ich schon fast richtig gelegen, das Leerzeichen im RegEx .([0|1]) war hier nur zuviel.

Jetzt rotiert das Icon bei .*_1 und .*_0 (sonst nicht), das warn Icon wird immer angezeigt außer bei .*_0 (weil default aus) und data-colors greift auch wie gewünscht, super.

<header>Müllabfuhr</header>
        <div class="vbox">
<div class="bigger bottom-narrow"
                data-device="Google_Abfallkalender"
        data-type="symbol"
        data-get="nextWastedays"
data-get-warn=".*(\d+).*"
data-states='["R.*_([0|1])","B.*_([0|1])","H.*_([0|1])","S.*_([0|1])","R.*_.*","B.*_.*","H.*_.*","S.*_.*"]'
data-colors='["#87837D","#783C00","green","red","#87837D","#783C00","green","red"]'
data-icons='["fa-trash-o warn fa-spin","fa-trash-o warn fa-spin","fa-trash-o warn fa-spin","fa-trash-o warn fa-spin","fa-trash-o warn","fa-trash-o warn","fa-trash-o warn","fa-trash-o warn"]'>
        </div>
<div data-type="label"
data-device="Google_Abfallkalender"
data-get="nextWaste"
class="top-narrow">
</div>
</div>

TomLee

Für die die es interessiert:

Alle benötigten Daten zur Darstellung des Abfallstatus stehen ja bereits in dem userReadings nextWastedays (im Calendar-Device), für das Label hatte ich bisher zusätzlich extra ein userReadings (nextWaste) welches mich immer gestört hat, das ist ab jetzt hinfällig, dank data-part  :)

<header>Müllabfuhr</header>
        <div class="vbox">
<div class="bigger bottom-narrow"
            data-device="Google_Abfallkalender"
data-type="symbol"
data-get="nextWastedays"
data-get-warn=".*(\d+).*"
data-states='["R.*_([0|1])","B.*_([0|1])","H.*_([0|1])","S.*_([0|1])","R.*_.*","B.*_.*","H.*_.*","S.*_.*"]'
data-colors='["#87837D","#783C00","green","red","#87837D","#783C00","green","red"]'
data-icons='["fa-trash-o warn fa-spin","fa-trash-o warn fa-spin","fa-trash-o warn fa-spin","fa-trash-o warn fa-spin","fa-trash-o warn","fa-trash-o warn","fa-trash-o warn","fa-trash-o warn"]'>
        </div>
<div data-type="label"
    data-part="(.*)_.*"
data-device="Google_Abfallkalender"
data-get="nextWastedays"
class="top-narrow">
</div>
</div>