Neues Modul für Abfallkalender ABFALL

Begonnen von uniqueck, 27 Januar 2016, 01:02:41

Vorheriges Thema - Nächstes Thema

Dummbatz

#630
Hi Kollegen,

hat einer von Euch das Modul mit dem Filter Attribut laufen ??

Dann würde ich mich mal über 1 Beispiel freuen.

Ich habe nämlich folgendes vor. Das Modul läuft ja, aber als Text unter der Tonne bekomme ich immer so eine Anzeige:

ZitatBioabfall(14-täglich)

Ich möchte es aber gerne so haben:

ZitatBioabfall

Das kann ich ja entweder über Regex lösen oder so hoffe ich auch über den Filter ??

Danke & Grüße

Dummbatz
FHEM auf Pi3 mit 1 nanoCul433 schaltet 2 Lichtkreise mit  ITL-1000 Empfänger + 5 Funkdosen ELRO / Unitec + DEC200 von AVM

kvo1

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

dieda

Jetzt brauch ich doch mal eure Hilfe bei diesem Modul.

Ich möchte ja nur ein Grid verwenden und da soll auch nur eine Mülltonne bzw. ein Bus oder ein Tannebaum auftauchen.
Die Tonne entsprechend soll die Farben
Gelb für den gelben Sack erhalten
Blau für Papier
grau für Restmüll
orange für Bio
gelb für Problemmüll

Mein Problem: Die Tonne blinkt ständig und ist grau.

Ich habe Kvo1's Code schon einmal angepasst
Zitat<li data-row="1" data-col="3" data-sizex="2" data-sizey="2" class="semitransparent">
<header style="color:orange">Muell</header>
   <div data-device="myAbfall"
            data-type="symbol"
            data-get="next"
            data-get-warn=".*(\d+).*"
            data-get-on='["Abfalltermin:Papiersammlung_1","Abfalltermin:Problemabfallsammlung_1","Abfalltermin:Gelbe Tonne_1","Abfalltermin:Bioabfall_1","Abfalltermin: Restabfall_*"]'
            data-on-colors='["blue","orange","yellow","red","grey"]'            
            data-icons='["fa-trash-o blink","fs-bag warn blink","fa-trash-o blink","fa-trash-o blink","fa-trash-o","fs-bag warn","fa-trash-o","fa-trash-o"]'
            class="top-space big warn">
   </div>
<br>
   <div class="norrow inline" data-type="label" data-device="myAbfall" data-part="4" data-get="next_text"></div>
   <div class="norrow inline" data-type="label" > am:  </div>
   <div class="norrow inline" data-type="label" data-device="myAbfall" data-part="4" data-get="next_datum"></div>
</li>
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

stera

Vielen kVo,

habe das nun endlich auch mal begriffen, wie das funktioniert  8) 8)


@ dieda:

Geht die Anzeige vom Datum usw..??

  <div class="norrow inline" data-type="label" data-device="myAbfall" data-part="4" data-get="next_text"></div>
   <div class="norrow inline" data-type="label" > am:  </div>
   <div class="norrow inline" data-type="label" data-device="myAbfall" data-part="4" data-get="next_datum"></div>

Wenn nicht, stimmt das data-device???


Gruß,
SteRa

dieda

Die Datumsanzeige funktioniert. Mir geht es um die Icons
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

ArduPino



Zitat von: dieda am 27 Januar 2017, 17:46:36
Jetzt brauch ich doch mal eure Hilfe bei diesem Modul.



Mein Problem: Die Tonne blinkt ständig und ist grau.

Ich habe Kvo1's Code schon einmal angepasst

Du hast irgend wie viel mehr Icons als Farben definiert. Das muss doch gleich sein...oder? Farbe 1 bekommt icon 1, Farbe 2 icon 2.

Gesendet von meinem Wileyfox Swift mit Tapatalk


dieda

So ganz verstehe ich nicht, was du damit aussagen willst.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

ArduPino

#637
Zitat von: dieda am 28 Januar 2017, 15:33:54
So ganz verstehe ich nicht, was du damit aussagen willst.

Du hast bei data-on-colors 5 Farben hinterlegt.
Dann hast du bei data-icons aber 8 Icons angegeben.
Muss das nicht gleich sein ? Selbst wenn eine Farbe mehrmals vorkommt, sonst kann die Zuordnung ja gar nicht passen.
Auch verstehe ich dein data-get-on nicht.
Ich stell mal meinen code hier rein, der funktioniert auf jeden Fall.

<tr>
<td><div data-type="label" class="large thin">Hausmüll</div></td>
<td>
<div data-type="symbol"class="bigger warn"
data-device="myAbfall" data-get="Abfall_ARTAbfuhrterminRestmuell_tage"
data-get-on='["0","2"]'
data-on-colors='["#455544","#455544"]'
data-icons='["fa-trash warn fa-spin","fa-trash warn"]'>
</div>
<div data-type="label" class="small top-narrow" data-device="myAbfall" data-get="Abfall_ARTAbfuhrterminRestmuell_wochentag"> </div>
</td>
</tr>


