[gelöst]Perl Probleme mit Kalender

Begonnen von AndreasP, 09 Dezember 2018, 15:25:31

Vorheriges Thema - Nächstes Thema

AndreasP

Hallo zusammen  :)

Ich wollte meine Funktionierende Kalender Funktion dahin abänder, dass ich sowohl MAX als auch HM Thermostate per Kalender steuern kann, habe es aber nun so verschlimmbessert, dass gar nichts mehr funktioniert. Wohl ein Klammer oder ; Problem.

erstmal Teil der fhem.cfg

define chz Calendar ical url https://user:pass@apdk.owncube.com/oc/remote.php/caldav/calendars/anpe1969/heizung?export 1800

define Heizung_Temperatur notify chz:modeStarted.* {\
Kalenderstart("$EVENT");;\
}


define Heizung_Temperatur_END notify chz:modeEnded.* {\
Kalenderende("$EVENT");;\
}



99_myUtils.pm



##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
sub
Kalenderstart ($)
{
my ($Ereignis) = @_;
        Log 3, "übergebenes Ereignis: $Ereignis";
        my @Ereignisarray = split(/.*:\s/,$Ereignis);
        my $Ereignisteil1 = $Ereignisarray[1];
        Log 3, "Eventpart 1: $Ereignisteil1";
my @uids=split(/;/,$Ereignisteil1);
        foreach my $uid (@uids) {
                Log 3, "Eventpart1 gesplittet: $uid";
my ($actor,$dtemp,undef)= split(/ /,fhem("get chz events $uid"));
               
   if(defined $actor) {
                      if($actor eq "HzSchlaf" or $actor eq "HzWC" or $actor eq "WtWohn") { fhem("set $actor desiredTemperature $dtemp");} else {
                        fhem("set $actor controlMode $dtemp");}
    }
    }
}

sub Kalenderende ($) {
    my ($Ereignis) = @_;
        Log 3, "übergebenes Ereignis: $Ereignis";
        my @Ereignisarray = split(/.*:\s/,$Ereignis);
        my $Ereignisteil1 = $Ereignisarray[1];
        Log 3, "Eventpart 1: $Ereignisteil1";
my @uids=split(/;/,$Ereignisteil1);
        foreach my $uid (@uids) {
                Log 3, "Eventpart1 gesplittet: $uid";
my ($actor,undef,$dtemp)= split(/ /,fhem("get chz events $uid"));
               
   if(defined $actor) {
                      if($actor eq "HzSchlaf" or $actor eq "HzWC" or $actor eq "WtWohn") { fhem("set $actor desiredTemperature $dtemp");} else {
                        fhem("set $actor controlMode $dtemp");}
    }
}
}
#### Ende
1;



Ich komm da nicht mehr weiter, kann auch kein Perl (immer noch nicht).

Folgene Fehlermeldungen kommen in der Log file


