[Gelöst] Automatische at Definition klappt nicht richtig

Begonnen von Tommy82, 07 Januar 2017, 20:31:17

Vorheriges Thema - Nächstes Thema

Tommy82

Hallo,
ich lasse bei einem klickauf ein icon in einer readingsGrout über die 99MyUtils eine sub aufrufen die ein at definiert, das at soll dann im enigma2 Modul einen sender zu einer bestimmten Uhrzeit schalten.

Der sender wird auch richtig geschaltet nur leider zur falschen Uhrzeit, das at wird immer auf 00:00 Uhr gesetzt.
Wo liegt mein Fehler?

Hier die sub die das at Aufruft.

{
      $command =~ s/;/;;/g;
      fhem('delete '.$TVDevice.'.Senderwechsel.at');
      fhem('define '.$TVDevice.'.Senderwechsel.at at '.ReadingsVal('TV_Programme', $channel.'_next_time', '00:00').' '.$command);
      fhem('attr '.$TVDevice.'.Senderwechsel.at room Wohnzimmer');
    }


Wenn ich das at über den Klick in der rd definieren lasse, wird folgendes at angelegt
Internals:
   CFGFN
   COMMAND    set VU_Ultimo channel ProSieben_HD
   DEF        2017-01-08T00:00:00 set VU_Ultimo channel ProSieben_HD
   NAME       VU_Ultimo.Senderwechsel.at
   NR         4875
   PERIODIC   no
   RELATIVE   no
   STATE      Next: 00:00:00
   TIMESPEC   00:00
   TRIGGERTIME 1483830000
   TRIGGERTIME_FMT 2017-01-08 00:00:00
   TYPE       at
   VOLATILE   1
   Readings:
     2017-01-07 20:31:38   state           Next: 00:00:00
Attributes:
   room       Wohnzimmer
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Otto123

Hi,

na dieser Ausdruck liefert nix zurück:
ReadingsVal('TV_Programme_next', $channel.'_next_time', '00:00')

Teste den doch einfach mal in der Kommandozeile. Woher kommt $channel?

Oder ich verstehe dein Konstrukt nicht.

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

Tommy82

#2
Also die gesammte sub dazu sieht so aus:
############################### TV Programm ########################
sub
switchChannel($)
{
  my %channellist = (   
pro7 => 'ProSieben_HD',
     '13thstreet' => '13th_Street',
    rtl => 'RTL',
ard => 'Das_Erste_HD',
    kabel1 => 'kabel_eins_HD',
'sat.1' => 'SAT.1_HD',
    rtl2 => 'RTL_II',
sport1 => 'Sport1',
   vox => 'VOX',
zdf => 'ZDF_HD',
    );
 
  my $TVDevice = 'VU_Ultimo';

  my ($channel) = @_;
  Log(0, 'Übergebener channel: '.$channel);
  $channel =~ s/_time//g; 
  Log(0, 'channel ohne _time: '.$channel);
  my $next = 0;
  if ($channel =~ /_next/)
  {
    my @array = split('_next', $channel);
    $channel = $array[0];
    $next = 1;
  }
  my $lcchannel = lc $channel;
  Log(0, 'lcchannel: '.$lcchannel);
  my $command = '';
 
  Log(0, 'channel aus channellist: '.$channellist{$lcchannel});
  $command = 'set '.$TVDevice.' channel '.$channellist{$lcchannel};

  if ($command ne '')
  {
    if ($next == 1)
    {
      $command =~ s/;/;;/g;
      fhem('delete '.$TVDevice.'.Senderwechsel.at');
      fhem('define '.$TVDevice.'.Senderwechsel.at at '.ReadingsVal('TV_Programme_next', $channel.'_next_time', '00:00').' '.$command);
      fhem('attr '.$TVDevice.'.Senderwechsel.at room Wohnzimmer');
    }
    else
    {
      fhem($command);
    }
  }
  else
  {
    Log(1, 'Channelnumber not found for channel: '.$channel);
  }
}


Die Variable $channel wird ja auch richtig Befüllt, nur die at Zeit wird nicht richtig gesetzt

Blöde frage, wie soll ich das in der Kommandozeile testen