Da sehe ich direkt, das ich was falschs geschrieben hatte, es muss "fa-spin" heißen, damit dreht sich meine Tonne einen Tag vor und am Tag des Termins. Dafür das data-get-on 0 und 2
Bei 0-1 wird das erste Icon und die erste Farbe benutzt, bei 2 und mehr das zweite Icon und die zweite Farbe.

EDIT:
Habe noch mal deinen Beitrag gelesen, du willst nur ein Symbol angezeigt bekommen. Deshalb ist sicher das data-get-on auch anders als bei mir.
Trotzdem müssen die Felder aber alle gleich sein, bei data-get-on z.B. 5 Werte, bei den Farben 5 Werte und eben auch 5 Icons.

unimatrix

#638
Hallo,

super hilfreiches Modul, vielen Dank. Bei mir bekomme ich die Termine nicht als ICS schon vom Entsorger sondern habe mir eigenen eigenen Google Kalender erstellt, wo alle Abfalltermine drin sind. Die habe ich mir so eingetragen,dass sie immer um Mitternacht beginnen und um 9 Uhr morgens enden. Grund: Wenn die Tonne bis 9 nicht raus ist es auch egal, bzw. sie interessiert einen dann nicht mehr.

Nun zeigt das Abfall-Modul ja entsprechende Readings now_.* an, wenn der Termine gerade läuft. Das mache ich mir zu Nutze, um dann morgens auf dem Display die rotierende Tonne mit einer 0 zu haben, und mit dem Laben heute. Dazu habe ich noch folgende Hilfsfunktion definiert (kann man in die 99_myUtils packen)
sub datumHeuteMorgen($){
my $compareDate = shift;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900; $mon += 1;
my $heute = sprintf('%02d.%02d.%04d', $mday, $mon, $year);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);
$year += 1900; $mon += 1;
my $morgen = sprintf('%02d.%02d.%04d', $mday, $mon, $year);
return "heute" if $compareDate eq $heute;
return "morgen" if $compareDate eq $morgen;
return $compareDate;
}


Die wandelt einfach das Datum  in den String "heute" oder "morgen" um oder lässt es so wie es ist, wenn es eben gerade nicht heute oder morgen ist.

Weiterhin folgende userReadings


ftui_text {ReadingsVal("abf.abfall","now_text","") eq "" ? ReadingsVal("abf.abfall","next_text","") : ReadingsVal("abf.abfall","now_text","");;},
ftui_tage {ReadingsVal("abf.abfall","now_text","") eq "" ? ReadingsVal("abf.abfall","next_tage","") : 0;;},
ftui_datum {ReadingsVal("abf.abfall","now_text","") eq "" ? datumHeuteMorgen(ReadingsVal("abf.abfall","next_datum","")) : "heute";;}


So kann ich ein und das selbe Reading in ftui nutzen, egal ob now gerade gesetzt ist oder nicht. Wenn now_tage dann 0 ist, kann man das im FTUI dafür nutzen, die Tonne zu rotieren, wenn es 1 ist, kann man sie blinken lassen.

uniqueck

Zitat von: unimatrix am 29 Januar 2017, 10:19:09
Hallo,

super hilfreiches Modul, vielen Dank. Bei mir bekomme ich die Termine nicht als ICS schon vom Entsorger sondern habe mir eigenen eigenen Google Kalender erstellt, wo alle Abfalltermine drin sind. Die habe ich mir so eingetragen,dass sie immer um Mitternacht beginnen und um 9 Uhr morgens enden. Grund: Wenn die Tonne bis 9 nicht raus ist es auch egal, bzw. sie interessiert einen dann nicht mehr.

Nun zeigt das Abfall-Modul ja entsprechende Readings now_.* an, wenn der Termine gerade läuft. Das mache ich mir zu Nutze, um dann morgens auf dem Display die rotierende Tonne mit einer 0 zu haben, und mit dem Laben heute. Dazu habe ich noch folgende Hilfsfunktion definiert (kann man in die 99_myUtils packen)
sub datumHeuteMorgen($){
my $compareDate = shift;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900; $mon += 1;
my $heute = sprintf('%02d.%02d.%04d', $mday, $mon, $year);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);
$year += 1900; $mon += 1;
my $morgen = sprintf('%02d.%02d.%04d', $mday, $mon, $year);
return "heute" if $compareDate eq $heute;
return "morgen" if $compareDate eq $morgen;
return $compareDate;
}


Die wandelt einfach das Datum  in den String "heute" oder "morgen" um oder lässt es so wie es ist, wenn es eben gerade nicht heute oder morgen ist.

Weiterhin folgende userReadings


ftui_text {ReadingsVal("abf.abfall","now_text","") eq "" ? ReadingsVal("abf.abfall","next_text","") : ReadingsVal("abf.abfall","now_text","");;},
ftui_tage {ReadingsVal("abf.abfall","now_text","") eq "" ? ReadingsVal("abf.abfall","next_tage","") : 0;;},
ftui_datum {ReadingsVal("abf.abfall","now_text","") eq "" ? datumHeuteMorgen(ReadingsVal("abf.abfall","next_datum","")) : "heute";;}


