Modul weekprofile + FHEMWEB widget

Begonnen von Risiko, 23 Dezember 2015, 20:16:54

Vorheriges Thema - Nächstes Thema

klausw

#210
so etwa?
diff -crB 98_weekprofile.pm 98_weekprofile.old
*** 98_weekprofile.old  2016-09-19 21:46:05.683354300 +0200
--- 98_weekprofile.pm   2016-09-19 21:43:57.416245900 +0200
***************
*** 302,308 ****
    my ($hash) = @_;
    my $me = $hash->{NAME};

!   splice($hash->{SNDDEVLIST});

    foreach my $d (keys %defs)
    {
--- 302,308 ----
    my ($hash) = @_;
    my $me = $hash->{NAME};

!   delete $hash->{SNDDEVLIST};

    foreach my $d (keys %defs)
    {
***************
*** 853,859 ****
        my ($what,$who) = split(' ',$s);

        if ($what =~ m/INITIALIZED/ || $what =~ m/REREADCFG/) {
!         splice($own->{PROFILES});
          weekprofile_refreshSendDevList($own);
          weekprofile_assignDev($own);
          weekprofile_readProfilesFromFile($own);
--- 853,859 ----
        my ($what,$who) = split(' ',$s);

        if ($what =~ m/INITIALIZED/ || $what =~ m/REREADCFG/) {
!                               delete $own->{PROFILES};
          weekprofile_refreshSendDevList($own);
          weekprofile_assignDev($own);
          weekprofile_readProfilesFromFile($own);


wenns nicht passt habe ich das komplette file angehängt
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Risiko

Hab es übernommen.
Ab morgen per Update.

klausw

#212
super, danke

Edit: funktioniert bei mir..Warnung ist weg
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

reibuehl

Ist es eigentlich möglich, über weekprofile auch die Heizungszustände "On" und "Off" einzustellen? Im Widget kann ich nur einen Wert zwischen 5°C und 30°C einstellen.
Reiner.

Risiko

Hallo reibuehl,

ich glaube, in den Wochenprofilen für die Thermostate ist on und off nicht vorgesehen. Habe es nie probiert.
Wenn alle Thermostate es unterstützen würden, könnte ich es im Modul weekprofile mit einbauen.

Risiko.

reibuehl

Ich kann nur für die aktuellen Homematic Thermostate sprechen. Der HM-CC-RT-DN und der HM-TC-IT-WM-W-EU können über das normale Web Interface beide auf On oder Off gestellt werden.
Reiner.

Risiko

Ja schon klar. Aber innerhalb von Wochenprofilen?

namor

Hallo,

ich habe das Problem das mir Fhem abstürzt wenn ich ein weekprofil mit assoziiertem Gerät anlege.
Nach diesem Muster:
define <name> weekprofile <device>

Mache ich das ohne Gerät , geht alles.

Fehlermeldung im Log:
hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this) at ./FHEM/98_weekprofile.pm line 502.

Update sind aktuell und auch das vorgeschriebene Jason ist installiert.

Da ich die Thermostate über FTUI steuern möchte benötige ich die Variante assoziiertes Gerät ja.

Was mache ich falsch?

Risiko

Hallo namor,

wenn kommt es zu dem Fehler?  Geht es ohne FTUI, also nur mit FHEMWEB?
Was für ein Thermostat ist es denn? Wie sieht dein define aus?
Es sieht so aus, als wenn das Wochenprofil vom Thermostat nicht richtig abgefragt werden kann.

Risiko

namor

Hallo Risiko,

wenn ich das weekprofil ohne assoziiertem Thermostat anlege läuft alles wie es soll.
Ich kann verschiedene Pläne anlegen und diese an meine verschiedenen Thermostate (Auswahl Thermostat_Climate) übertragen.

Meine Def:
define Heizplan_WHZ weekprofile
attr Heizplan_WHZ room 1_Wohnzimmer


Internals:
   CFGFN      /opt/fhem/FHEM/Wohnzimmer.cfg
   NAME       Heizplan_WHZ
   NR         328
   NTFY_ORDER 50-Heizplan_WHZ
   STATE      created
   TYPE       weekprofile
   PROFILES:
     HASH(0x10ed3d8)
   Readings:
     2016-10-02 12:14:09   profile_count   1
     2016-10-02 12:14:09   state           created
   SNDDEVLIST:
     HASH(0x2501468)
     HASH(0x1c79460)
     HASH(0x1bba228)
     HASH(0x10989a0)
     HASH(0x2501138)
     HASH(0x2500928)
     HASH(0x22692a0)
     HASH(0x20117a0)
   TOPICS:
     default
Attributes:
   room       1_Wohnzimmer


Soweit alles gut.

Da ich aber bei der Integration ins Ftui keine spezielle Möglichkeit zur Übertragung an den Thermostaten habe (über das Ftui Widget ändert er schön brav den Wochenplan),
benötige ich nach meinem Verständnis des weekprofil-Modules, ein assoziiertes Gerät (also meinen Thermostaten "THM_WHZ").

Wenn ich also folgende Def mache:
define Heizplan_WHZ weekprofile THM_WHZ
attr Heizplan_WHZ room 1_Wohnzimmer


Erstellt er alles wie gewünscht, doch beim nächsten rereadcfg hängt sich Fhem weg.
Erst ein Neustart bringt Fhem wieder hoch.
Danach sehe ich im Log die aufgeführte Meldung.
Bei jedem weiteren reredcfg passiert das selbe.

Zu Deinen Fragen.

Ich versuche das alles erst einmal ohne FTUI.
Meine gesamte Fhem Umgebung ist Homematic, der Thermostat mit welchem ich das teste ist ein aktueller HM-TC-IT-WM-W-EU mit zwei angebundenen Heizkörperthermostaten HM-CC-RT-DN und einem Fensterkontakt HM-SEC-SCo.
Im Log- Verzeichnis wird auch die Wochenprofil.cfg erstellt.

Ich habe keine Ahnung was da nicht passt.



namor

Hi Risiko,

sorry für den Aufwand.
Habe den Fehler gefunden, wer Lesen kann ist klar im Vorteil.

Bei Homematc muss wohl als assoziiertes Gerät der Climate Kanal (THM_WHZ_Climate) angegeben werden.
Deine Aussage das der Wochenplan aus dem Gerät nicht gelesen werden kann hat mich darauf gebracht.

Dennoch vielen Dank für Deine Unterstützung.

namor

Kurz noch zur Ergänzung für alle Homematic Anwender.

Bei Homematic muss als Device der Climate angegeben werden, Im weekprofil und im Attribut des Device.

Weekprofil (als assoziiertes Master Device ):
define Heizplan_WHZ weekprofile THM_WHZ_Climate

Attribute im Device (THM_WHZ_Climate)
attr THM_WHZ_Climate userattr weekprofile
attr THM_WHZ_Climate weekprofile master


@Risiko
Das sollte evtl. auch ins Wiki.

Risiko

Steht doch din ;)
Die Attribute brauchst du in diesem Fall nicht.

hulzer

Hallo,

vielen Dank erstmal für das tolle Modul.

Leider gibt es einen Bug falls der Device-Name einen Punkt beinhaltet. Das Widget bringt beim Speichern eines Profils FHEM komplett zum Absturz.

Meine Lösung war es den Wochentag als data-Attribut zu hinterlegen; somit spart man sich "split-Abenteuer" ;-)

Hier die Änderungen in fhemweb_weekprofile.js:

ALT: $(table).attr('id',"weekprofile."+widget.DEVICE+"."+shortDays[day]);
NEU: $(table).attr('id',"weekprofile."+widget.DEVICE).attr("data-day", shortDays[day]);

ALT: var id = $(tableDay[i]).attr('id').split('.'); var day = id[2];
NEU: var day = $(tableDay[i]).data("day");


Vielleicht  kann man die Änderung ja mit übernehmen.

Gruß
Hulzer

Risiko

Vielen Dank.
Hab es übernommen und eingecheckt.