Die readings die die rd füllen sehen so aus:
  QUEUE:
   Readings:
     2015-06-05 21:51:56   1               Rambo I
     2017-01-07 21:02:39   13THSTREET      Criminal Minds: Team Red
     2015-03-26 21:44:04   13THSTREET_abend Criminal Minds
     2017-01-07 21:02:39   13THSTREET_next Criminal Minds: Team Red
     2017-01-07 21:02:39   13THSTREET_next_time 21:45
     2017-01-07 21:02:39   ARD             Schlagerchampions - Das große Fest der Besten
     2017-01-07 21:02:39   ARD_next        Tagesthemen - Mit Wetter
     2017-01-07 21:02:39   ARD_next_time   23:30
     2017-01-07 21:02:39   KABEL1          Hawaii Five-0
     2017-01-07 21:02:39   KABEL1_next     Hawaii Five-0
     2017-01-07 21:02:39   KABEL1_next_time 21:10
     2015-05-18 11:04:57   KABEL_1         Castle
     2017-01-07 21:02:39   Pro7            Die Promi-Darts-WM 2017
     2017-01-07 21:02:39   Pro7_next       Ich bin Nummer 4
     2017-01-07 21:02:39   Pro7_next_time  00:15
     2017-01-07 21:02:39   RTL             Deutschland sucht den Superstar - Casting (2/12)
     2017-01-07 21:02:39   RTL_next        Willkommen bei Mario Barth - Die Personality-Show mit Star-Comedian Mario Barth
     2017-01-07 21:02:39   RTL_next_time   23:00
     2017-01-07 21:02:39   SAT.1           Home - Ein smektakulärer Trip
     2017-01-07 21:02:39   SAT.1_next      Gnomeo und Julia
     2017-01-07 21:02:39   SAT.1_next_time 21:55
     2015-05-18 11:04:57   Sat1            Richterin Barbara Salesch
     2017-01-07 21:02:39   Sport1          Fußball: Hallenturnier - Budenzauber Krefeld - Budenzauber Krefeld
     2017-01-07 21:02:39   Sport1_next     Coming Home I
     2015-09-15 10:19:24   Sport1_next_time 11:30
     2017-01-07 21:02:39   VOX             Unknown Identity
     2017-01-07 21:02:39   VOX_next        Mörderjagd - Wie Profiler ermitteln
     2017-01-07 21:02:39   VOX_next_time   22:30
     2017-01-07 21:02:39   ZDF             Ein starkes Team
     2017-01-07 21:02:39   ZDF_next        Kommissarin Lucas
     2017-01-07 21:02:39   ZDF_next_time   21:45
     2015-09-15 10:19:24   rtl2            Frauentausch
     2015-09-15 10:19:24   rtl2_next       Family Stories
     2015-09-15 10:19:24   rtl2_next_time  10:50
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Otto123

Eventuell so:

{ReadingsVal("TV_Programme_next","KABEL1_next_time","00:00")}

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

Tommy82

Danke, dann wird nur
Zitat00:00
zurückgeliefert
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Otto123

Naja aber dann liegt es daran, dann geht dein Ausdruck so nicht.

Eigentlich steht doch KABEL1_next_time 21:10  drin oder?

Solange wie Du da keinen sinnvollen Wert bekommst brauchst Du Dich nicht zu wundern.  ;)
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

Puschel74

Zitat von: Tommy82 am 07 Januar 2017, 21:13:51
Danke, dann wird nur  zurückgeliefert
Das ist der Ersatzwert wenn das Reading nicht gelesen werden kann - warum auch immer.

Otto war schneller  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Tommy82

#7
Ja aber wieso kommt nichts sinnvolles zurück?? Der Sender z.b. wird ja im at richtig gesetzt, nur die Zeit nicht

Das reading sieht so aus:

KABEL1_next_time 22:05
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Otto123

Das Gerät heißt nicht TV_Programme_next ?
Mach mal list TV_Programme_next

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

Tommy82

Da hast du recht, sorry für die Verwirrung hatte es oben schon abgeändert und auch in der MyUtils, das ganze sieht richtig so aus:
fhem('define '.$TVDevice.'.Senderwechsel.at at '.ReadingsVal('TV_Programme', $channel.'_next_time', '00:00').' '.$command);
Ein
{ReadingsVal("TV_Programme","KABEL1_next_time","00:00")} liefert dann auch eine Zeit 22:05


Das war der Fehler, oh man, schwere Geburt.

Ich danke für die geduldige Hilfe, jetzt klappt es.
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI