HM-CC-RT-DN Schaltprogramm auslesen / löschen / ändern

Begonnen von Andreas_, 05 Dezember 2013, 15:54:41

Vorheriges Thema - Nächstes Thema

Andreas_

Ich habe nun mal versucht den Party-Befehl zu automatisieren... und zwar wie folgt:

#Format set controlParty 15 03.8.13 20:30 5.8.13 11:30
#controlParty <temp><startDate><startTime><endDate><endTime>
#Aufruf {Urlaub (16, "11.12.13", "17:30", "12.12.13" ,"14:00")}

my $Urlaub;
sub
Urlaub()
  {
   my $temp = $_[0];
   my $startDate = $_[1];
   my $startTime = $_[2];
   my $endDate = $_[3];
   my $endTime = $_[4];

   {fhem ("set Kammer_EG (controlParty temp,startDate,startTime,endDate,endTime)")}
   {fhem ("set Treppenhaus controlParty $_[0],$_[1],$_[2],$_[3],$_[4]")};
   {fhem ("set BAD_EG controlParty $_[0],$_[1],$_[2],$_[3],$_[4]")};
   }
Mit dem Erfolg, das es nicht funktioniert. Der Aufruf steht oben.  Es kommt immer

Too many arguments for main::Urlaub at (eval 651) line 1, near ""14:00")

Lässt man die Anführungszeichen beim Aufruf weg, bringt er nen Fehler bei dem Doppelpunkt der Uhrzeit...

Hat jemand einen Tipp?

LG Andreas
BananaPi mit Cul-Stick V3
13 x HM-CC-RT-DN firmware 1.4
1 x HM-HM-LC-SW4
9x HM-LC-Bl1-FM
HM-RC-19

kvo1

Hallo Andreas,

ist Treppenhaus das ganze Thermostat (RT) oder nur der Kanal_4 (also ....ClimRT_tr) ?
Ich dachte bisher das "controlParty"  auf den kanal anzuwenden ist?

Ob die Kommas das richtig sind ?? keine Ahnung
Der Aufruf geht doch so
                                       set <rt_clima> controlParty 15 03.8.13 20:30 5.8.13 11:30

Gruß
klaus
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

martinp876

Too many arguments for main::Urlaub at (eval 651) line 1, near ""14:00")


Urlaub()

darf keine Argumente bekommen
Urlaub (16, "11.12.13", "17:30", "12.12.13" ,"14:00")
sendet aber 5

die Fehlermeldung ist also korrekt, genau was sie sagt.
Urlaub($$$$$)
=> genau 5 Argumente erwartet
Urlaub(@)
=> egal wieviel Argumente

Einach mal perl nachlesen.

