Ich habe es so verstanden, das eine gesendete FHEM-Vorgabe von einem späteren, im RT direkt programmierten Schaltpunkt überschrieben wird. Klingt ja logisch.
Frage:
Kann man über FHEM die Einstellungen, die man von Hand am Gerät einprogrammieren kann oder zum Beispiel das werksseitig hinterlegte Wochenprogramm, auslesen, ändern oder löschen?
Danke für jeden Tipp!
Hallo Arpt,
ja indem du z.B: den Kanal(4 = ClimRT_tr) ausliest !
list <HMch>
Bsp.
list AZ_HKT_ClimRT_tr
gruß
klaus
damit konnte ich temp-Listen auslesen, die ich in fhem erstellt und ans Gerät gesendet habe.
Die z.B. werkseitig eingestellten Programme (also wenn man das neue Gerät auspackt, pairt und mal reinschaut) konnte ich nicht auslesen, ich musste diese von Hand am Gerät löschen. Genau so hatte ich eine templist an ein Gerät geschickt, und auf einmal war das Ding auf 21 Grad, weil im Gerät noch ein anderes Programm war.
Oder aber ich habe wieder nicht lange genug gewartet, bis die Listen geladen waren? Geduld ist nicht soo meine Stärke :)
Hallo Arpt,
du kannst immer die aktuelle Liste auslesen, egal woher sie kommt.
Du solltest ein "getConfig" auf das Device machen, dann werden ALLE Kanäle ausgelesen.
Wie bei ALLEN HM devices kannst du prüfen, dass alles übertragen wurde, hierzu die 'internal' "prot..." ansehen. Wenn dieser State auf "CMDS_done" steht ist alles vorbei, und wenn es keinen Zusatz hat ist es auch fehlerfrei.
mit
set <device> clear msgEvents
set <device> getConfig
kannst du die 'proto' einmal löschen - zur Erhöhung der Übersicht vor einem Kommado
Die Einstellung/Register kannst du mit
get <device> save
sichern und ggf. wieder in deinen RT rein'kopieren'
Ein Kopieren ganzer Register-sätze von einem Device in ein anderes ist mit HMinfo möglich
Beim RT musst du beachten, dass die (alle) kommandos erst bearbeitet werden, wenn dieser aufwacht (alle 2.5min) - oder du nutzt burst-übertragung
Gruss Martin
Hallo Martin,
ist es eigentlich möglich, die Schaltzeiten (Beginn und Ende) sowie die Temperatur für den Party-/Urlaubsmodi
per FHEM einzustellen ?
Die Idee wäre: "per Knopfdruck" (virt. Schalter oder echter Taster) alle RT´s auf Urlaubsmode umzuschalten.
Gruß Klaus
ich habe das so gelöst:
In der 99_Utils.pm habe ich eine Funktion (oder wie immer man das nennt) angelegt mit Name "holiday":
my $holiday;
# Variable holiday deklariereren
sub
holiday ()
{
# absenken während Abwesenheit
{ fhem ("set WZ1_4 tempListMon 00:00 17.0 24:00 17.0")};
{ fhem ("set WZ1_4 tempListTue 00:00 17.0 24:00 17.0")};
{ fhem ("set WZ1_4 tempListWed 00:00 17.0 24:00 17.0")};
{ fhem ("set WZ1_4 tempListThu 00:00 17.0 24:00 17.0")};
{ fhem ("set WZ1_4 tempListFri 00:00 17.0 24:00 17.0")};
{ fhem ("set WZ1_4 tempListSat 00:00 17.0 24:00 17.0")};
{ fhem ("set WZ1_4 tempListSun 00:00 17.0 24:00 17.0")};
#wichtig ist, das die letzte Zeitangabe 24:00 ist, sonst meckert das System
#Alle anderen Thermostate habe ich hier mal gelöscht, sonst wird es unübersichtlich
# BAD_Dachgeschoss
{ fhem ("set BAD_DG4 tempListMon 00:00 17.0 24:00 17.0")};
#
# usw. ..... für alle Tage die Listen eingeben
#
#Klammer am Ende nicht vergessen
}
Der Aufruf erfolgt mit {holiday} in der FHEM-Oberfläche
Für die Anwesenheitszeit habe ich das selbe mit dem Namen "home" geschrieben.
Anmerkung: Wenn ich die Befehle prep und exec einfüge, kommt eine Fehlermeldung, obwohl dies genau so beschrieben wird hier:
http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat
Und wie immer - es dauert bis man die neuen Listen aus dem Device auslesen kann!!!!!!!!
Hallo Arpt,
danke, das sollte aber ohne mehrmals hin und her schalten gehen.
Du muss ja in der FHEM-Oberfläche einmal {holiday} und dann nach Rückkehr
{home} eingeben, also ist das eine Umschaltung der Automode.
Das Gute am Party-/Urlaubsmode ist ja gerade, das man nur einmal Start und Endezeit
sowie Temp. eingibt und nach Ablauf wieder auf "Automode" zurückschaltet.
Gruß
Klaus
ok, Du willst die Luxuslösung ;)
Ich bin auch Anfänger, würge seit 3 Wochen an dem Thema rum.
Da müssen die Profis ran.... bin sehr gespannt, wie das geht!
die party geht los mit
set <rt_clima> controlParty 15 03.8.13 20:30 5.8.13 11:30
siehe commandref
ZitatcontrolParty <temp><startDate><startTime><endDate><endTime>
set control mode to party, define temp and timeframe.
example:
set controlParty 15 03.8.13 20:30 5.8.13 11:30
da sparst du das ganze umprogrammieren der templiste - und es schaltet automatisch ab, wenn party oder Urlaub vorbei ist
Tolle Lösung. Danke! Ich habe den Befehl in der Commandref auch nach mehrfachem durchsuchen nach "controlparty"nicht gefunden.
Die Commandref ist wohl von engagierter und fachlich sehr guten Programmierern erstellt worden.
Lesen tun das Leute, die vielleicht nur ne Lampe oder ne Heizung steuern wollen und keine Ahnung vom programmieren haben.
Problemorierentiert ist die Seite nicht.
Ich selbst habe da schon oft drin gelesen und eigentlich nix verstanden, geschweige denn das gefunden was ich suchte. Oder ich hab es gelesen, aber nicht begriffen, das dies meine Lösung wäre.
Eigentlich dachte ich bisher ein wenig Ahnung vom programmieren zu haben.
Das Forum hier ist klasse.
Ich stelle auch deshalb viele Anfängerfragen hier. Ich hoffe, das meine problemorientierten Fragen anderen Hilfe sind.
Hej Arpt,
die commandref ist eigentlich in mehr als 99% aller Fälle aktuell.
Dein Problem liegt vermutlich eher darin, dass du in der deutschen Version gesucht hast und diese aber bei weitem nicht so aktuell ist, wie die englische Variante. ;-)
Wie Mr. P sagt - das gibt es nur in englisch.
Englisch ist weitgehend aktuell (ich kann nur für HM sprechen...) Deutsch mache ich nichts (sorry). Eine Version reicht mir...
Du solltest für alle kommandos etwas in Englisch finden. Zumindest die Syntax sollte dann klar sein
Stimmt. . űber Google hab ich es gefunden!
DANKE
Wo stelle ich die Temperaturen für die Party oder Urlaubszeit ein?
Kann es sein das bei der Verwendung von prep /exec bei templist diese Befehle
[prep] so geschrieben werden müssen?
Hallo Arpt,
Für den Partymode gibt es wohl nur eine Temeratur ... Siehe Beschreibung von Martin
weiter oben.
controlParty <temp><startDate><startTime><endDate><endTime>
set control mode to party, define temp and timeframe.
example:
set controlParty 15 03.8.13 20:30 5.8.13 11:30
Gruß klaus
Ja stimmt....... im Befehl steht ja temp drin... meine Güte, bin ich manchmal begriffsstutzig :)
D A N K E !!!!
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
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
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
#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
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")}
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
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
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
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?
"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
Einfach 'version' eintippen. ;-)
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
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
>>>"Kammer" ist der Kanal 4 des HM..... sollte dann doch stimmen
jo, dann musses auch gehen !
@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
update oder update force bringt dann diese Meldung:
Message-ID: update-20130127-001
set Kammer controlParty 16 14.12.13 16:50 16.12.13 14:00
bringt immer noch
"Unknown argument controlParty,"...
oder muss ich nach dem update neu starten(wie)? Oder warten?
>>>>set Kammer controlParty 16 14.12.13 16:50 16.12.13 14:00
16:50 das geht nicht mur halbstündig ...also 16:30 oder 17:00 oder 17:30 etc
klaus
set Kammer controlParty 16.0 14.12.13 17:30 16.12.13 14:00
geht auch nicht ;)
Klaus,
das ist korrekt - aber erst einmal ist das Kommando controlParty nicht freigegeben.
Arpt,
kannst du einmal ein list des device und des channel schicken?
und ein
set kammer ?
Gruss Martin
Internals:
DEF 222C5A04
EVENTS 12
NAME Kammer
NR 214
STATE T: 17.6 desired: 17 valve: 12 %
TYPE CUL_HM
chanNo 04
device CUL_HM_HM_CC_RT_DN_222C5A
Readings:
2013-12-14 15:47:43 R-boostAftWinOpen off
2013-12-14 15:47:43 R-boostPeriod 5
2013-12-14 15:47:43 R-boostPos 80 %
2013-12-14 15:47:43 R-btnNoBckLight off
2013-12-14 15:47:43 R-daylightSaveTime on
2013-12-14 15:47:43 R-decalcTime 11:00
2013-12-14 15:47:43 R-decalcWeekday Sat
2013-12-14 15:47:43 R-modePrioManu all
2013-12-14 15:47:43 R-modePrioParty all
2013-12-14 15:47:43 R-noMinMax4Manu off
2013-12-14 15:47:43 R-regAdaptive on
2013-12-14 15:47:43 R-reguExtI 15
2013-12-14 15:47:43 R-reguExtP 30
2013-12-14 15:47:43 R-reguExtPstart 30
2013-12-14 15:47:43 R-reguIntI 17
2013-12-14 15:47:43 R-reguIntP 32
2013-12-14 15:47:43 R-reguIntPstart 36
2013-12-14 15:47:43 R-showInfo time
2013-12-14 15:47:43 R-showWeekday off
2013-12-14 15:47:39 R-sign off
2013-12-14 15:47:43 R-tempComfort 21
2013-12-14 15:47:43 R-tempFallWinOpen 12
2013-12-14 15:47:43 R-tempFallWinPerio 15 min
2013-12-14 15:47:43 R-tempLowering 17
2013-12-14 15:47:43 R-tempMax 30.5
2013-12-14 15:47:43 R-tempMin 4.5
2013-12-14 15:47:43 R-tempOffset 0.0K
2013-12-14 15:47:43 R-valveErrPos 15 %
2013-12-14 15:47:43 R-valveMaxPos 100 %
2013-12-14 15:47:43 R-valveOffset 0 %
2013-12-14 17:08:29 ValvePosition 12 %
2013-12-14 17:08:29 desired-temp 17
2013-12-14 17:08:29 measured-temp 17.6
2013-12-14 17:08:29 mode auto
2013-12-14 17:08:29 motorErr ok
2013-12-14 17:08:29 state T: 17.6 desired: 17 valve: 12 %
2013-12-14 15:47:43 tempListFri 24:00 17.0
2013-12-14 15:47:43 tempListMon 24:00 17.0
2013-12-14 15:47:43 tempListSat 24:00 17.0
2013-12-14 15:47:43 tempListSun 24:00 17.0
2013-12-14 15:47:43 tempListThu 24:00 17.0
2013-12-14 15:47:43 tempListTue 24:00 17.0
2013-12-14 15:47:43 tempListWed 24:00 17.0
2013-12-14 15:47:43 tempList_State verified
2013-12-14 17:08:29 unknown0 36
Helper:
Role:
chn 1
Attributes:
expert 1
model HM-CC-RT-DN
peerIDs
room Kammer_EG
hier ist das device:
Internals:
CUL_0_MSGCNT 13
CUL_0_RAWMSG A0FB98610222C5A0000000A88B0100C2406
CUL_0_RSSI -71
CUL_0_TIME 2013-12-14 17:11:23
DEF 222C5A
IODev CUL_0
LASTInputDev CUL_0
MSGCNT 13
NAME CUL_HM_HM_CC_RT_DN_222C5A
NR 206
STATE ???
TYPE CUL_HM
channel_01 CUL_HM_HM_CC_RT_DN_222C5A_Weather
channel_02 CUL_HM_HM_CC_RT_DN_222C5A_Climate
channel_03 CUL_HM_HM_CC_RT_DN_222C5A_WindowRec
channel_04 Kammer
channel_05 CUL_HM_HM_CC_RT_DN_222C5A_ClimaTeam
channel_06 CUL_HM_HM_CC_RT_DN_222C5A_remote
lastMsg No:B9 - t:10 s:222C5A d:000000 0A88B0100C24
protLastRcv 2013-12-14 17:11:22
rssi_at_CUL_0 avg:-70.42 min:-73.5 max:-68.5 lst:-71 cnt:13
Readings:
2013-12-14 16:48:53 Activity alive
2013-12-14 15:47:39 CommandAccepted yes
2013-12-07 14:11:30 R-intKeyVisib set_invisib
2013-12-07 14:11:30 R-pairCentral set_0xF11034
2013-12-14 17:11:22 actuator 12 %
2013-12-14 17:11:22 battery ok
2013-12-14 17:11:22 batteryLevel 3.1 V
2013-12-14 17:11:22 desired-temp 17
2013-12-14 17:11:22 measured-temp 17.6
2013-12-14 01:27:41 time-request -
Helper:
mId 0095
rxType 140
Prt:
sProc 0
Rspwait:
Role:
chn 1
dev 1
Rssi:
At_cul_0:
avg -70.4230769230769
cnt 13
lst -71
max -68.5
min -73.5
Attributes:
actCycle 000:10
actStatus alive
expert 2_full
firmware 1.0
model HM-CC-RT-DN
peerIDs
room CUL_HM
serialNr KEQ0515838
subType thermostat
"und ein
set Kammer ?"
bringt folgendes:
Unknown argument ?, 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
hi,
wenn das kein Problem deiner Files sind, weiss ich auch nicht mehr.
wenn update force funktioniert hat verstehe ich da nicht.
im zweifelsfall lade das file
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/HMConfig.pm?format=raw
und kopiere es manuel rein. Dann ein shutdown restart
Gruss Martin
@Martin
>>>das ist korrekt - aber erst einmal ist das Kommando controlParty nicht freigegeben.
was meinst Du , mit nicht freigegeben ?
klaus
die HMConfig.pm habe ich eingespielt, die alte Datei war vom September(!), Fritzbox ausgesteckt zum Neustart....
Aber nun kommt - mit genaus diesem Schreibfehler - diese Meldung:
controlParty not impelmented - contact sysop
:P
@Klaus,
die Kommandos werden je nach entity freigegeben - nach model, subtype, und channel. Da bei dir channel model uns subtype passt liegt es an der SW. Dir spec hierfür steht in HMConfig.
@arpt,
wenn HMConfig so alt war stellt sich die Frage was mit dem Rest ist.
Die Fehlermeldung hat dich einen Schritt weiter gebracht. Das Kommando ist erlaubt - aber in CUL_HM gibt es das kommando nicht.
Sicher ist 10_CUL_HM auch alt.
was kommt bei
version
und was passiert bei
update force
in jeden Fall brauchst du ein aktuelleres 10_CUL_HM. Bei dem Zustand sollten alle anderen auch aktuallisiert werden
Gruss Martin
update force und/oder update hatte ich ja eingegeben. Ob das funktioniert hat - keine Ahnung.
Ich schau morgen mal nach der anderen Datei.ich hsbe den Verdacht das ich überhaupt nicht aktuell bin... ich versuch das mit dem update auch noch mal
Auf jeden Fall danke ich dir sehr für deine Hilfe und melde mich wieder. .
bei mir ging es einmal schief,weil kein Speicher mehr auf der FB frei war. Dann geht auch ein force nicht.
Schue in jeden Fall einmal deinlogfile a, ob nach dem update ein Fehler drin steht
Die Meldung:
Message-ID: update-20130127-001
bekommt man, solange man den Update-Bestimmungen nicht von FHEM nicht zustimmt.
Ich weiß jetzt leider nicht mehr, was man eingeben muss, um den Bestimmungen zuzustimmen, aber es liest bestimmt jemand mit, der das (noch) weiß.
Aber sobald du das erledigt hast und dann updatest, wirst du auch merken, dass du es gemacht hast. ;-)
man könnte auch in die Übersicht gehen und oben rechts ins die Suche
update-20130127-001 eingeben und Suche drücken
und siehe da, da kommt sogar ein Beitrag von mir ;)
Zitat von: fhem-hm-knecht am 15 Dezember 2013, 01:39:26
man könnte auch in die Übersicht gehen und oben rechts ins die Suche
update-20130127-001 eingeben und Suche drücken
und siehe da, da kommt sogar ein Beitrag von mir ;)
Spielverderber! :-P
soooo... ich habe notice confirm update-20130127-001 gemacht dann ein update..ein force update.. und dann hab ich mal nachgeschaut, welches Datum diese 10_HM Datei hat (habe über die Fritzbox Oberfläche geschaut)
da war die aktuell-heutiges Datum.Dann habe ich den
set Kammer controlParty 16.0 15.12.13 13:00 17.12.13 13:00
gemacht und keine Fehlermeldung bekommen. ..alles am Handy.bin mal gespannt was am Regler angekommen ist wenn ich nach hause komme ;)
Zitat von: Arpt am 15 Dezember 2013, 13:42:52
soooo... ich habe notice confirm update-20130127-001 gemacht dann ein update..ein force update.. und dann hab ich mal nachgeschaut, welches Datum diese 10_HM Datei hat (habe über die Fritzbox Oberfläche geschaut)
da war die aktuell-heutiges Datum.Dann habe ich den
set Kammer controlParty 16.0 15.12.13 13:00 17.12.13 13:00
gemacht und keine Fehlermeldung bekommen. ..alles am Handy.bin mal gespannt was am Regler angekommen ist wenn ich nach hause komme ;)
Mach das. ;-)
es ist 16.00 Uhr, die Sonne scheint, die Frisur sitzt und der HM-CC-RT-DN ist im Partymode!!!!!!!!! :) :) :) :)
Es funktioniert! ...
Dann kann ich morgen mal nach meiner Funktion schauen. Danke an alle die mir bis hierher geholfen habe!!!!!
Hallo Arpt,
Glückwunsch , dann poste doch morgen mal Deine Funktion....würd mich für den nächsten Urlaub interessieren ;-)
Klaus
Es ist Zeit, diesem tollen Forum etwas zurückzugeben. Hier meine Funktion "Urlaub" zur Ansteuerung von mehreren HM-CC-RT-DN. Im Beispiel werden 2 Heizkörper (Treppenhaus und Kammer) angesteuert.
Zu beachten sind folgende Dinge (die mich viel Zeit und Support benötigt haben, sie herauszufinden)
1) Aktuelle Dateien (z.B. 10_CUL_HM) verwenden!
2) Bei dem partycontrol-Befehl KEIN Komma zwischen den Befehlen.
3) Bei der Funktion die Parameterübergabe definieren ($$$$$) - am besten das hier kopieren!
Ansonsten hier der Aufruf und die Funktion:
#Aufruf mit:
{Urlaub ("16.5", "16.12.13", "16:00", "18.12.13" ,"14:00")}
#Funktion:
my $Urlaub;
sub
Urlaub($$$$$)
{
#lokale Variablendeklaration
my ($temp,$startDate,$startTime,$endDate,$endTime) = @_;
#Sendebefehl für ein HM-CC-RT-DN
{fhem ("set Kammer controlParty $temp $startDate $startTime $endDate $endTime")}
# alternative Schreibweise der Parameter:
{fhem ("set Treppenhaus controlParty @_[0] @_[1] @_[2] @_[3] @_[4]")};
}
DANKE AN ALLE, DIE MIR SEHR GEHOLFEN HABEN, INSBESONDERE AN MARTIN876!!!!
Hallo Arpt,
danke , werde ich dann mal testen..... ;)
klaus
Cool wäre doch jetzt wenn man die Daten für die Urlaubs- oder party-Funktion noch aus einem Kalender
(ich habe das eine Owncloud auf einem NAS und syche hier meine Geräte) importieren würde
(temp. würde ich gleich lassen , ggf. fest hinterlegen).
Aber Du hast es ja wohl schon einmal geschrieben .. das ist die Luxus-Variante.
>>># alternative Schreibweise der Parameter:
>>>{fhem ("set Treppenhaus controlParty @_[0] @_[1] @_[2] @_[3] @_[4]")};
ging bei mir zunächst mal nicht !
klaus
ups...
lauf Logfile doch
2013-12-16_23:42:34 TZ_HKT_ClimRT_tr RAWMSG: A0F8F861022208A0000000A88D010001836
2013-12-16_23:44:30 TZ_HKT_ClimRT_tr mode: set_party
2013-12-16_23:44:30 TZ_HKT_ClimRT_tr set_controlParty 16.5 17.12.13 00:00 17.12.13 00:30
mal sehen was passiert !
Zitat von: kvo1 am 16 Dezember 2013, 23:16:28
Cool wäre doch jetzt wenn man die Daten für die Urlaubs- oder party-Funktion noch aus einem Kalender
(ich habe das eine Owncloud auf einem NAS und syche hier meine Geräte) importieren würde
(temp. würde ich gleich lassen , ggf. fest hinterlegen).
Aber Du hast es ja wohl schon einmal geschrieben .. das ist die Luxus-Variante.
Dann empfehle ich dir einen Blick hier hinein (http://fhem.de/commandref.html#Calendar). ;-)
Man könnte meinen / unseren Beitrag mit der Urlaubfunktion ins Wiki einpflegen,, ich selbst hab da aber keinen Zugang,,, wäre doch sicher hilfreich oder?
Wiki ?
steht doch (schon ;) ) drin ;D
Grüßle
Thomas
Der Befehl steht drin. Die Funktion, meherere RTs mit einem Befehl anzusteuern, steht nicht drin. ::)
Hallo Arpt,
dann gib Gas ;)
Zitat: "Registrierung zur Mitarbeit: wende Dich bitte an einen Administrator (http://www.fhemwiki.de/wiki/FHEMWiki:Administratoren)".
Gruß
Thomas
Auftrag ausgeführt:
http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Modus_Party_.28Urlaub.29
Seit dem update ist übrigens auch der controlParty Befehl in der FHEM-Oberfläche auswählbar! ;)
Nächste Frage:
Seit meinem Update der 10_HM-..... habe ich folgende Probleme (die nicht damit zusammen hängen müssen):
1) Ich verwende den den Befehl set WZ3_4 desired-temp 17.5 im Menü der FHEM-Oberfläche, also Tippfehler sind ausgeschlossen,
aber die Thermostate reagieren nicht drauf.
Und zwar alle 3 im Wohnzimmer nicht. Ich habe diese auch verschiedentlich verkehrt gepeert, Kanal 4 mit 5 usw., aber das habe ich alles wieder gelöscht (hoffentlich).
Die Geräte haben mittlerweile keine Peer-IDs mehr...
Die Commands kommen aber an (Command pending hab ich da angeschaut).
Frage: Wenn ich obigen Befehl sende, dann clear readings, getConfig, dann list WZ3_4 und desired-temp ist immer noch 17 Grad (die ich ab z.B. morgens 8.00 in der temp-list so definert habe)- was ist falsch?
Bisher konnte ich den Befehl senden und nachts, wenn der nächste Schaltpunkt auf der Temp-lost kam, wurde dann auf 17 Grad zurückgestellt.
Wo muss ich hinschauen / welche Listings soll ich hier posten?
2) Ich bin ungeduldig ::) und möchte, das die Regler immer wach sind, zumindest mal so lange bis diese ganze Programmierei erledigt ist.
Nun habe ich verschiedenes über Burst Modus gelesen. Aber wenig verstanden. Scheinbar sind RT immer im burst modus, man kann aber auch ein Bit setzen, das aber seit dem update nicht mehr zu setzen ist.... nun meine Frage:
Was muss ich tun /einstellen, das ich von einem RT eine schnelle Rückmeldung bekomme, ob z.B. dieser desired-temp Befehl angekommen ist (das ist mir das wichtigste, weil ich von unterwegs die Heizung einschaltne will)?
Danke für jeden Tipp
LG Andreas
Hallo Andreas,
Zitat von: Arpt am 19 Dezember 2013, 12:42:25
Auftrag ausgeführt:...
Fein, war aber kein Auftrag ;)
... ich habe da auf der Diskussionsseite zum Wiki-Beitrag etwas rein gestellt. Kannst du ja bei Gelegenheit mal nachschauen(?).
Gruß
Thomas
Hallo Andreas,
beim RT kann ich die desired-temp nicht auslesen - man muss warten bis er es mitteilt. Das dauert so 3 min. getConfig und clearRegs helfen da nichts.
ZitatBisher konnte ich den Befehl senden und nachts, wenn der nächste Schaltpunkt auf der Temp-lost kam, wurde dann auf 17 Grad zurückgestellt.
Wo muss ich hinschauen / welche Listings soll ich hier posten?
welchen mode hast du? Auto?
ZitatScheinbar sind RT immer im burst modus
nein. Man kann einschalten, dass der RT bei eine Burst aufwacht - register "burstRx"
Um alle Register zu sehen das Attribut expert auf 1 (oder 2) setzen. Setzen geht unabhängig von expert.
Aufwecken muss man dann auch noch. Mit attr burstAccess geht es automatisch, kommando burstXmit macht es 'manuell'.
Zitatman kann aber auch ein Bit setzen, das aber seit dem update nicht mehr zu setzen ist
schon expert probiert?
Gruss Martin
Hallo Martin,
ich habe die RT´s auf Auto-mode.
"burstRx" habe ich gesetzt, hmmm.... es ging ganz einfach ::)
attr burstAccess habe ich nun auch mal gesetzt.... im entsprechenden Device....
Nun beobachte ich mal, was sich tut, wenn ich den desired-temp Befehl verwende,, zunächst am Pc, dann mal wieder mit andFHEM...
-> E S F U N K T I ON I E R T ! !
Was bisher irgendwie auch nicht funktionierte, war, wenn ich in andFHEM den Schaltplan änderte oder ergänzte.
(der mit z.B. set WZ1_4 tempListMon 08:00 22.5 24:00 17.0 über den PC ans RT gespeicherte wird in andFHEM angezeigt)
Ich konnte das dann speichern und beim refresh war es wieder weg....
-> das habe ich grade noch mal probiert, scheint nun zu funktionieren,,,,
Was etwas nervig ist, ist das manchmal andfhem irgendwelche Devices nicht einlesen kann, keine Ahnung warum....
aber immerhin, es geht voran.... mal sehen, was mich als nächstes beschäftigt!
Ganz herzlichen DANK, Martin!!!!
Hallo Arpt,
>>>ich habe die RT´s auf Auto-mode.
>>>"burstRx" habe ich gesetzt, hmmm.... es ging ganz einfach
>>>attr burstAccess habe ich nun auch mal gesetzt.... im entsprechenden Device....
muss man das auf das ganze Device anwenden oder nur auf den Cannel (4) ?
>>>Man kann einschalten, dass der RT bei eine Burst aufwacht - register "burstRx"
wie geht das ?? set RT regset burstRx ON ???
>>>kommando burstXmit macht es 'manuell'
wie ?? set burstXmit ON ???
klaus
Hallo Klaus,
hier meine Anleitung, die ich für mich mal gespeichert habe:
Burst Mode einschalten (mein Kanal 4 des devices WZ1 heisst hier WZ1_4):
set WZ1_4 regSet burstRx on
prüfen mit:
get WZ1_4reg burstRx
FHEM Burst mode einschalten:
attr WZ1 burstAccess 1_auto -> das geht nur für das ganze Device, ansonsten gibt es eine Fehlermeldung...
set burstXmit... geht nur ohne parameter... was das genau macht, weiss ich nicht ::)
attr WZ1 burstAccess 1_auto
immer wenn ein Kommando an das device gesendet wird wird sofort probiert einen burst zu starten und zu übertragen
set burstXmit
schickt einen burst und (wenn erfolgreich) hinterher alles was die cmdQueue gespeichert hat.
Wenn man burstAccess=1 hat braucht man burstXmit nicht mehr, es wird automatisch gemacht.
burstXmit kann man performance-sparender nutzen, wenn man erst alle Kommandos absendet und hinterher den Burst. Jeder Burst des HMLAN koster transmit-kapazität - geht auf den 1h timer. Irgendwann kommt dann overload
Gruss Martin
Hallo Martin,
könnte man meine kurze Anleitung für den burst kombiniert mit Deiner Erklärung nicht auch ins WIKI einstellen?
Ich würde das übernehmen.
Übrigens habe ich, nachdem es heute morgen wieder kalt war in der Bude (Wohnzimmer), 3 Regler aussortiert. Sie reagieren nicht auf FHEM. Ich habe zum testen an alle 13 Regler einen desired-temp gesendet, alle haben reagiert, auch die im oberen Stock und weiter entfernten, nur die 3, die im selben Raum wie die Fritzbox sind, nicht.
Auch ein Reset und neu pairen, was funktioniert hatte, konnte die Geräte nicht überzeugen, einen desired-temp zu akzeptieren.....
ein Gerät war "dead", eines hatte NACK, eines CMD_pendings.... und zwar immer wieder... nun gut, das kommt vor..
Vielleicht hab ich die armen Dinger auch totprogrammiert :'(
Meine 99_utils.pm, wo ich meine Funktionen gespeichert hatte, war heute auch "neu", bzw. alles was ich programmiert hatte war weg...
Ich habe mir nun eine 99_Mutils.pm angelegt,,,,
es bleibt spannend....
Anleitung - hm - eine Erklärung der Details könnte man machen. Eine Anleitung ist immer wenn...dann... Es gibt keinen goldenen Weg.
Burst – wie es funktioniert
Burst:
ist ein Verfahren, mit dem Devices aus dem Stromsparmode erweckt werden können.
Schickt ein Sender eine burst sequenz wachen alle burst-empfänger auf und prüfen die Message. Wenn sie betroffen sind bleiben sie eine Zeit lang wach, ansonsten schlafen sie wieder ein.
Man beachte also, dass Senden eines Burst Energie in ALLEN burst-Empfängern verbraucht, egal ob sie angesprochen sind.
HMLAN und burst:
HMLAN hat ein Sendebudget das über eine Stunde berechnet wird. Burst belastet diese Konto deutlich - so können nicht mehr als 100 bursts /h gesendet werden - dann geht HMLAN in overload Wenn zusätzliche messages gesendet werden sind es entsprechend weniger.
Es ist als nicht vorteilhaft, unnötig bursts zu senden.
Burst devices:
Es gibt Devices, die immer auf burst reagieren und solche bei denen es abgeschaltet werden kann. So reagiert ein Rauchmelder immer auf Burst damit er seine team-kollegen hören kann.
Ein TC oder RT hingegen hat diese Funktion abschaltbar. Per default ist dies ausgeschaltet um Batterie zu sparen. Wenn ein VD gesteuert wird ist der TC ja selbst wach. Wird er aber mit einem Fensterkontakt gekoppelt muss es eingeschaltet werden – sonst verpasst er die message.
Bei ConditionalBurst devices, also den abschaltbaren gibt es ein Register burstRx mit dem das burst-erwachen eingestellt werden kann.
Sender, die einen burst-aktor erwecken sollen muss man sagen, welcher peer burst benötigt. Hier kann ggf. das Register peerNeedsBurst nach dem peeren gesetzt werden. FHEM versucht dies automatisch beim Peeren zu erledigen.
Siehe Hminfo kommando 'models' um festzustellen, welche devices welchen mode unterstützen
Attribut burstAccess
Devices, die abschaltbaren burst haben kann man ein attribut bustAccess 1_auto setzen. Es wird beim abschicken eines Kommandos versucht, das Device mit burst zu wecken. Sollte es nicht funktionieren wird gewartet, bis das Device aufwacht (meist reagieren solche Devices auch auf wakeup). Das setzen des Attributs ist angenehm – es werden aber ggf. viele bursts gesendet.
Kommando burstXmit
Mit diesem Kommando, das bei Devices mit contitional-Burst zu Verfügung steht, wird der burst gezielt von User angestossen. Der User schickt erst seine Kommandos an das device. Die Kommandos werden im Command-stack gesammelt. Dann sendet der User ein set burstXmit. Es passiert das gleiche wie be burstAccess. FHEM versucht mittels burst zu wecken und sendet bei Erfolg die Messages aus dem Kommandostack.
Im Gegensatz zu burstAccess ist burstXmit gezielt einsetzbar und kann sparsamer verwendet werden.
FHEM und burst devices
FHEM sende eine burst automatisch mit Kommandos zu Devices, die nur burst unterstützen.
passt das so? Anmerkungen? Fragen?
Hi,
Danke Martin super Erklärung.
Du schreibts das man mit dem HMLAN ein Sendebudget pro Stunde zur Verfügung hat...
Ist dies bei CUL, CUNO auch vorhanden oder nicht ??
MFG Gerber
hier ist es nun im WIKI:
http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Burst-Modus
Hi Arpt,
hmmm...
den Burst-Modus gibt es ja nicht nur beim RT. Evtl. wäre es hilfreich, die Erläuterungen dazu (eben am Beispiel eines RTs) nach hier (http://www.fhemwiki.de/wiki/HomeMatic#Besonderheiten) zu verlagern? Ich könnte natürlich auch eine Diskussion im Fhemwiki anfangen, aber hier dürfte das Publikum für meinen Vorschlag größer sein.
Danke für dein Engagement und Gruß
Thomas
Hi,
Zitat von: Gerber am 20 Dezember 2013, 18:02:46
Ist dies bei CUL, CUNO auch vorhanden oder nicht ?
Ja, dort ist es auch vorhanden. Siehe Erklärungen hier (http://www.fhemwiki.de/wiki/1%25_Regel) und hier (http://www.fhemwiki.de/wiki/LOVF).
Gruß
Thomas
Hallo Thomas,
ich würge ja als Neueinsteiger in fhem und am RT rum. Dank der Hilfe hier
bekomme ich langsam eine Idee vom RT und ergänze deshalb das RT Wiki.
Damit jemand nach mir gesammelt die Infos zum Gerät findet.
Ich möchte so ein wenig von all dem tollen Support, den ich hier erlebe,zurück geben.
Kopier doch einfach das was ich da rein gestellt habe. was überhaupt nur dank Martin möglich war.
Dann gibt es das zwar zweimal im Netz, aber das sollte das Netz aushalten.
Oder gibt es ne Regel im Wiki, die dagegen spricht?
Lg Andreas
Hallo Andrea,
die alternative Schreibweise scheint Problem zu machen...oder es ist ein Hinweis ... siehe fhem.log
Scalar value @_[0] better written as $_[0] at ./FHEM/99_myUtils.pm line 51.
Scalar value @_[1] better written as $_[1] at ./FHEM/99_myUtils.pm line 51.
Scalar value @_[2] better written as $_[2] at ./FHEM/99_myUtils.pm line 51.
Scalar value @_[3] better written as $_[3] at ./FHEM/99_myUtils.pm line 51.
Scalar value @_[4] better written as $_[4] at ./FHEM/99_myUtils.pm line 51.
Scalar value @_[0] better written as $_[0] at ./FHEM/99_myUtils.pm line 53.
Scalar value @_[1] better written as $_[1] at ./FHEM/99_myUtils.pm line 53.
Scalar value @_[2] better written as $_[2] at ./FHEM/99_myUtils.pm line 53.
Scalar value @_[3] better written as $_[3] at ./FHEM/99_myUtils.pm line 53.
Scalar value @_[4] better written as $_[4] at ./FHEM/99_myUtils.pm line 53.
Scalar value @_[0] better written as $_[0] at ./FHEM/99_myUtils.pm line 55.
Scalar value @_[1] better written as $_[1] at ./FHEM/99_myUtils.pm line 55.
Scalar value @_[2] better written as $_[2] at ./FHEM/99_myUtils.pm line 55.
Scalar value @_[3] better written as $_[3] at ./FHEM/99_myUtils.pm line 55.
Scalar value @_[4] better written as $_[4] at ./FHEM/99_myUtils.pm line 55.
klaus
Hallo Klaus,
die Meldung klingt doch durchaus logisch :). Ich habe keine große Ahnung vom programmieren. Ich habe es so in irgend einer Perl-Anleitung gefunden und ich mache ja nur mein Ding und da tut es,vielleicht auch zufällig,, aber sei doch so gut und probier es so wie Dein System sagt, dann kann ich Deine Version noch im Wiki ergänzen oder die Alternative rauslöschen... Ich danke Dir!
LG Andreas
Moinsen,
auch wenn der Beitrag schon alt ist, möchte ich mich hier nochmal bedanken. Denn mit den Informationen im Wiki allein bin ich nicht klar gekommen. Ich bin auf dem Gebiet FHEM ganz frisch, habe eigentlich keine Programmierkenntnisse, kenne mich aber mit Linux ganz gut aus. Ich wusste einfach nicht, wo diese Funktion hin soll. ???
Ich möchte hier für die Nachwelt nochmal vollständig festhalten, was zu tun ist, damit partyControl funktioniert.
Hier ist der der Beitrag im CommandRef: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Betriebsmodus_Auto.2C_Manu.2C_Party_.28Urlaub.29
1. Wenn man nur ein Thermostat in diesen Zustand bringen möchte, funktioniert das über die fhem Web-Oberfläche wie folgt:
set OG_Buero_Thermostat_Clima controlParty 16 12.01.18 08:00 24.01.18 18:00
Thermostat, Temperatur, Daten und Uhrzeiten ersetzen.
2. Wenn man alle Thermostate in diesen Zustand bringen möchte, funktioniert das wie folgt:
2a. Datei (Funktion) Namens "99_myUtils.pm" wie hier beschrieben erstellen und am Ende der Datei folgendem Inhalt ergänzen:
https://wiki.fhem.de/wiki/99_myUtils_anlegen
my $Urlaub;
sub
Urlaub($$$$$)
{
my ($temp, $startDate, $startTime, $endDate, $endTime) = @_;
# HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.
# Daher $startTime und $endTime abrunden
$startTime =~ s/\:[0-2].$/:00/;
$startTime =~ s/\:[3-5].$/:30/;
$endTime =~ s/\:[0-2].$/:00/;
$endTime =~ s/\:[3-5].$/:30/;
# controlParty bei jedem HM-CC-RT-DN setzen.
for my $rt (qw(OG_Bad_Thermostat_Clima OG_Buero_Thermostat_Clima OG_Flur_Thermostat_Clima OG_Kueche_Thermostat_Clima OG_SZ_Thermostat_Clima OG_WZ_Essbereich_Thermostat_Clima OG_WZ_Wohnbereich_Thermostat_Clima)) {
fhem ("set $rt controlParty $temp $startDate $startTime $endDate $endTime");
}
}
Die Thermostate "$rt" müssen durch die eigenen ersetzt werden.
2b. Wenn das Datum für die Party oder den Urlaub feststeht, folgenden Befehl im WebInterface eingeben:
{Urlaub ("16", "12.01.18", "08:00", "24.01.18" ,"18:00")}
Kann man sich irgendwie für diesen einen Befehl ein Widget bauen? Oder macht ihr das tatsächlich immer mit dem Befehl? (Mal abgesehen, von Alexa und Homekit...)
Auf jeden Fall nochmal ein dickes Danke!
Gruß Hoppel
EDIT: OK, habe gerade noch folgenden Link gefunden, da werde ich mich dann wohl auch nochmal mit beschäftigen:
https://wiki.fhem.de/wiki/Calendar
Hallo Hoppel,
mein Vorschlag wäre, dass du deine Anleitung ins Wiki stellst: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat
Dann wäre es thematisch an einer Stelle.ZitatHier ist der der Beitrag im CommandRef: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Betriebsmodus_Auto.2C_Manu.2C_Party_.28Urlaub.29
Das ist nicht die CommandRef sondern das Wiki.
Was stimmt denn mit dem Wiki-Artikel nicht? Der Beschreibt doch auch dein Vorhaben, oder?
Gruß
Ja, nur für mich als fhem-Neuling war aber nicht ersichtlich, dass es sowas wie myUtils.pm überhaupt gibt. Dazu gibt es im Wiki: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Betriebsmodus_Auto.2C_Manu.2C_Party_.28Urlaub.29 keinen Hinweis. Dort steht lediglich die Überschrift "Funktion". "Was ist das?" habe ich mich gefragt.
Als ich dann den Link zur Erstellung eines Kalenders: https://wiki.fhem.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies gefunden hatte, habe ich entdeckt, dass das es dort eine Verlinkung zu einer Beschreibung gibt: https://wiki.fhem.de/wiki/99_myUtils_anlegen und dafür bereits ein Template existiert, was anhand des fhem internen Editors zu kopieren ist. Denn wenn man das manuell macht, fehlen einem die Inhalte aus dem Template.
Ich hatte die Beschreibung meines vorangegangenen Posts daraufhin gestern Nacht nochmal angepasst. Ursprünglich hatte ich dort auch beschrieben, wo und wie diese Datei über die Command Line zu erstellen ist, danach die Besitzerrechte anhand von chown anzupassen sind und der fhem Service einmal neuzustarten ist. Wie das richtig gemacht wird, sollte im Wiki unter "Funktion" verlinkt werden.
Ich kann das gerne dort im Wiki ergänzen. Ein Satz dazu mit der entsprechenden Verlinkung reicht ja aus. Wer kann mir die Berechtigung für das Wiki geben? Muss ich dann irgendwas wissen/beachten? Habe bisher noch keine Wiki-Einträge erstellt. Das kann sonst auch gerne jemand anders machen. Ich stelle mir das bspw. wie folgt vor:
ZitatFunktion:
Wer noch keine eigene Funktion erstellt hat, legt sich zunächst eine eigene 99_MyUtils.pm (LINK: https://wiki.fhem.de/wiki/99_myUtils_anlegen) an. Danach einfach den nachfolgenden Inhalt an das Ende der Datei kopieren (eigene Thermostate unter $rt ergänzen):
my $Urlaub;
sub
Urlaub($$$$$)
{
...
...
...
}
Wie seht ihr das?
Gruß Hoppel
jetzt muss ich doch einmal nachsetzen. Man benötigt nicht unbedingt eine Routine in Myutils. defSpec2array ist der bringer.
Man muss allerdings irdent eine Systematik in den Parametern vorweisen können.
Basierend auf dem Vorschlag
set OG_Buero_Thermostat_Clima controlParty 16 12.01.18 08:00 24.01.18 18:00
für ALLE RTs im System wäre das:
set TYPE=CUL_HM:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN controlParty 16 12.01.18 08:00 24.01.18 18:00
mit Varianten nach Raum oder Gruppe ... oder sonst etwas
set TYPE=CUL_HM:FILTER=room=Wohn:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN controlParty 16 12.01.18 08:00 24.01.18 18:00
set TYPE=CUL_HM:FILTER=group=party:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN controlParty 16 12.01.18 08:00 24.01.18 18:00
set TYPE=CUL_HM:FILTER=room=Sz.*:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN controlParty 16 12.01.18 08:00 24.01.18 18:00
Ok, das sieht auch nicht schlecht aus, muss ich bei Gelegenheit mal ausprobieren. Ich bin gerade auf Dienstreise...
Gibt es eine Möglichkeit die Party bzw. den Urlaub per Klickibunti über das WebInterface zu konfigurieren?
Ich kann leider nicht programmieren.
Gruß Hoppel
Nicht klar was du meinst. Ich gehe einmal davon aus, dass ein Ansatz wäre, die Parameter eines Kommandos nutzergeführt z.B. mit dropdown oder scrollbar einzugeben.
In fhem geht das. Aber nur für einen Parameter eines Kommandos. Notwendig wäre es für Kommandos mit mehreren Parametern. Und das auch noch dynamisch, da sich die möglichen Parameter mit der Auswahl der ersten ändern.
Wenn ich dich verstanden habe also nein.
Sinnvoll wäre es, ich suche es schon länger.
Die Auswahl der Regel im defspec2array allerdings musst du selbst machen. Da kann das Frontend nicht helfen. Es hängt von deinem Systemdesign und deiner Einrichtungsdisziplin ab.
Helfen kann ich nur, wenn bspw. Alle Device eines Typs im System bearbeitet werden sollen. Meist geht das einfach über das attr Model.
Zitat von: martinp876 am 16 Januar 2018, 06:30:27
Nicht klar was du meinst. Ich gehe einmal davon aus, dass ein Ansatz wäre, die Parameter eines Kommandos nutzergeführt z.B. mit dropdown oder scrollbar einzugeben.
Jo, genau das meine ich.
Zitat von: martinp876 am 16 Januar 2018, 06:30:27
In fhem geht das. Aber nur für einen Parameter eines Kommandos. Notwendig wäre es für Kommandos mit mehreren Parametern. Und das auch noch dynamisch, da sich die möglichen Parameter mit der Auswahl der ersten ändern.
Wenn ich dich verstanden habe also nein.
Sinnvoll wäre es, ich suche es schon länger.
Hm..., mit einem Parameter kommt man wohl nicht weit. Es müsste ungefähr wie folgt aussehen:
1. Schaltfläche, um die betroffenen Thermostate per Checkliste oder bspw. eine Gruppe (bei mir ,,Thermostate"), die alle Thermostate enthält, auszuwählen
2. Dropdownfeld, um die Temperatur auszuwählen
3. Dropdownfeld, um das Startdatum des Urlaubs auszuwählen
4. Dropdownfeld, um die Uhrzeit am Tag des Startdatums festzulegen
5. Dropdownfeld, um das Enddatum des Urlaubs auszuwählen (>= Startdatum)
6. Dropdownfeld, um die Uhrzeit am Tag des Enddatums festzulegen (wenn Startdatum =Enddatum, dann muss die Uhrzeit größer als die Uhrzeit des Startdatums sein)
7. Schaltfläche zum Aktivieren der vorgenommenen Einstellungen
Zitat von: martinp876 am 16 Januar 2018, 06:30:27
Die Auswahl der Regel im defspec2array allerdings musst du selbst machen. Da kann das Frontend nicht helfen. Es hängt von deinem Systemdesign und deiner Einrichtungsdisziplin ab.
Helfen kann ich nur, wenn bspw. Alle Device eines Typs im System bearbeitet werden sollen. Meist geht das einfach über das attr Model.
Was genau meinst du mit Systemdesign und Einrichtungsdisziplin?
Ich habe alles nach Wiki konfiguriert. Ich habe Räume angelegt, in denen sich jeweils ein Thermostat in der Gruppe ,,Thermostate" befindet. Alle meine Thermostate befinden sich in dieser einen Gruppe. Es müsste also passen, wenn man alle Geräte eines Typs bearbeiten könnte.
Wenn ich dann irgendwann weiteres Equipment habe, gäbe es meiner Einrichtungsdisziplin nach weitere Gruppen, neben ,,Thermostate" wären das bspw. Licht, Bewegungsmelder, Türkontakte, Fensterkontakte, Rauchmelder, etc., die dann über die 1. Schaltfläche auswählbar sein müssten.
Da es bei all diesen beispielhaften Gruppen keinen Sinn macht eine Temperatur einzustellen, wäre stattdessen wahrscheinlich ein einfacher On-/Off-Switch ausreichend.
Ist das insgesamt irgendwie umsetzbar?
Wenn ich erstmal nur meine Thermostate über das WebInterface in den Urlaubsmodus versetzen könnte, wäre mir erstmal geholfen bzw. ich würde mich trauen, das meiner Frau zu erklären. [emoji6]
Danke und Gruß Hoppel