2018.12.07 20:30:00 3: übergebenes Ereignis: modeEnded: ecb5399e4cd74ca1980bf78f64f41a6a;1b664606cf1846bfb40a3b285c449b36;5980f8db997f4e098f5a9a4c5dfc2cee
2018.12.07 20:30:00 3: Eventpart 1: ecb5399e4cd74ca1980bf78f64f41a6a;1b664606cf1846bfb40a3b285c449b36;5980f8db997f4e098f5a9a4c5dfc2cee
2018.12.07 20:30:00 3: Eventpart1 gesplittet: ecb5399e4cd74ca1980bf78f64f41a6a
2018.12.07 20:30:00 3: get chz events ecb5399e4cd74ca1980bf78f64f41a6a : chz: Illegal parameter: ecb5399e4cd74ca1980bf78f64f41a6a
2018.12.07 20:30:00 3: Eventpart1 gesplittet: 1b664606cf1846bfb40a3b285c449b36
2018.12.07 20:30:00 3: get chz events 1b664606cf1846bfb40a3b285c449b36 : chz: Illegal parameter: 1b664606cf1846bfb40a3b285c449b36
2018.12.07 20:30:00 3: Eventpart1 gesplittet: 5980f8db997f4e098f5a9a4c5dfc2cee
2018.12.07 20:30:00 3: get chz events 5980f8db997f4e098f5a9a4c5dfc2cee : chz: Illegal parameter: 5980f8db997f4e098f5a9a4c5dfc2cee
2018.12.07 20:31:25 3: übergebenes Ereignis: modeEnded:
2018.12.07 20:31:25 3: Eventpart 1:
2018.12.07 23:59:00 3: übergebenes Ereignis: modeEnded: 3db739f570f84591944242dca88054bf
2018.12.07 23:59:00 3: Eventpart 1: 3db739f570f84591944242dca88054bf
2018.12.07 23:59:00 3: Eventpart1 gesplittet: 3db739f570f84591944242dca88054bf
2018.12.07 23:59:00 3: get chz events 3db739f570f84591944242dca88054bf : chz: Illegal parameter: 3db739f570f84591944242dca88054bf
2018.12.08 00:01:25 3: übergebenes Ereignis: modeEnded:
2018.12.08 00:01:25 3: Eventpart 1:
2018.12.08 03:45:27 1: HMUARTLGW myHmUARTLGW did not respond for the 1. time, resending
2018.12.08 03:45:30 1: HMUARTLGW myHmUARTLGW did not respond for the 2. time, resending
2018.12.08 03:45:33 1: HMUARTLGW myHmUARTLGW did not respond for the 3. time, resending
2018.12.08 03:45:36 1: HMUARTLGW myHmUARTLGW did not respond after all, reopening
2018.12.08 03:45:36 3: myHmUARTLGW device closed
2018.12.08 03:45:36 1: 192.168.6.47:23 reappeared (myHmUARTLGW)
2018.12.08 10:00:00 3: übergebenes Ereignis: modeStarted: f3e814c674cb49b89abc0f6bbf56a7b7;69c44f67c67e420aa16bcb3d50be768c;c0fc750913794872991e5af2ab0e73f1;fcaa8761b5fa4feab41fca945144c88c
2018.12.08 10:00:00 3: Eventpart 1: f3e814c674cb49b89abc0f6bbf56a7b7;69c44f67c67e420aa16bcb3d50be768c;c0fc750913794872991e5af2ab0e73f1;fcaa8761b5fa4feab41fca945144c88c
2018.12.08 10:00:00 3: Eventpart1 gesplittet: f3e814c674cb49b89abc0f6bbf56a7b7
2018.12.08 10:00:00 3: get chz events f3e814c674cb49b89abc0f6bbf56a7b7 : chz: Illegal parameter: f3e814c674cb49b89abc0f6bbf56a7b7
2018.12.08 10:00:00 3: Eventpart1 gesplittet: 69c44f67c67e420aa16bcb3d50be768c
2018.12.08 10:00:00 3: get chz events 69c44f67c67e420aa16bcb3d50be768c : chz: Illegal parameter: 69c44f67c67e420aa16bcb3d50be768c
2018.12.08 10:00:00 3: Eventpart1 gesplittet: c0fc750913794872991e5af2ab0e73f1
2018.12.08 10:00:00 3: get chz events c0fc750913794872991e5af2ab0e73f1 : chz: Illegal parameter: c0fc750913794872991e5af2ab0e73f1
2018.12.08 10:00:00 3: Eventpart1 gesplittet: fcaa8761b5fa4feab41fca945144c88c
2018.12.08 10:00:00 3: get chz events fcaa8761b5fa4feab41fca945144c88c : chz: Illegal parameter: fcaa8761b5fa4feab41fca945144c88c
2018.12.08 10:01:26 3: übergebenes Ereignis: modeStarted:
2018.12.08 10:01:26 3: Eventpart 1:
2018.12.08 20:30:00 3: übergebenes Ereignis: modeEnded: f3e814c674cb49b89abc0f6bbf56a7b7;c0fc750913794872991e5af2ab0e73f1;fcaa8761b5fa4feab41fca945144c88c
2018.12.08 20:30:00 3: Eventpart 1: f3e814c674cb49b89abc0f6bbf56a7b7;c0fc750913794872991e5af2ab0e73f1;fcaa8761b5fa4feab41fca945144c88c
2018.12.08 20:30:00 3: Eventpart1 gesplittet: f3e814c674cb49b89abc0f6bbf56a7b7
2018.12.08 20:30:00 3: get chz events f3e814c674cb49b89abc0f6bbf56a7b7 : chz: Illegal parameter: f3e814c674cb49b89abc0f6bbf56a7b7
2018.12.08 20:30:00 3: Eventpart1 gesplittet: c0fc750913794872991e5af2ab0e73f1
2018.12.08 20:30:00 3: get chz events c0fc750913794872991e5af2ab0e73f1 : chz: Illegal parameter: c0fc750913794872991e5af2ab0e73f1
2018.12.08 20:30:00 3: Eventpart1 gesplittet: fcaa8761b5fa4feab41fca945144c88c
2018.12.08 20:30:00 3: get chz events fcaa8761b5fa4feab41fca945144c88c : chz: Illegal parameter: fcaa8761b5fa4feab41fca945144c88c
2018.12.08 20:31:26 3: übergebenes Ereignis: modeEnded:
2018.12.08 20:31:26 3: Eventpart 1:
2018.12.08 23:59:00 3: übergebenes Ereignis: modeEnded: 69c44f67c67e420aa16bcb3d50be768c
2018.12.08 23:59:00 3: Eventpart 1: 69c44f67c67e420aa16bcb3d50be768c
2018.12.08 23:59:00 3: Eventpart1 gesplittet: 69c44f67c67e420aa16bcb3d50be768c
2018.12.08 23:59:00 3: get chz events 69c44f67c67e420aa16bcb3d50be768c : chz: Illegal parameter: 69c44f67c67e420aa16bcb3d50be768c
2018.12.09 00:01:26 3: übergebenes Ereignis: modeEnded:
2018.12.09 00:01:26 3: Eventpart 1:
2018.12.09 01:01:38 3: CUL_HM set WtArbeit_Climate controlMode night
2018.12.09 10:00:00 3: übergebenes Ereignis: modeStarted: 8553c8413b6c457794fe0807368159d0;bfe48800808c48868e20d0066f3f3ef3;aacd56b2380546ca92d5e97c73066f21;7e7b270e2ad54fb49b3cf97dbc0dc683
2018.12.09 10:00:00 3: Eventpart 1: 8553c8413b6c457794fe0807368159d0;bfe48800808c48868e20d0066f3f3ef3;aacd56b2380546ca92d5e97c73066f21;7e7b270e2ad54fb49b3cf97dbc0dc683
2018.12.09 10:00:00 3: Eventpart1 gesplittet: 8553c8413b6c457794fe0807368159d0
2018.12.09 10:00:00 3: get chz events 8553c8413b6c457794fe0807368159d0 : chz: Illegal parameter: 8553c8413b6c457794fe0807368159d0
2018.12.09 10:00:00 3: Eventpart1 gesplittet: bfe48800808c48868e20d0066f3f3ef3
2018.12.09 10:00:00 3: get chz events bfe48800808c48868e20d0066f3f3ef3 : chz: Illegal parameter: bfe48800808c48868e20d0066f3f3ef3
2018.12.09 10:00:00 3: Eventpart1 gesplittet: aacd56b2380546ca92d5e97c73066f21
2018.12.09 10:00:00 3: get chz events aacd56b2380546ca92d5e97c73066f21 : chz: Illegal parameter: aacd56b2380546ca92d5e97c73066f21
2018.12.09 10:00:00 3: Eventpart1 gesplittet: 7e7b270e2ad54fb49b3cf97dbc0dc683
2018.12.09 10:00:00 3: get chz events 7e7b270e2ad54fb49b3cf97dbc0dc683 : chz: Illegal parameter: 7e7b270e2ad54fb49b3cf97dbc0dc683
2018.12.09 10:01:25 3: übergebenes Ereignis: modeStarted:
2018.12.09 10:01:25 3: Eventpart 1:
2018.12.09 11:14:03 1: PERL WARNING: Subroutine Kalenderende redefined at ./FHEM/99_myUtils.pm line 40.
2018.12.09 13:27:34 1: PERL WARNING: Subroutine Kalenderstart redefined at ./FHEM/99_myUtils.pm line 22.
2018.12.09 14:05:00 3: übergebenes Ereignis: modeStarted: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:05:00 3: Eventpart 1: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:05:00 3: Eventpart1 gesplittet: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:05:00 3: get chz events 8553c8413b6c457794fe0807368159d0 : chz: Illegal parameter: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:05:00 3: set chz: controlMode Illegal : Please define chz: first
2018.12.09 14:10:19 1: PERL WARNING: Argument "'01" isn't numeric in addition (+) at ./FHEM/57_Calendar.pm line 523.
2018.12.09 14:10:19 1: PERL WARNING: Argument "1:00" isn't numeric in addition (+) at ./FHEM/57_Calendar.pm line 523.
2018.12.09 14:10:19 1: PERL WARNING: Argument "2:30" isn't numeric in addition (+) at ./FHEM/57_Calendar.pm line 523.
2018.12.09 14:10:19 1: PERL WARNING: Argument "3:55" isn't numeric in addition (+) at ./FHEM/57_Calendar.pm line 523.
2018.12.09 14:31:26 3: übergebenes Ereignis: modeStarted:
2018.12.09 14:31:26 3: Eventpart 1:
2018.12.09 14:35:00 3: übergebenes Ereignis: modeStarted: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:35:00 3: Eventpart 1: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:35:00 3: Eventpart1 gesplittet: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:35:00 3: get chz events 8553c8413b6c457794fe0807368159d0 : chz: Illegal parameter: 8553c8413b6c457794fe0807368159d0
2018.12.09 14:35:00 3: set chz: controlMode Illegal : Please define chz: first
2018.12.09 14:43:05 1: No Logdevice >FileLog_WtArbeit<
2018.12.09 15:01:25 3: übergebenes Ereignis: modeStarted:
2018.12.09 15:01:25 3: Eventpart 1:
2018.12.09 15:05:00 3: übergebenes Ereignis: modeStarted: bd1668535a8b42c98b201be3f2fe1711
2018.12.09 15:05:00 3: Eventpart 1: bd1668535a8b42c98b201be3f2fe1711
2018.12.09 15:05:00 3: Eventpart1 gesplittet: bd1668535a8b42c98b201be3f2fe1711
2018.12.09 15:05:00 3: get chz events bd1668535a8b42c98b201be3f2fe1711 : chz: Illegal parameter: bd1668535a8b42c98b201be3f2fe1711
2018.12.09 15:05:00 3: set chz: controlMode Illegal : Please define chz: first


Ich hoffe jemand hat Zeit und Lust mir zu Helfen.

FHEM @ RPi3 , Max! , Homematic, Sonoff

OdfFhem

Es scheitert vermutlich u.a. an dieser Stelle:

fhem("get chz events $uid")


Hier müsste etwas in der folgenden Art stehen:

fhem('get chz events filter:uid=="'.$uid.'" format:custom="$S"')



Weiterführende Informationen findet man auch unter https://fhem.de/commandref.html#Calendar im Abschnitt Switch actors on and off


Gut wäre wahrscheinlich noch, wenn die set-Kommandos während der Entwicklung sicherheitshalber nicht ausgeführt, sondern durch Logmeldungen ersetzt würden.

AndreasP

Danke  :) das war es, nun funktioniert es wieder, hat sich einiges bei calender geändert.
FHEM @ RPi3 , Max! , Homematic, Sonoff