Urlaub($$$$$)
  {
   my ($temp,$startDate,$startTime,$endDate,$endTime) = @_;

wäre cool


Andreas_

#Aufruf {Urlaub (16, "11.12.13", "17:30", "12.12.13" ,"14:00")}
#{Urlaub ("16.0", "12.12.13", "12:40", "13.12.13" ,"14:00")}
my $Urlaub;
sub
Urlaub($$$$$)
  {
   my ($temp,$startDate,$startTime,$endDate,$endTime) = @_;

   {fhem ("set Kammer controlParty temp, startDate, startTime, endDate, endtime")}
   }
Der Aufruf bringt den Fehler
Unknown argument controlParty, choose one ...usw.....

auch wenn ich diese Zeilen einsetze:
  {fhem ("set Treppenhaus controlParty @_[0],@_[1],@_[2],@_[3],@_[4]")};
  {fhem ("set BAD_EG controlParty $_[0]$_[1]$_[2]$_[3]$_[4]")};
 
egal ob ich die Variablen mit oder ohne Komma verwende,,,
was ist denn nun noch falsch? :-[
Anmerkung:
Ich habe lange im Netz gesucht und dann noch nen Kollegen gefragt, bis ich hier soweit gekommen bin,
das mit dem ($$$$$) in der Definition wusste der nicht und ich fand es auch im Netz nicht,,,,

DANKE für den Support!
LG Andreas
BananaPi mit Cul-Stick V3
13 x HM-CC-RT-DN firmware 1.4
1 x HM-HM-LC-SW4
9x HM-LC-Bl1-FM
HM-RC-19

Mr. P

Zitat von: Arpt am 12 Dezember 2013, 14:55:04
#Aufruf {Urlaub (16, "11.12.13", "17:30", "12.12.13" ,"14:00")}
#{Urlaub ("16.0", "12.12.13", "12:40", "13.12.13" ,"14:00")}
my $Urlaub;
sub
Urlaub($$$$$)
  {
   my ($temp,$startDate,$startTime,$endDate,$endTime) = @_;

   {fhem ("set Kammer controlParty temp, startDate, startTime, endDate, endtime")}
   }
Der Aufruf bringt den Fehler
Unknown argument controlParty, choose one ...usw.....

Also zum Einen würde mich beim Unknown argument genau das interessieren, was du mit ...usw... abgeschnitten hast. Weiters brauchst du bei Variablen immer ein $ davor. Und last but not least, wenn die Variable als 'endTime' definierst, solltest du dann kein 'endtime' daraus machen. Daher:
{fhem ("set Kammer controlParty $temp, $startDate, $startTime, $endDate, $endTime")}
Greetz,
   Mr. P

Funfactor

#20
Richtig Mr. P

Und dann erfolgt das Zusammenbauen, wenn ich richtig verstanden hab (bin auch erst frisch dabei  ;)) über eine Konkatenation, weil das Kommando, das an fhem übergeben wird ein String ist.

Hierzu gibt es Beispiele in der 99_Utils.pm. Dort wird in der Unterroutine UntoggleDirect($) die Variable $obj als Parameter gelesen. Der Einbau in ein Kommando sieht folgendermaßen aus:

{fhem ("setstate ".$obj." off")}

Die Konkatenation (Aneinanderreihung) erfolgt durch den Punkt. Dabei auf die Leerzeichen achten, damit auch die Befehle als einzelne Begriffe da stehen.

Grüße

Andreas_

Hallo nochmal,,,,,

der Aufruf {Urlaub ("16.0", 14.12.13, 14:30, "15.12.13" ,"14:00")} also ohne "" bei der Uhrzeit bringt diesen Fehler:

syntax error at (eval 733) line 1, near "14:"

Aufruf {Urlaub ("16.0", 14.12.13, "14:30", "15.12.13" ,"14:00")} bringt diesen Fehler(diesmal der ganze Text):

Unknown argument controlParty, choose one of clear:readings,register,rssi,msgEvents desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw mode peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed

Der Fehler erscheint immer, auch wenn die hier genannte Zeile

{fhem ("set Kammer controlParty $temp, $startDate, $startTime, $endDate, $endTime")}

oder

   {fhem ("set BAD_EG controlParty $_[0],$_[1],$_[2],$_[3],$_[4]")};

mit oder ohne Kommasverwende - der controlParty scheint diese Art Parameterübergabe nicht zu verstehen, oder es ist immer noch was falsch..... :-\
DANKE für nen Tipp!LG Andreas
BananaPi mit Cul-Stick V3
13 x HM-CC-RT-DN firmware 1.4
1 x HM-HM-LC-SW4
9x HM-LC-Bl1-FM
HM-RC-19

martinp876

funktioniert
set Kammer controlParty 16.0 14.12.13 14:30 15.12.13 14:00

oder ist Kammer das Device und du solltest Kammer_Clima nehme - den 4. Kanal?
immer das Kommando einmal so probieren.

ZitatAufruf {Urlaub ("16.0", 14.12.13, "14:30", "15.12.13" ,"14:00")} bringt diesen Fehler(diesmal der ganze Text):

warum ist  14.12.13 nicht in hochkomme? Sauber arbeiten....

baue ein Log ein, damit du auch sehen kannst, was deine SW eigentlich erdacht hat.

Gruss Martin

Mr. P

Wenn ich mir die 'Unknown argument'-Zeile so ansehe, sieht es für mich so aus, als wäre das eine alte Version, die du da nutzt. Denn da gibt es den gewünschten Parameter noch nicht. Bei einer aktuellen Version würde es so aussehen:

Unknown argument ?, choose one of burstXmit clear:readings,register,rssi,msgEvents controlManu:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 controlMode:auto,boost,day,night controlParty desired-temp:on,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 getConfig getRegRaw peerBulk regBulk regSet sign:on,off sysTime tempListFri tempListMon tempListSat tempListSun tempListThu tempListTue tempListWed

Also nicht ganz unwesentlich länger. ;-)

Was gibt denn ein version bei dir aus?
Greetz,
   Mr. P

Andreas_

"baue ein Log ein, damit du auch sehen kannst, was deine SW eigentlich erdacht hat."

Wie geht das?
set Kammer controlParty 16.0 14.12.13 14:30 15.12.13 14:00 direkt eingegeben erzeugt den selben Fehler - das mal so zu probieren, da hätte ich auch selber drauf kommen können ::)


"Was gibt denn ein version bei dir aus?"
Version wovon und wie frage ich das ab?
FHEM ist aktuell, denke ich , habe vor ein paar Tagen ein update gemacht.

Das Gerät mit Name Kammer ist der Kanal 4 des Thermostaten, model HM-CC-RT-DN, device
CUL_HM_HM_CC_RT_DN_222C5A

LG Andreas

BananaPi mit Cul-Stick V3
13 x HM-CC-RT-DN firmware 1.4
1 x HM-HM-LC-SW4
9x HM-LC-Bl1-FM
HM-RC-19

Mr. P

Greetz,
   Mr. P

kvo1

set AZ_HKT_ClimRT_tr controlParty 16.0 14.12.13 16:00 14.12.13 16:30     geht schon !


AZ_HKT_ClimRT_tr    ist der Cannel 4   , NICHT das Device

klaus
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

Andreas_

version:

# $Id: fhem.pl 3872 2013-09-07 11:58:33Z rudolfkoenig $
# $Id: 00_CUL.pm 3853 2013-09-04 06:54:57Z rudolfkoenig $
# $Id: 10_CUL_HM.pm 3968 2013-09-28 14:49:43Z martinp876 $
# $Id: 01_FHEMWEB.pm 3963 2013-09-26 08:55:32Z martinp876 $
# $Id: 92_FileLog.pm 3759 2013-08-21 08:13:08Z rudolfkoenig $
# $Id: 99_SUNRISE_EL.pm 3738 2013-08-18 14:13:59Z rudolfkoenig $
# $Id: 99_Utils.pm 3595 2013-08-05 05:38:48Z tobiasfaust $
# $Id: 98_XmlList.pm 2895 2013-03-11 19:48:01Z rudolfkoenig $
# $Id: 98_autocreate.pm 3957 2013-09-25 06:21:02Z rudolfkoenig $
# $Id: 91_eventTypes.pm 2982 2013-03-24 17:47:28Z rudolfkoenig $
# $Id: 98_notice.pm 2647 2013-02-04 21:43:52Z mfr69bs $
# $Id: 91_notify.pm 3738 2013-08-18 14:13:59Z rudolfkoenig $
# $Id: 98_telnet.pm 3738 2013-08-18 14:13:59Z rudolfkoenig $
# $Id: 98_update.pm 3741 2013-08-18 15:23:42Z rudolfkoenig $

"Kammer" ist der Kanal 4 des HM..... sollte dann doch stimmen
BananaPi mit Cul-Stick V3
13 x HM-CC-RT-DN firmware 1.4
1 x HM-HM-LC-SW4
9x HM-LC-Bl1-FM
HM-RC-19

kvo1

>>>"Kammer" ist der Kanal 4 des HM..... sollte dann doch stimmen

jo, dann musses auch gehen !

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

martinp876

@arpt,

wenn
set Kammer controlParty
nicht geht, dann hast du eine alte SW.

Das file HMConfig wird in der Version nicht angezeigt
mache doch einen
update force

ist immer mal gut
Gruss Martin