Kalender mit Titel auslesen und ver. Dummies steuern

Begonnen von no_Legend, 09 Januar 2019, 09:31:34

Vorheriges Thema - Nächstes Thema

Otto123

Ja, vor einiger Zeit wurde ein Fehler bereinigt.
ZitatreadingList
Space separated list of readings, which will be set, if the first argument of the set command matches one of them.
Du musst das Komma gegen Leerzeichen tauschen

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

CoolTux

Ichnhabe das Notify die Tage etwas angepasst. Otto hatte das ja schon mal eingeworfen. Habe den trigger nun noch um changed erweitert.


calendar.*:(triggered|changed:.*) { calendarEvents($NAME) }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

no_Legend

Zitat von: CoolTux am 17 April 2019, 17:34:30
Ichnhabe das Notify die Tage etwas angepasst. Otto hatte das ja schon mal eingeworfen. Habe den trigger nun noch um changed erweitert.


calendar.*:(triggered|changed:.*) { calendarEvents($NAME) }


Danke

Zitat von: Otto123 am 17 April 2019, 17:28:01
Ja, vor einiger Zeit wurde ein Fehler bereinigt.Du musst das Komma gegen Leerzeichen tauschen

Gruß Otto

Danke

Könnt ihr mir vielleicht noch erklären wie ich dass ganze auf andere Betreffs erweitere?
Ich bekomme es einfach nicht gebacken.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Otto123

Du ersetzt alle 'Urlaub' gegen irgendeinen Variablen Namen. Setzt die Variable am Anfang der Sub bzw. machst noch einen zweiten Übergabe Parameter.
Ein Beispiel für die Verarbeitung mehrere Parameter findest Du z.B. hier:
https://wiki.fhem.de/wiki/E-Mail_senden#Raspberry_Pi

Gut wäre auch noch Groß und Kleinschreibung zu ignorieren. (?i)

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

no_Legend

Zitat von: Otto123 am 17 April 2019, 21:02:47
Du ersetzt alle 'Urlaub' gegen irgendeinen Variablen Namen. Setzt die Variable am Anfang der Sub bzw. machst noch einen zweiten Übergabe Parameter.
Ein Beispiel für die Verarbeitung mehrere Parameter findest Du z.B. hier:
https://wiki.fhem.de/wiki/E-Mail_senden#Raspberry_Pi

Gut wäre auch noch Groß und Kleinschreibung zu ignorieren. (?i)

Gruß Otto

Danke für den Tip.
Verstanden hab ich es glaub ich.
Was ich aber in dem RPi Script nicht sehe, ist wie das ganze dann mit mehreren Dummies zu handhaben ist.
Das Mailprogramme kann wohl mit mehreren Adressen in einer Variablen umgehen.

Vll noch mal zur Erklärung:
Ich hab einen Kalender. Cal_Rob_FHEM
In diesem werden Ganztages Termine mit folgenden Betreffs zum Beispiel angegeben:
Urlaub, Besuch, Babysitter usw.
Dazu gibt es dann auch Dummies:
Cal_Rob_FHEM_Urlaub
Cal_Rob_FHEM_Besuch
Cal_Rob_FHEM_Babysitter
usw.

Je nach dem was im Betreff steht, soll dann der entsprechende Dummie gesetzt werden.
Es kann natürlich auch sein, dass zwei Betreffs gleichzeitig sind.
Ganztägig oder auch einer Ganztägig und ein andere nur Stundenweise.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Otto123

Ja mein Hinweis war nur für den Betreff. Das mit dem Dummy  muss Leon Dir erklären, das ist mir zu kompliziert.  :D
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

CoolTux

Das Problem ist das ich mit mehreren Dummys und mehreren Kalendern arbeite. Pro Kalender ein Dummy. Das musst Du bisschen anpassen. Ich schaue mal.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ok. Basierend auf Deinen Daten von Type (Dummys) und Aufbau der Dummys
Zitat von: no_Legend am 17 April 2019, 22:01:06
Dazu gibt es dann auch Dummies:
Cal_Rob_FHEM_Urlaub
Cal_Rob_FHEM_Besuch
Cal_Rob_FHEM_Babysitter
usw.
habe ich mal folgendes zusammen gesetzt.
Leider ungetestet.


sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = '';
    my $upcoming;
    my @start = split('\n',CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="start"'));
    my @upcoming = split('\n',CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="upcoming"'));
    my $subject;
    my $dummy_subject;
    my @dummys = devspec2array('Cal_Rob_FHEM_.*');

    foreach my $dummy (@dummys) {
        $dummy_subject = (split('_',$dummy))[3];
   
        if ( scalar(@start) > 0 ) {
            foreach $start ( @start ) {
                $subject = (split('\s',$start))[0];
                CommandSet(undef,'Cal_Rob_FHEM_'.$dummy_subject.' '.($subject eq $dummy_subject ? 1 : 0));
                $value = 1 if ( int((split('\s',$start))[1] / 86400) != int(time() / 86400) and $subject eq $dummy_subject );
            }
        }
        else { CommandSet(undef,'Cal_Rob_FHEM_'.$dummy_subject.' 0') }

        if ( scalar(@upcoming) > 0 and $value == 0 ) {
            foreach my $dummy (@dummys) {
                $dummy_subject = (split('_',$dummy))[3];
               
                foreach $upcoming ( @upcoming ) {
                    $subject = (split('\s',$upcoming))[0];
                    $value = 1 if ( length($upcoming) > 0 and $subject eq $dummy_subject );
                }
               
                CommandSet(undef,'Cal_Rob_FHEM_'.$dummy_subject.' tomorrow '.$value);
            }
        }
    }
}



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

no_Legend

#53
Zitat von: CoolTux am 17 April 2019, 23:14:55
Ok. Basierend auf Deinen Daten von Type (Dummys) und Aufbau der Dummys habe ich mal folgendes zusammen gesetzt.
Leider ungetestet.


sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = '';
    my $upcoming;
    my @start = split('\n',CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="start"'));
    my @upcoming = split('\n',CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="upcoming"'));
    my $subject;
    my $dummy_subject;
    my @dummys = devspec2array('Cal_Rob_FHEM_.*');

    foreach my $dummy (@dummys) {
        $dummy_subject = (split('_',$dummy))[3];
   
        if ( scalar(@start) > 0 ) {
            foreach $start ( @start ) {
                $subject = (split('\s',$start))[0];
                CommandSet(undef,'Cal_Rob_FHEM_'.$dummy_subject.' '.($subject eq $dummy_subject ? 1 : 0));
                $value = 1 if ( int((split('\s',$start))[1] / 86400) != int(time() / 86400) and $subject eq $dummy_subject );
            }
        }
        else { CommandSet(undef,'Cal_Rob_FHEM_'.$dummy_subject.' 0') }

        if ( scalar(@upcoming) > 0 and $value == 0 ) {
            foreach my $dummy (@dummys) {
                $dummy_subject = (split('_',$dummy))[3];
               
                foreach $upcoming ( @upcoming ) {
                    $subject = (split('\s',$upcoming))[0];
                    $value = 1 if ( length($upcoming) > 0 and $subject eq $dummy_subject );
                }
               
                CommandSet(undef,'Cal_Rob_FHEM_'.$dummy_subject.' tomorrow '.$value);
            }
        }
    }
}



Grüße

Super. Danke.
Probiere ich heute Abend gleich aus.

Melde mich später noch mal.


Edit: Hab es getestet, funktioniert nicht ganz.
Es wird wenn Heute Urlaub ist und Morgen Besuch eingetragen ist,
auch im Dummy Urlaub für tomorrow eine 1 gesetzt.

Dazu wird auch wenn man den Kalendereintrag für morgen (Besuch) wieder löscht leider nicht beim Dummy das Reading tomorrow auf 0 gesetzt.
Weder der Dummie für Urlaub noch Besuch wir zurück gesetzt.

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Dreggwatz

Vielen Dank CoolTux für die Subroutine und die Dummies! Ist genau was ich gesucht habe, da meine Urlaubskalendereinträge auch immer den ganzen Tag belegen.
Ich benötige die Urlaubsmeldung nur um in meinem ASC als WE zu deklarieren. Habe Deine devices und routine erstellt, allerdings glaube ich das für die Funktion noch etwas fehlt.
Hatte heute (Samstag) mal als Urlaub in den Kalender geschrieben, gestern kam nach update des Kalenders auch der trigger und im Dummy stand "tomorrow 1". Heute morgen hab ich wieder manuel Kalender update gemacht und es wurde "tomorrow 0" was ja auch stimmt da heute Urlaub und morgen nicht mehr. Allerdings würde heute ja dann mein ASC über holiday2we ja die Shutter nicht in der späten Zeit fahren... in der he.holiday gibt es "state" für heute und "tomorrow" in meinem dummy gibt es aber kein heute, oder?
Hast du für das Kalenderupdate ein notify um Mitternacht mit get update? In meinem Kalender kann ich das attr update async nicht auswählen.

Kalender:
Internals:
   DEF        ical url http://calendar.google.com/calendar/ical/***/basic.ics 86400
   FUUID      5ea93d2b-f33f-8381-8a03-3e45d4204b083678
   NAME       calendarTNT
   NOTIFYDEV  global
   NR         100
   NTFY_ORDER 50-calendarTNT
   STATE      triggered
   TYPE       Calendar
   READINGS:
     2020-06-13 07:58:26   calname         TNT
     2020-06-13 07:58:26   lastUpdate      2020-06-13 07:58:06
     2020-06-13 08:05:00   modeAlarm       49CC320D906449D894D3BDB2D1A36B7F;009891A8B80245858FC962E7F9030E8B;896F5A18C99541D89800511268FD2673;46DEDA7135A541FFAC1FF5CE8C5D7493;BD2675B87DE74434BB0F2025C5899534;480943231AA541C58199FBE323282374;FB5F3DA4187F418F8014517B8D6D3624;D15BA07634934FFB8F2058CA09D0D6E6;3C662B379717458098CEDC3880AEAC51;FDAA6C742D744222922C777B29351BD1;D1C9249D0BC14DF08AF95CA0F3C4CCDB
     2020-06-13 08:05:00   modeAlarmOrStart 49CC320D906449D894D3BDB2D1A36B7F;009891A8B80245858FC962E7F9030E8B;896F5A18C99541D89800511268FD2673;46DEDA7135A541FFAC1FF5CE8C5D7493;BD2675B87DE74434BB0F2025C5899534;480943231AA541C58199FBE323282374;FB5F3DA4187F418F8014517B8D6D3624;D15BA07634934FFB8F2058CA09D0D6E6;3C662B379717458098CEDC3880AEAC51;FDAA6C742D744222922C777B29351BD1;D1C9249D0BC14DF08AF95CA0F3C4CCDB;9C9B6A4B95A54F0AA4792F820F62EB7D;C8558A2C44CD46FFA4A2883FF90B255B
     2020-06-13 00:00:00   modeAlarmed     
     2020-06-13 08:00:00   modeChanged     923A90ACF9794AFAA55160171AB84C5B
     2020-06-13 08:05:00   modeEnd         AE733A3948514404B1EB8E0181CB0F43;377E094D609C4C9C8FE9EB92BBF20CAD;D1087C41938E48F3B9A591DCC50121C6;86297990A77A4E63B878391E13C3BCFD;00584A0633ED42C894FAA998DB954994;B39D1495B2F244DFAEEEF1350EF410E7;2DA18E58CC3F43538F9CB01C95C8B06C;92A5BBBA1C214C01A0BCB3F7E8170A7C;80DE39BFEC4C403BAF52577EDDF93912;23EBF89FB1D740BAA0B837B0B289C935;C13C3D06D9624ED3AE7D7FEB022D570E;0FDEE566EC4E43DDA32E3EB32807F618;5F15534DC88441CAA9A3D48C51A30579;EAD07A8DCA844B44BD3A95BC2B26E3FD;5DA07B80B9324C00BD4C10A87BF88BB4;DFE402C6E5024B22BEDD7C143DF206CB;101054FAFA0242D9B30AAC799BDD6252;36FF7E1472504E1F90EB44AF7E871512;F368074EF53447ADA9D9E1EBB7757608;207EF91857904FBA939749D041134D25;3464260BA96D49FCB0481E71EDDF2F8E;A836EC7264C74A58977C5B0C4B8AD509;E3456035B6384A7FACDC6BD264CE5F24;8DD1D86C60D14683BE929172C8A3FDAE;4D7A33D5E7174F16913838F29098F57C;A06D2CB0E18E44C4B4C56248FD867771;67346DBA3062480CB4ACBDB86A599030;966BAF887F0D400E95EE29AA7958A6FF;670797F450B24DB08AEB0C3A025E3F9E;4F1C4361EE034C3E9FD532CB79129F04;7kukuqrfedlm2f9t0skljusl2v7n12qmf52bohp4d6tgn5efaa5qiusa41pr48b0if80;A56A699293F7488B999E3FE2B9135C72;A1026CB43EE148A9842BD1EC0712ABCC;B95AC417E5E64DDCBC13BA7CBA4F67AC;D52DA74807A04704B51DB76D1448137A;1295C51F049247D496D9B44CAFB64710;E91657842CF54A16BA8F9A06B955234B;2D3E251E32794ADD9E59AF3AE322D6AB;FA064081C3B448E684697E4111BFC5B2;780E03E2D86E49F59FD9C0589DA56925;27CC4E12EA824133B69074E71157D958;4ED2F468020443EFABBC4E87533E7ECF;7601F84C467D4B75933F478D4BF6936C;836528B6F04F446FBD5521BE08BF9BA3;AF360D3B34594066A0560658B848EF7C;06022444D08C4DFDB0E52C80F9FBB45E;6E5057910471415B86ADA69003EDC3BE;71F7C902037D4F7EA4109D7394993020;5A840DBC7265457F878DFD22E9837F31;DD4462A9CB7847D3B31A3E509C5AA757;7kukuqrfedlm2f9tghr22juacqrjopi2t22iup1ch8rv4jmla1qvla2kn3cdpecqect0;3540785C48E84AA8BA6D1185A5D2176F;525855EE18944FEB96F8E36985E07841;8FE4CF4ED3AB438D9D96A5864866BC7B;536D2ED014234E9584EE2A432D656B29;C460AE9B79C54B1F8FCC52F20A227852;ECC1C4AA4ADF4DA2905D1698F52F341A;F67F5313958040438F7CEC322CC00DED;CD6958466D504AC59138BDF55167ED88;0FDA30AE7D7748ABBFCFF8F94BFB766F;4E57F6C3ECEA41CFBF7808114EB03C5A;53F27F24CEC74E8098816FCA7CC12530;E5408CF0A6C74947863C2FAA7B86C25E;3E3ADE59F08C42E29A9BD188D6D2C0DC;6782C0D96003487AAF164CB20A9E3BB5;62C37B1023184FE1A38CB5E71D1FCEF6;3AE42C1DCC79402D84B9834232C438ED;9CABED3CC6904C549ADC26901F456B9F;A564E6425E7949F5A2E9739EC0B16508;1rg5i16ih69u5cksqnt912amgbgooglecom;D3E7B4087D9B437EB596962926CAEC95;FF1C9BFA36EC4A69A405E4C1D569BD8A;3E0E22A08EE144FDA8E61AE76958E811;516C48A76AB749A6A0CC4E7C6AB5A5FA;B330A47FD65E4E5A8C46AEDD3071EF7B;A14C871EBA1A4361833FB5BF697218EE;F6FD24B100F44A758E8E070CD19C65F4;F3D7DBBB84594D3EAA75C86D9BAF7DC6;8473545F4A994C9CB3799F2FFEB251CA;80D56D0620AA441C99C0880EC62161D3;39C4BD7F9A604C63A6F74D9A8575DE9C;A654B89BC4584146A5AFC4A66F2091F6;D7789AFE109E4A4D93D7576AF8A3589E;088974B06FC647A08067D1E7FA96F074;7D8C1C2944B749A18EBAA786BE20B867;020C97206AE541E7A398D07F7C4DB1A8;76078A043AAD40AB8457F1878E80B893;EF7907D5C91D46E1AB8DDD8052478DBD;920022E2BA404367AC4895D5F6DF34A3;F2F8235A36DA4DEDB45530BBB1EE62CE;D3872EF32FBA4C73BE22319F7699CAA7;94241A0EC21546F18B5C1BF87BEEEBCB;C87DFFCF14C545C0ABFBD15B8C1D8163;8D00D8169F9E4C0D8CAA0A874D6BEB5E;AD097850EDEC455889D2A3A2E224D7FC;B7F95C67EEA3448293B0EEE2BC05C0D1;D99C7E41BCE442E7A7784CCCEFA92474;1A1D1CACCCAF4586980FE999466C9B7C;2AB385A1D06C42FABA323C028E740CCD;49A1A5DC4E6144C78A4A5647529E7D4A;DF6B2D3078444E168BCF56E32B15001A;E2CB805CCFAD40F8A03C30CC4B7D4100;19jfkuhpgu0e0lo380sa1k4g8hgooglecom;18C5D7F4232446139145830FD0E07F8E;9603B52DD5CE41E48280AC04FA16DA59;E27BCE4041ED4085B0C78601C2FD3006;9AFDD81F11E64CC998935F5E52E5181E;99A4FD0A7D234F4C9C687D3869BF39A0;44FFF29E867147248B6C61D634E60067;2B1F68DBE1054948AB97DBE7E3B8F8DB;F9B866D0F1B543A98FFF8723248A3167;h0ns6jld18d5dr8ireklf0dch8googlecom;35FF7FC539E84F928BC0B55F501AEF70;F2BF7D285D8A4126972F11D7A2F09543;33C2D9281CBC4FE4AC6A3A2E70487191;BF6D5FC7749D4B5F831D4E8DE4E00342;08A8540204844543BF696F84D7BEDB25;FB29A25F95094119A972BFC24B6D0916;CF9CC41E41034897A58BDEE1E283C0B8;2FC1FC20ED7240239922BFF4BE75282B;8E00907604AE43C39390CFBCC2614786;1858B2D83BD8456ABB92D37CE1B79E97;89EEFB42157C4C13B596B1ED72BB6BDC;57093B04B3CF449AA4324CE2A91B2F0B;A9567659EEC74EC5AC5BBEB08F3A217D;E189B01D8C7E4DBF9F9FE580E4F5648B;E6063BDDD8C34233B44216AB13B6AA10;C0785953EF094CBB959C921A668FFC57;C5D193895FB24DC1A65782A5CA14377E;2CE459F8A4814ACFB79319DDF1295E79;6674EB96D942418DB5D78194D6872348;415846D4C2D249798BFDB77D486670F0;0FFAD07D404A476F8F385D18C21918D0;7078C89A62934C03B97D4A8A819E0E4A;1247F414EFCC4074B3770FEC07F10911;9034D9BB9FA246CC8B4FB2A7FFC5B981;D4EFE83B4E4A42448AD6B4665C1D1460;594E9E8B7E664288A81D1ED47D83D66A;1ACEFE233BF749A9AC8AACAF38C53EBD;E764ED7495CD4EC98249C9A1193CBBAB;D4153662C6284AC6B08566F497EEB943;79EEB473E14E495AB70CAC57B2ECAE86;DDF6E7EF5DE64C8BA4A81BA64D5D61D3;39A50DE9A0FE41B2ABBDE8384CDDAF4C;367CCAB9E9754FFA95E3E22823FF1E94;25973AA4D54A4CFAB436046F356D6431;83FDFC64E3B141428D494AD77B2C498D;5FFAB86A3E1D4F69A7C020F282D5FE5E;5D8F2E1274514E4FAED0DEE44E43C0E0;8D9E7482A39B4FE88C65F4C9756AB623;A74208A49525410C9123C4239769B0B1;58E1A6D1C16B4589AF83124AEAA3E72B;29B0806043904AE7A4E58E2F6356428E;99307AFE1B2B45C2852B22A1C969275F;61A46E3AEAC445999031A722A06E1B69;54378C6469354362907F25FEF29AEBB7;BA96F08AD3204AD3ABEA52E9A56F787D;E277E2BFACE94C80962CF36203B1B0C0;9FE9DE5589CA497B8D124F9F97AE17CA;6AA49DC2276C4107928EE71009486174;827D1591E2D040C1B81243F16FDF8300;3F972251FA504E99BFB537F47CF9B3EB;1347D96E00F04C1F9E1AC4253D403708;1BE89C12C0714EF59E20EE356BE6D3E1;917E5F0CF6E143849BD256A00CEE9F69;241D16E43667432697BACE256047C5CB;ACFD5EF244284D41A3CF8C96A7CFB2EE;11DF52A759F345CABF8CFB721239AF7B;8E0E557EE3EE4AE095F93CECE252F7A7;2DDB5850C03449448F79CC54DE503D30;AEA934D213EB4DD1A3721AD025D88F77;13F186CD9C5341D0BA6AAEA07D9432EC;79A885846F8846B2A045094E1D7B7020;B3D640F07E86460584C7210B0B7D003B;24CAC8085C40493CA3DEB72A90EB706E;904261EC04BE46C8AC814399AF198223;E481C27221CE46678EF504F71DA7C2B4;3720C2D63EAC4331A39B8C380892B364;BFA8C9F2AFC146188C75DE888B57163A;4CA949A439694641B3CC485E02D7F1FB;3F67EA220897464E8267FACD61345206;04DA575154904212B2D0348674971ECC;BBCD1C4332FB4C5F8DFAAA721995C630;6FAD08DE338B4581B8936EBAE65B7903;2B149987079747BA98703BCC2A27CB6D;3F5E0D8D992E4984B6F16745B3E0028E;76519D4AC866437A8C04CE98C5EFD2E8;6F18BA6D28734AC6AB61829CF99EB25C;8E62CAF0CA0E477BADC737793BB77E00;1AF13D7AA4044858948DDB68D7F36B5D;3AFEACF949D64CBCA4E68986AF6ED8D8;9D735FB87BB7421983FB9AC4E567C5FB;ACA3A226D2914522BD504CA6D5F66775;F59DF4E51D674AFAB3BAEBD9C9319838;2847822F815A4D909B2FF00C4FD51FA1;03D2284BDAD14227B9C4E5580EC78471;0EBF5F52E59F41EFBFC2B8A1D0B2B2CC;DFBBA089CF4D4425AA87F5A7463CE208;7A425BA9D3A8471194AA5B3774DCBA1A;8FD1315F5ADC4FCBB4781F557BB06093;CA0B1F1349FC4ABE9824677A0BFD043C;0ABE033FE2904D998527C1D161B02D9B;F0CDE93BA38C43CA9C6C4320E5F64183;4CF28471D0A84DBC8D870721C9A218A7;FD2382C1BB7F47008C8B3C2AA12F1DA4;25290256BFB64166A14097F2A37B644F;3ecfsbnh41mv7egqiab0bj8cncgooglecom;A9537B59610D4B329D08764F48353170;3012611F35F1464E94FAB02F60EB37C8;37B5ABD15A4A4CDC9DE1A0033472B18E;790EC6653DE34D34AE938ED648CEB72C;EF20253C864F4374A11C2CFD965EBA40;0C824558B67749808607B8DAB02BFF6E;1qlp9qhnapmnr1c1216dt1bl5hgooglecom;503F090D57F34F24A254AAC053BE1707;356F2AF42CAE4D689F5A6F9236079A81;87627B5806A049418111AE2C01CBD39B;93D52D9F94CC43FB8EA4E7123F3011A3;E3407857784949458E2018E30AE89C8F;624443723C8C4EB58239CE4ACD341F15;1059AB55A3F64C7EA25421D2C6801666;DD1876C0CB6E48CB981422A0632D99E6;AB7AF43F4BB04C70BB9F45D8EB787D13;BCDF01F6718A4271BE0D5C095FBE1265;5F4F56FEC708458FAB8FAB63DA11B499;5h314oir2lspjci7lek1s8k5lhgooglecom;8AC00D69F10C4C48AC187C6440B8F0C6;9030CFEFB83D4D3F8CC0FE5990478D61;303D44D57BA94E41B8A60056B18F9AEC;1D6615C3147B4DB19C97295588F1EF18;EC0A7A4E48E849B89DB0859F0960C663;D3882759911143DD9A372045EBEA75AF;42609E13098F4962B0BC37ADDA942DD0;19AD24980635452A8AE6051B3B558666;3DD1907A2A514D19AA0F0E3E7634CA32;D872170BB5E14EA393A255C3DADBCF72;9FF48238BE72499985BBDDAA4ACD50D1;9449AD629D3D4494AB0C87BA3A232D52;CA68B3FBD0BC4F439053546383E28087;172A7BAAD9BF4726BDFAFB1EC02E36BF;8C74DF4C5DCB46CCA0BD510DD520C8AE;E8574DFEB0124702B270F4E8B2EBCCA0;FC5E9865A4FB438B9A88C17A2E5FE709;688D16A65DEB4000AAF72FF767A4163F;BB0F733C4F68489ABED05052B1B0A157;2CB64DFA7F7044029DC4EBFDD6E24EC9;419826F22AF847F88DEEC8167EE9C6E7;86C4137412EA49C798195D783EB25336;09A740BD97B34A8F96D4D3CB2A27FD62;D6BD4EE0B29D4B9087E94D08DB283FED;D9608152307A4EB4B987C6D52037B183;8B4324BB69954C618070E7EA581CE7E7;12FD8084F66648A3ABD588EA9125FE30;6CCEFFBE659C4F7A99E7EDD8917A1F1C;69C06599CB674031AAC66983F3ADD952;18922DE21C954597A1CCDAFBC8B21357;4DF54EB41F3E470FA575E43836CE9795;EB0FAA560C55446D968EE61DDBAB1647;111A7DABC6C14D01BF1644255C83D001;0A2DB81E29644CAAB8ADDBAE62EECE2A;3407DEFCB8C6493786045F135AD152FA;914A68D13AD845D39C745B44AA9364CF;0DA167195B3445D2ABCE57C8276F6BD6;E1EF360300D84D889BDFB87A9FDAB5B6;A389953A53EE43BEA3CCDA4298D88EAE;F5BF4C5FE37C40878500FB42AAE26094;7DFDDFDEB4E34785BF22B5B24AA4D00A;6CF39008B6B2422EB03A5FD3A574DA66;EA72413C3649482FBDDDE56F8DD1A80F;29088E1A3CD74892A3099EF17D2C412A;7629AFAD57EB4C6B81CFDD4128FB08C0;C9C46B00E06A49479444118F04D8E482;24ggfhit6r7eon8rvgooa4gorlgooglecom;3F413C3AAFCB489A849187B218908B61;1ABC9FAFC5074FB1BA5368B138772268;3E118E7058C248BA88A383667E774A08;D1147B1431674CCCA466F94D6C3E1888;9B3C1CD78ED0403C98C69D575B068761;7D204726CECC48DD8EB2D73794599BD4;4576F64B43614DF59A9D8D9D5807A464;09D75087CAD549A6BD31D2BC7D5C5DF4;D1356185CF464D369ADFE62F4B911A5C;70E346AB067E46E19659A2A05E67D617;DC804165FC8C45CC9E30EC7E311F5AF7;FA00DC3EC2124AB3960663F42D051323;78D99DBE484348BFB45D5530CE20DCB1;00BB8127F6084E139D01BA2AEB6B6073;190F03FCC690420CBA040BCB70FE7CAF;71EB65F007D543D2A14C5457438C76CE;5123593E34E741B4AED29D80137EF8A9;q7avt2sckjlphegh8rnh98auvcgooglecom;65677A3FFFBE4FBF864D3B52D7BFE1E6;EBCD8D03FD7E441EAC794C6538BCABB8;001FC47B5B574A2EA686C79DEB0953B2;169030652AE14C8F8AD79D19694CE919;A862CB3C7FE84B988C9CE8DC1A391E88;B07CC698C9F640549175F9014A9592A4;AF6C837CA99E4DA5BF726521A9263A82;F416646D0B4C47D2AACACEF64141EC82;9A5391A50E564D06B6EB0301F15ADFB4;72339A2209DE4624BB76EF2F838AADD1;FAA79580E9074E05AA26639941F33288;FAED7E6ED38C40F4BF9ACA186263F52A;79BA7520D9264856B7E80C2DC4F70204;8D308189517F43AB8E0B1A8C64C80B61;E1996BCA18194F36932C44978BE765D3;0F67E432091B4D6AAC6CED54F2268648;DE6D5EF8694641868823BCD72323A09B;764AFCD8D1D74F8EAC940897B2C14516;BEF37E2E1D354D888695D1967C114DF0;AC0CDC017569444F8EB46055ED2A8A2A;06C642B4967C4DCCB83C3E31D37B8BDC;F7CDE95E77484EF4A0E3BA9C2151E916;405DA765179042ABBF02F516A71158E1;46EF7FBC89884E8BA41D8D2310573496;868E11F70DB1468D85657469D7B7834C;07C5357EAAC546DDBE10260CBBCB0A26;D0BB1CA9A58349748640D808D160BA5A;48BDBD69EE5A49499AF213509535CB50;46338D6393FC4B3C97FA3AECDE4360F9;6E9A4E17E5F34A40B71F9325EB00E79A;AB19726BED014D0796690F7ECA52800C;3E0E59BB4351406FAE4A50AC9DA90AC4;FE4FFC96284543D0B29F5087A0BB7F7F;317CCF1F70D048F29F8BB91A0267A5E6;3A2CEC441B0747FA98FCFFB7C73D8956;0E703AB3AF1C4A6DA15AB130F84D37C7;7B3FC401BFE74C1B825A9FE00018FD9F;C52B2677ED2A47B187727BCD1BBE1F01;B8B645F49CE64AF6B84E982421735AB8;B9884C675341488FBA4B2D6855404A95;3E21D1F1495E4EDEA506736E762B35FF;0D163752043A47C994917CAC1D962EF7;7209ADF2687B47B590B2A117C6D45FFE;1570A2FF89374E76932262B3376FCB15;781421B95E7E46E1A93AE6E9D3946181;2404AE6F9FD24A2DBB3FB7F59FC5EA63;B76CB444851B428E9D451BD6A291CD2E;864A5907D3AD452DA42158BA7AFEE9E0;895D86707F164D048F08993C3D8263E7;01B9A5DAB62144F8B3ED894272171840;AB2CDB5D1F6745DFBFF97BE8036FB5A3;A248CB0F3A804CF49910CE81378B02FC;E95B34C7DF20475FA9C2CD447E7EB779;E10C71701912433A8C9CF6744A80A131;FDE96E55AAB149519279B1489ABEFCFE;9566FC01BCBD46A9AF1856D650E7E857;A65307DFCF494885ADFBF0FE946875B8;009B4AC3F88941D6A589A64BA91D6F7C;3t8sup3r0qhg1ek5s4ba92h1ahgooglecom;6B75F4D864A14889A12C1622ED36DD6D;3C2226B6BCE54549B5C8A5D0B8EDB72B;E820224A9C1045C69B520DF040F82B4E;C157BBBB92DC4093AA54926419CF19A1;1rqh8dbs9f5tgav6sj73cvqgiogooglecom;72B677491B114DD0B4A36EEE1563F503;041C35A1AC374C8BAB3929989AEBEA21;72925AFA435247C1BC0131036A719DDB;9580BFA63D7D4DF1B70FBC1CCE29F8AD;35A1924CD5A04E08AD44358C7EC5E861;24AC76185C8A4C7AB826CD654333F350;EF0C477580A84AC1AE46667F4D01186B;7ADCD0B4747E43E194731863914CB5E5;24C3726F94C84DB6A7FE356EB58D0FC9;F3FD573FF7CF45498A95C7C4A7A75A9D;2EB93A65C3484C07AF3DE87EC3A41A69;D587044BD94446AC961ACC1F3559571B;34215B5CC6D1448D89570E5DAED83723;B48C954E3FAE4044964E11B12FFE876F;A536BCB4F5974DAE99DECD5957DA4D17;E0F5D42AF7C546C1AA33EB5E2111F580;52cr9088ik8a88csg39l92s064googlecom;794B4F769C924835BA3A193FA6A79EF5;9C6179FA1BC249E8BC83AB0FE7BC8CA1;C63C268E6E89475CA152348FF133B493;7E790574948F48668ADE9F482B2A3FCB;44A29B01F11749169E8DEBF01A0239AA;D383293E67744B81A640988D05EBDE99;63D5335B477340918E2B91D8C117A9A8;EDB791DB98C64185B7B62586B3B2A059;4BBAFCDCBA22431F9A8AF13D9919A726;1C295ACCB4FB42CD90F2C4A20C86A691;913C7086293D4787BB4206613B2B5BA4;4E66790851CD4E66BB1F59E9CE4D1549;2gtnqjouhf9jf4i1ag9199e5fsgooglecom;3F11F44F57784180AD2CE22E09625792;E2414B8197D042F7BEA72ADCAD4C59CE;82ACD46CE65F4E468801E7838385F9CE;B1C4291183474B7FAC25C19FAF1E157E;F5C71C06630B4CCB9F030980E6D13F6F;2B63E1A3585546AC8184C9006213F50C;22813FB1CD0941C1B78D5D5669618C0E;099754981E0A4C7193D880370D74BFC3;57079216267942828CC50F235C25B9A0;BFB32BC6170048CBB981BCD3D8CA43C2;37BC5DF1A8B046078A3C2C3F3A8416A8;3DB64AA2C6EF407D90F97FB3041D6C88;0D6B90658F834E0B8FB38E07FB0CF513;20006D842F0A47CFAB9B9A7BBD3B32B4;49E47C235637473B8DE2A4B7D1A223A8;DA8375F226044737A454C648F2842856;A47A94051A6E4E1C9FC5A0636A889971;A6C034DF0F874A2E9451342119F970F9;827469EABD7E4B8D9EF027136B249CC7
     2020-06-13 07:55:51   modeEnded       
     2020-06-13 08:05:00   modeStart       9C9B6A4B95A54F0AA4792F820F62EB7D;C8558A2C44CD46FFA4A2883FF90B255B
     2020-06-13 08:05:00   modeStarted     
     2020-06-13 08:05:00   modeUpcoming    C1F1AA22A6FE4B93AD488BE7A09E2B75;u1r8an4au3r56s8tl0ff9fpg34googlecom;08901799DD5742FF93A98F187CEEEBCA;9CE221DC518E4ACCA70B5DA860EBB3AA;AB8DAE6C27AA408FB0CCEA6A69DE5C54;t88s7ifs14e7ak30rr5corbgq0googlecom;B15FD4EFDA0045DD998CC7939053262E;7C94851AFC534F4DB15CCBC63B78C21A;0A3B0D9C4A8341A5AF9B4B3E837AA40B;lnq6vmk471at0de202radglm2ggooglecom;7lagp4gc7j4vgcor70hotccr8cgooglecom;224A3B81E7C742FA9065FE3BC55D5B6F;8903D3DA4D9B4D9EBB2873C52A77E8A9;4CEC2299485D4799B1C3EA7EA7D21E5D;FCE33126ADD045A6B8805F087DF9EF9F;9FFDB77BB61E46448AE1E0082D1E6614;CE0A186C340E493784264FD96A10D12E;3D166D326C20493EA3D277C66D57A2A0;986F373FA2634A7D834AF8AEA9364B5E;53FDC9CFFF7642EA8CF4E27300101889;1FC65C3908CA4B61BCC51F26974EB6E2;866AF0FB08494B8BA5E5B6AF9FC71106;v1luhgrf8vq7jjimsmrvmgd3h8googlecom;4225C3CD82D74BC8BD1A05304F8A3373;60BA86E149524B9685B1A0B0ED8072BA;826892DDB6FC4A45A9CEB169A43AD5C1;CA7D05B20A684DC8A14FBFEC479D8818;DC086D2CD4434DCBBFA265541546311A;BAB055B10A0349D0AD35EEB62E8E9E19;9AD22D860D614AF8AC156F2F5CEBCC08;k01pc9ill31055n5g82b9btg28googlecom;pgn5rl2ghqjte2f6irjpom04tkgooglecom;B7BFAC824D8C4CFFA8F1348F79AE15C0;3A39960DB6B54FE58B7C7FAFADE1111E;6EC5EAF9FCCE4215AD0A1C15FD596D9F;BDAB2D186ECC41748ECCD7D07CEA3E75;0AF5050E85C84429ACC7E4D6988E9A59;A61D6ADC0E36450EB625BC45C016BB15;55hr6o3mu8k81cu41v23p1tmmkgooglecom;on7m62vbaa0nmju7mjpv8dlldsgooglecom;ala9miv4svkeb2bpmfloe3rk2kgooglecom;A4FFE269570F42B7837A28382AA73A8E;FD0068C22850425899074572E058A8F0;929F73BB433E4811B805984E3E3251B0;pn20mp9ollb45ip2j9qpd24q48googlecom;85A1AC345168430897B48879CD7C582B;FE5BFB8B79D843379167A77742D86227;573A83F6C3194C6DB56C05F30257827E;A25B7B3F4AE7458B8596BC15F03E0E62;2EE6AE0B6C3D4C389BB8D858D49CF7C0;E446961DC77A4907953099CA269C2526;923A90ACF9794AFAA55160171AB84C5B;60E4E54C5A1C48CD9D46AD33BA103B5E;v4a9eis6lb5cpgcci17jnv9ussgooglecom;CB1F42C6BA594C90B4094CF5C68FCC22;E74248E53E2A401594630515D8349329;179A6157F7ED4049A5101C92BE7346E4;6C566C04A01344EBBF88674F96EEE733;213DB1A118ED4DB58F2399F5EB8C363C;3i2vp5l8v3b81t9e6iougcs044googlecom;3DB0E75EF78B45ABBF60040104E4913D;055935C96FEB48129EA376A524790113;D3200D2C284640F4B1710F192242065E;59C3A60446DF48C58BCEE811BD1CA6E7;3F0E62138AFC40338B923E3445636EEF;7kdm1vm1q4e0d1ofob2m19m328googlecom;E6F52810E04141F0A73F3E68BFE20B98;1F5914C995B9402CA62EE5AAFB278C26;C57EF7BCB82940E886BB3E63E7F88242;486C9592DD824863A69070A95ADF6087;E42A786663974F80868F563E8A89B7C1;BA30F00E348943BAA3E744144AD56C1E;BFB06049432C494995C19FB68FC9B903;16E07D81DE924766854F1D256F0F092D;08b6mp428u82csmmdjv3217a08googlecom;A26B175C025C46E5B47DE188D06E6633;3DA1DA0CF6CB4E8B8C1E4B95536300C6;2745E13A6203427A8F42C1563CB40F61;3FDFF8A41FD84A6493D19B04109EDF48;767F8DF37DC04939A1B56D0C1CEF6BA2;0F52EA77FDAA45F4BD64E7B590323170;4eu84srshr8a1c3aam1hqvhftggooglecom;C2F9E012D9614AE498A4F0276E691990;f7ctcd2st0dgvs21dq6996rb0kgooglecom
     2020-06-13 07:58:26   nextUpdate      2020-06-14 07:58:06
     2020-06-13 08:05:00   nextWakeup      2020-06-13 19:00:00
     2020-06-13 08:05:00   state           triggered
Attributes:
   alias      TNT
   event-on-update-reading state
   group      📅
   hideLaterThan 1d
   icon       it_internet
   room       Kalender


Dummy:
Internals:
   FUUID      5ee3d372-f33f-8381-1ee7-47cca6c40316278c
   NAME       dummyTNT
   NR         155
   STATE      tomorrow 0
   TYPE       dummy
   READINGS:
     2020-06-13 08:05:00   state           tomorrow 0
Attributes:
   alias      Urlaub
   group      📅
   room       Kalender


Notify:
Internals:
   DEF        calendar.*:(triggered|changed:.*) { calendarEvents($NAME) }
   FUUID      5ee3d3d3-f33f-8381-5211-3e43e485103eb330
   NAME       notifySetCalendarDummys
   NR         156
   NTFY_ORDER 50-notifySetCalendarDummys
   REGEXP     calendar.*:(triggered|changed:.*)
   STATE      2020-06-13 08:05:00
   TRIGGERTIME 1592028300.12016
   TYPE       notify
   READINGS:
     2020-06-12 21:49:42   state           active
Attributes:
   room       Kalender


Subroutine:
sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = '';
    my $upcoming;
    my @start = split('\n',CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="start"'));
    my @upcoming = split('\n',CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="upcoming"'));

if ( scalar(@start) > 0 ) {
foreach $start ( @start ) {
        CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' '.((split('\s',$start))[0] eq 'Urlaub' ? 1 : 0));
            $value = 1 if ( int((split('\s',$start))[1] / 86400) != int(time() / 86400) and (split('\s',$start))[0] eq 'Urlaub' );
}
}
else {CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' 0')}


if ( scalar(@upcoming) > 0 and $value == 0 ) {
foreach $upcoming ( @upcoming ) {
          $value = 1 if ( length($upcoming) > 0 and (split('\s',$upcoming))[0] eq 'Urlaub' );
}
}

CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
      }


Feiertage Hessen:
Internals:
   FUUID      5e906189-f33f-8381-7e22-771027a131cb435f
   HOLIDAYFILE ./FHEM/holiday/he.holiday
   NAME       he
   NR         78
   READONLY   1
   STATE      none
   TRIGGERTIME 1592085602.0855
   TYPE       holiday
   READINGS:
     2020-06-13 00:00:02   state           none
     2020-06-13 00:00:02   tomorrow        none
     2020-06-13 00:00:02   yesterday       none
Attributes:
   alias      Feiertage Hessen
   group      📅
   icon       time_calendar
   room       Kalender



CoolTux

Dein Dummy ist falsch.

Du hast vergessen readingsList und setList zu setzen.


Internals:
   FUUID      5c48b398-f33f-b39c-3f77-0c2c5073774c4894
   NAME       dummyBrbFerien
   NR         56
   STATE      0
   TYPE       dummy
   READINGS:
     2020-06-14 14:08:30   state           0
     2020-06-14 14:08:30   tomorrow        0
Attributes:
   alias      Brb Ferien
   event-on-change-reading state,tomorrow
   group      Ferien
   readingList tomorrow state
   room       Kalender
   setList    tomorrow:0,1 state:0,1
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dreggwatz

Arghs, hatte nur den Text gelesen aber nicht den code komplett durchforstet weil ich das Hirn anstrengen wollte. Vielen Dank!