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.
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
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?
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...
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
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.
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?
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.
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
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
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
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
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
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
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.
ZitatVermutlich muss ich da eine zusaetzliche Variable setzen.
das denke ich auch.
da es zu viele unterschiedliche wege gibt, die wochenprogramme zu verändern, kann es das, was du suchst, eigentlich nicht geben. in deinem speziellen fall gibt es nur das setzen über 2 files/templates. mit der variablen weisst du aber auch nur, welches file als letztes gesendet wurde, aber nicht, was wirklich im thermostat steht.
wenn du sicher sein willst, dass nicht auch manuell an den thermostaten geändert wurde oder auch anders, ist es eventuell sinnvoll, ein verify auszuführen.
Tempon.cfg ist ein filename, korrekt?
.cfg nutze ich, und fhem als extension. Im template würde ich es daher nicht nutzen.
Weiter stellt sich die Frage nach deinem setup. Redest du von einem RT oder allen RTS in deiner Wohnung?
Willst du eine Übersicht oder eine Abfrage um ein script zu bedienen?
Das template eines einzelnen RTS steht im Attribut. Frage dies ab.
Die Übersicht alles RTS liefert hminfo
Den status ob RT mit dem template Übereinstimmt liefert hminfo
Was tempon.cfg ist kann ich von hier nicht sehen
Jep so in die Richtung, ich erklaers mal genauer:
Ich bin 3 Tage die Woche nicht Zuhause, da habe ich zwei template files: tempOn.cfg und tempOff.cfg die jeweils alle Thermostate beeinhalten.
Wenn ich jetzt zum Beispiel wegfahre, mache ich ein set hm tempList restore tempOff.cfg und setze damit alle Thermostate auf zB. 15 Grad (Heizung komplett aus sozusagen).
Bevor ich wieder komme mache ich ein set hm tempList restore tempOn.cfg und setze die Thermostate wieder auf die normalen Temperaturen bzw. Einstellungen.
In meinem Webinterface habe ich 2 Buttons On/Off, sehe aber nicht welches der beiden Templates (On/Off) wirklich aktiv ist, also keinen Status, ich pushe das einfach nur.
Deshalb wuerde ich gerne von Fhem wissen ob tempOn.cfg aktiv ist oder eben tempOff.cfg (also als letzte geschrieben wurde). Damit ich nicht unnoetig neu setze usw.
Diese Info kann ich aber direkt nicht abfragen da der template Filename nicht gespeichert wird sondern nur die settings. Deshalb muesste ich eben eine zusaetzliche Variable mit setzen
oder das ganze im Frontend speichern (ist ein Problem wenn von anderer Seite her geaendert wird).
Es koennte aber in dem Fall irgendwie mit dem verify gehen, also wenn ich zB. Vergleiche ob die settings in tempOn.cfg gesetzt sind. Aber dann hab ich wieder ein Problem wenn man manuell was aendert.
ZitatIn meinem Webinterface habe ich 2 Buttons On/Off, sehe aber nicht welches der beiden Templates (On/Off) wirklich aktiv ist, also keinen Status, ich pushe das einfach nur.
dann musst du doch nur zusätzlich den button entsprechend ändern, wenn du ein template ausführst. => setstate.
die ersten Sätze erklären es. Ich würde es so machen:
du definierst einen Satze templates (ein oder mehrere templates, egal) im ersten file. Die gleichen templates kommen in 2. File vor - natürlich mit den anderen Werte.
du gibst jeden RT ein template (oder allen das gleich,... )
Sagen wir, du willst Wohnzimer und Schlafzimmer unterscheiden, hast 2 Wohnräume. Du definierst also 2 templates.
Die RTs sind RTsz, RTwz1, RTwz2.
Die Templates sind
tpWohn
tpSZ
die files sind tempOn.cfg und tempOff.cfg
also
attr RTsz_Clima tempListTmpl tpSZ
attr RTwz1_Clima tempListTmpl tpWZ
attr RTwz2_Clima tempListTmpl tpWZ
attr RTsz autoReadReg 5_readMissing
attr RTwz1 autoReadReg 5_readMissing
attr RTwz2 autoReadReg 5_readMissing
attr hm ConfigTempFile tempOn.cfg
setup ist fertig - ausführen:
set hm tempListG restore
nun willst du gehen, also ein Kommando auslösen
attr hm ConfigTempFile tempOff.cfg
set hm tempListG restore
fertig.
du willst sehen, was Sache ist?
set hm tempListG status
Du willst wissen, was aktiv ist. schaue das Attribut in hm an.
Wenn du das File nicht in HMInfo speichern willst wird es heimarbeit - bilde HMInfo nach.
@frank: der button ist nicht im fhem web interface - ich hab da ein eigenes gemacht
@martin, ah jetzt hab ichs kapiert - dann hab ichs anfangs doch richtig verstanden. ich werds so machen.
danke fuer die erklaerung!
Zitat von: martinp876 am 12 Dezember 2015, 09:26:30
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
Sehr cool, danke! Funktioniert bestens!