HMInfo tempList

Begonnen von docloy, 06 April 2014, 12:17:47

Vorheriges Thema - Nächstes Thema

docloy

Wie man in anderen Threads ja sehen konnte, stehe ich noch ganz am Anfang mit FHEM. Und wollte jetzt für die Heizkörper einen Wochenplan erstellen. Zunächst via Funktion in 99_myUtils.pm bis ich gelesen habe, dass dort eigentlich keine Daten hinterlegt werden sollten, sondern nur Funktionen/Programmbestandteile. Warum steht es aber so dann im Wiki (das nur am Rande bzw. darf das Wiki jeder ändern, dann könnte ich auch einen Verweis auf HMInfo und tempList machen).

Bei den cfg-Files für HMInfo wollte ich nachfragen, wie man Kommentare einfügen kann (Raute geht offenbar nicht).



Für später wäre noch interessant ob es eine Möglichkeit gibt, Wochenpläne grafisch via Webinterface anzupassen bzw. ob man via HMinfo auch ganze Räume im manuellen Modus mit einer Eingabe, anstelle für jedes Thermostat.


martinp876

ZitatWarum steht es aber so dann im Wiki (das nur am Rande bzw. darf das Wiki jeder ändern, dann könnte ich auch einen Verweis auf HMInfo und tempList machen).
a) manche mögen es anders - ich sollte nicht einfach alles löschen (auch wenn es mir nicht gefällt)
b) ich habe gerade erst angefangen, wiki zu dokumentieren
c) es gibt seit heute im update neue Kommandos.
ZitatBei den cfg-Files für HMInfo wollte ich nachfragen, wie man Kommentare einfügen kann (Raute geht offenbar nicht).
warum nicht? Was passiert?

ZitatFür später wäre noch interessant ob es eine Möglichkeit gibt, Wochenpläne grafisch via Webinterface anzupassen
nicht geplant
Zitatob man via HMinfo auch ganze Räume im manuellen Modus mit einer Eingabe, anstelle für jedes Thermostat.
dafür gibt es andere Methoden. HMInfo kennt keine Räume (die kennt niemand). Das room-attribut ist mir zu wertvoll um es an einen Raum zu hängen.

Es gibt hierfür aber andere Module, wie structure... evtl kann dich jemand beraten.

HMInfo will HM-typische Eigenschaften gruppieren - room ist nicht spezifisch

docloy

Zitat von: martinp876 am 06 April 2014, 16:16:57
a) manche mögen es anders - ich sollte nicht einfach alles löschen (auch wenn es mir nicht gefällt)
b) ich habe gerade erst angefangen, wiki zu dokumentieren
c) es gibt seit heute im update neue Kommandos.warum nicht? Was passiert?
Zu a), ich meinte ja nicht löschen, sondern darauf verweisen, dass es eine andere Möglichkeit gibt und auf den HMInfo-Artikel im Bereich tempList verweisen.
b) Sollte auch kein Vorwurf sein. Kann da aber gerne auch helfen (sofern möglich).
c) In der tempList.cfg wollte ich die ursprünglichen Einträge (welche ich ausgelesen habe) auskommentieren und habe diese kopiert und angepasst. Zudem wollte ich als Kommentar den nötigen Befehl notieren, um die Wochenpläne zu ändern:

#Befehl via HM Info (Device hm)
#  set hm tempListTmpl -f hm.OG.WZ.Heizung wzSommer restore tempList.cfg
entities: wzSommer
R_0_tempListSat> 24:00 18.0
R_1_tempListSun> 24:00 18.0
R_2_tempListMon> 24:00 18.0
R_3_tempListTue> 24:00 18.0
R_4_tempListWed> 24:00 18.0
R_5_tempListThu> 24:00 18.0
R_6_tempListFri> 24:00 18.0

# Befehl via HM Info (Device hm)
#  set hm tempListTmpl -f hm.OG.WZ.Heizung wzWinter restore tempList.cfg
entities: wzWinter
R_0_tempListSat> 07:00 17.0 08:00 19.0 09:00 20.0 22:00 19.0 24:00 18.0
R_1_tempListSun> 07:00 17.0 08:00 19.0 09:00 20.0 22:00 19.0 24:00 18.0
R_2_tempListMon> 06:00 17.0 09:00 19.0 16:00 17.0 22:00 20.0 24:00 18.0
R_3_tempListTue> 06:00 17.0 09:00 19.0 16:00 17.0 22:00 20.0 24:00 18.0
R_4_tempListWed> 06:00 17.0 09:00 19.0 16:00 17.0 22:00 20.0 24:00 18.0
R_5_tempListThu> 06:00 17.0 09:00 19.0 16:00 17.0 22:00 20.0 24:00 18.0
R_6_tempListFri> 06:00 17.0 09:00 19.0 16:00 17.0 22:00 20.0 24:00 18.0