So kann ich ein und das selbe Reading in ftui nutzen, egal ob now gerade gesetzt ist oder nicht. Wenn now_tage dann 0 ist, kann man das im FTUI dafür nutzen, die Tonne zu rotieren, wenn es 1 ist, kann man sie blinken lassen.
Sehr schönes Beispiel, würde ich gerne mit deiner Erlaubnis in den entsprechenden Wiki Eintrag übernehmen.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


unimatrix

Zitat von: uniqueck am 29 Januar 2017, 11:02:13
Sehr schönes Beispiel, würde ich gerne mit deiner Erlaubnis in den entsprechenden Wiki Eintrag übernehmen.

Gern, aber habe noch Fehler entdeckt. Etwas verfrüht gepostet. Ich optimiere es jetzt und poste nochmal. Kanns auch gerne direkt ins Wiki eintragen?

uniqueck

Zitat von: unimatrix am 29 Januar 2017, 11:38:33
Gern, aber habe noch Fehler entdeckt. Etwas verfrüht gepostet. Ich optimiere es jetzt und poste nochmal. Kanns auch gerne direkt ins Wiki eintragen?
Sofern du ein Account fürs fhem wiki hast darfst du das gerne machen.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


unimatrix


Otto123

Hallo Constantin,

ich will meinen Post nochmal aufgreifen. Ich habe jetzt jeden Tag immer vor 7:00 Uhr und nach 7:00 die Readings abgegriffen. Scheinbar zufällig ergibt sich immer mal das Bild wie in meinem alten Post: exakt um 7:00, außerhalb des Abfragezyklus des Kalenders wird nur das reading now_text erzeugt und mit 0 beschrieben. Ich habe das in meiner Auswertung einfach berücksichtigt, also kein großes Problem.
Zur Vollständigkeit mal noch die Ansicht wenn es wie heute komplette now_ Readings gibt, da wird 7:00 auch nichts geschrieben.
Vielleicht hilft es, wenn es nur bei mir ist, ist es auch gut :)
Um 4:00 Uhr
     2017-02-01 02:31:55   next_wochentag  Mittwoch
     2017-02-01 02:31:55   now             AbfallKalender_Hausmuell
     2017-02-01 02:31:55   now_datum       01.02.17
     2017-02-01 02:31:55   now_text          Hausmüll
     2017-02-01 02:31:55   now_wochentag   Mittwoch
     2017-02-01 02:31:55   state           7
Um 7:02 Uhr
     2017-02-01 06:31:55   next_wochentag  Mittwoch
     2017-02-01 06:31:55   now             AbfallKalender_Hausmuell
     2017-02-01 06:31:55   now_datum       01.02.17
     2017-02-01 06:31:55   now_text          Hausmüll
     2017-02-01 06:31:55   now_wochentag   Mittwoch
     2017-02-01 06:31:55   state           7

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

uniqueck



Zitat von: Otto123 am 01 Februar 2017, 09:24:39
Hallo Constantin,

ich will meinen Post nochmal aufgreifen. Ich habe jetzt jeden Tag immer vor 7:00 Uhr und nach 7:00 die Readings abgegriffen. Scheinbar zufällig ergibt sich immer mal das Bild wie in meinem alten Post: exakt um 7:00, außerhalb des Abfragezyklus des Kalenders wird nur das reading now_text erzeugt und mit 0 beschrieben. Ich habe das in meiner Auswertung einfach berücksichtigt, also kein großes Problem.
Zur Vollständigkeit mal noch die Ansicht wenn es wie heute komplette now_ Readings gibt, da wird 7:00 auch nichts geschrieben.
Vielleicht hilft es, wenn es nur bei mir ist, ist es auch gut :)
Um 4:00 Uhr
     2017-02-01 02:31:55   next_wochentag  Mittwoch
     2017-02-01 02:31:55   now             AbfallKalender_Hausmuell
     2017-02-01 02:31:55   now_datum       01.02.17
     2017-02-01 02:31:55   now_text          Hausmüll
     2017-02-01 02:31:55   now_wochentag   Mittwoch
     2017-02-01 02:31:55   state           7
Um 7:02 Uhr
     2017-02-01 06:31:55   next_wochentag  Mittwoch
     2017-02-01 06:31:55   now             AbfallKalender_Hausmuell
     2017-02-01 06:31:55   now_datum       01.02.17
     2017-02-01 06:31:55   now_text          Hausmüll
     2017-02-01 06:31:55   now_wochentag   Mittwoch
     2017-02-01 06:31:55   state           7

Gruß Otto

Hi Otto,

ich habe noch keine richtige Idee wo ich da ansetzen soll.

Vielleicht muss ich paar mehr los einbauen und dir eine extra Version zur Verfügung stellen.

Gruß Constantin

P.S. Welche Version setzt du ein für  Oma dev Strang oder die von Master Strang.



Gesendet von meinem ONEPLUS A3003 mit Tapatalk