#entities:hm.OG.WZ.Heizung_links_Clima
#R_0_tempListSat> 06:00 17.0 22:00 21.0 24:00 17.0
#R_1_tempListSun> 06:00 17.0 22:00 21.0 24:00 17.0
#R_2_tempListMon> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_3_tempListTue> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_4_tempListWed> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_5_tempListThu> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_6_tempListFri> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0

#entities:hm.OG.WZ.Heizung_rechts_Clima
#R_0_tempListSat> 06:00 17.0 22:00 21.0 24:00 17.0
#R_1_tempListSun> 06:00 17.0 22:00 21.0 24:00 17.0
#R_2_tempListMon> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_3_tempListTue> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_4_tempListWed> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_5_tempListThu> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0
#R_6_tempListFri> 06:00 17.0 09:00 21.0 17:00 17.0 22:00 21.0 24:00 17.0

======= finished ===


Mache ich das so, bekomme ich reihenweise Fehlermeldungen. Entferne ich alle Zeilen mit Rauten (habe es ohne Rauten als tempList2.cfg gespeichert, funktioniert der Befehl einwandfrei:

set hm tempListTmpl -f hm.OG.WZ.Heizung wzSommer restore tempList2.cfg


Zitat von: martinp876 am 06 April 2014, 16:16:57
nicht geplantdafür gibt es andere Methoden. HMInfo kennt keine Räume (die kennt niemand). Das room-attribut ist mir zu wertvoll um es an einen Raum zu hängen.
Es gibt hierfür aber andere Module, wie structure... evtl kann dich jemand beraten.
Danke für die Info. Structure ist wohl das, was ich brauche. Für was verwendest du das room-Attribut?


martinp876

ok, das mit hash stimmt. werde  ich beheben.

room verwende ich um die web-gruppierung zu erreichen. Wichtig zu wissen ist, dass eine Entity sich in mehreren rooms  "aufhalten" kann.

Damit erstelle ich Gruppen wir
- aktoren, device
- heizung, licht, rollo, temperatur
- räume...
attr LichtFlur room actor,flur,eg,licht
attr hk_WZ_Clima room actor,Wohnzimmer,og,heizung,heizung_Support
attr hk_WZ room device,Wohnzimmer,og,heizung_Support

damit erreiche ich eine schnelle Navigation nach meinen Wünschen. Der physikalische "Room" ist auch ein Eintrag...

chbla

Ich haenge hier mal eine Frage an, weil das allgemeine Topic passt:

Ich habe momentan eine tempList.cfg fuer alle meine Thermostate, fuer den normalen Betrieb.
Jetzt haette ich gerne eine zweite tempListOff.cfg damit ich bei bedarf einfach die eine oder andere Liste von ausserhalb (per Http) laden kann.
Wenn ich dann manchmal ein paar Tage weg bin, lade ich einfach per Android die tempListOff usw.

Kann mir jemand sagen wie ich mehrere Listen definieren kann die ich nach bedarf restore? Ich habe das mit dem HMInfo device nicht ganz durchschaut..

Danke und Gruss,
Christoph

martinp876

Alle templates per file umschalten ist auch eine idee.
Aktuell ist im attr das dir, das file und der templatename eingetragen. Man kann alles einzeln weglassen, es gibt einen default.

Du musst also aktuell das attr in allen controllern aendern und dann ein set hm templist restore ausführen. Das sollte reichen.
Ob deine templisten in einem oder mehreren files enthalten sind ist egal. Ich hoffe, das macht es klar.

Nach der Anregung, ich denke die gab es schon einmal, könnte man in hminfo ein templistfile angeben. Im aktor kann man es über schreiben, klar. Aber somit könnte man den default aendern. Danach wie gehabt ein set templist..... Fertig.

chbla

Ich habs jetzt so gemacht das ich 2 files (an/aus) habe zwischen denen ich Umschalte.

Eine Frage dazu: Kann ich irgendwie feststellen welches cfg file aktiv ist? Ich glaube der filename wird nicht gespeichert oder, nur die settings uebertragen?

martinp876

Klar. Der host für hm system definitionem und Attribute ist hminfo.
Configtempfile legt das defaultfile fest.
Ich nutze auch configdir um die settings aus dem homedir zu schieben, das ist für mich schlicht ein saustall.

chbla

hmm ein Attribut configFilename hab ich da nicht - ich lade eben mit restore fuer an/aus immer andere template files, bin nicht sicher
ob das dann auch gespeichert wird

martinp876

Hast du ein hminfo?
Define hm HMInfo
In culhm gibt es nur hm "Teile". Hminfo ist eine über geordnete Instanz. Muss man nicht haben, kann man.
Defaults für culhm allgemein kann man nicht in culhm definieren sondern darüber. Hminfo leistet eben hm-globale Aktionen.
Also findest du auch dort die Möglichkeit, das defaultfile zu setzen.
Du kannst im RT ein template setzen. Das kann spezifiziert sein als <dir><file><template>.
Setzt du das template nicht ist der Name des rtclima das template. Ist das file nicht gesetzt wird das defaultfile genommen. Das ist das attr aus hm, alternativ templist.cgf. ist kein dir angegebenen ist es das dir aus hminfo oder fhemroot.
./setup/templSommer.cfg:Wohnzimmer
Ist ein template mit dir und file.
Ich denke die uebrigen Möglichkeiten kann man selbst erschliesen

chbla

Ich bin nicht ganz sicher, hminfo hab ich, jep - aber da finde ich nirgends die momentan aktiven templates.

Ich schalte die Heizung an/aus mit:
set hm tempList restore tempOn.cfg
set hm tempList restore tempOff.cfg

martinp876

Die aktuell gültigen listen kannst du einsehen. Da templist einen filter zulässt kann man kein dropdown im Webinterface anbieten, schade. Ich habe jetzt
Set hm tempListG
Eingeführt, G für global. Also ohne Option zu filtern, mit dropdown.  Da findet sich ein
Set hm tempListG status
Der sollte dir zeigen, was aktiv und was verfügbar ist

chbla

ich bin nicht sicher ob wir das richtige meinen - also was ich will ist eigentlich nur welches templist file aktiv ist.
ich habe zum Beispiel ein tempOn.cfg und ein tempOff.cfg, da sind jeweils alle thermostate drin.
wenn ich nicht da bin mache ich ein set hm tempList restore tempOff.cfg

was ich jetzt will ist irgendwie rausfinden ob tempOn oder tempOff (also Heizung an oder aus) aktiv ist

martinp876

die Frage verstehe ich allerdings nicht - warum ist das eine Frage?
du kannst die Filenamen an vielen Stellen eingeben oder überschreiben. ich gehe also von folgenden Annahmen aus:
- im attr Template der RTs steht nur das tempalte, kein file
- du willst die gesamte Wohnung umschalten - Zentral
- du nutzt HMInfo

=>
Zitatattr hm configTempFile <newfile>
set hm tempListG restore

FHEM wird alle RTs umstellen. Das dauert etwas - was auch Sinn macht. die Zeiten werden entzerrt!
Optional ist ein "save" angesagt. Das Attribut wird sonst nicht gesichert und nach einem FHEM reboot hat man einen anderen Wert - muss man selbst entscheiden.
ein
Zitatset hm tempListG restore
kann man regelmäßig ausführen.  Sollte das RT die templist haben (ach so - und diese auch wieder gelesen sein! also attr rt autoReagReg 5 - nicht vergessen!) und FHEM diese gelesen haben, passiert nichts weiter. man könnte also nach 20min ein 2. mal restore machen, falls etwas schief gegangen ist. "restore" ist "lazy". Es wird nur geschrieben, was unterschiedlich ist!


Prüfen kann man alternativ mit
set hm configCheck
set hm tempListG status



chbla

Sorry, ich glaub ich habs falsch erklaert
Was ich will ist irgendwie von FHEM abfragen koennen welches Template aktiv ist (tempOn.cfg oder tempOff.cfg) zum Beispiel.
Damit ich sehe ob Heizung An oder Aus. Das ganze verwende ich in diversen externen Scripts und meiner eigenen Weboberflaeche.

Die urspruengliche Frage war deshalb ob irgendwo gespeichert wird welches tempList file geladen wurde und aktiv ist. Soweit ich
das richtig sehe kann ich aber nur abfragen welche Settings aktiv sind, nicht welches File geladen/restored wurde.

Vermutlich muss ich da eine zusaetzliche Variable setzen.