Autor Thema: Erstellen von "auto" Profilen  (Gelesen 11488 mal)

CulDeSac

  • Gast
Erstellen von "auto" Profilen
« am: 27 Dezember 2012, 18:17:29 »
wenn ich aus fhem die MAX Thermostate steuere schalten diese auf manuell um.
Ich möchte aber lieber ein neues automatisches Wochenprofil anlegen. Das gibt bei Ausfall des fhem servers
wenigstens kein Heizungschaos, da die Thermostate dann einfach das Profil weiter abfahren.

Wie kann man das "auto" Profil einstellen?
Notfalls könnten man ein Profil mit dem MAX! Konfigurator-Programm unter Windows einstellen und
den Wochencode zurückspielen. Dieser liegt mindestens als Zeichenkette vor.

Kann mir da jemand helfen?


Offline reacend

  • Jr. Member
  • **
  • Beiträge: 64
Aw: Erstellen von "auto" Profilen
« Antwort #1 am: 27 Dezember 2012, 18:31:07 »
hi also ich nehme die orignal maxsoftware...
entweder vorher fhem stoppen oder die ondemand option eintragen.

ansonsten kannst du noch mit maxbuddy wochenprofile verwalten...

bg
reacend

CulDeSac

  • Gast
Aw: Erstellen von "auto" Profilen
« Antwort #2 am: 28 Dezember 2012, 14:36:47 »
Sinn der Übung war es aber fhem zu nutzen, oder?

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3691
Aw: Erstellen von "auto" Profilen
« Antwort #3 am: 28 Dezember 2012, 15:34:36 »
Hoffe Matthias Gehre kann etwas dazu sagen. Ich habe nämlich auch nur ein CUL und kein Cube
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust

Offline Matthias Gehre

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 707
Aw: Erstellen von "auto" Profilen
« Antwort #4 am: 02 Januar 2013, 10:05:30 »
Also das aktuelle Wochenprofil steht in $hash->{internal}{weekProfile} der MAX Geräte.
Bisher nur als Zeichenkette. Das Parsen müsste man noch machen. Das Format ist:

Format:
DataTag(Samstag)
...
DataTag(Montag)

DataTag:
13 einzelne Profile

einzelnes Profil:
16 Bit Integer: (high byte kommt zuerst im String)
int time = (value & 0x1FF) * 5;
int hour = time / 60 % 24;
int minute = time % 60;
int temperature = value >> 9 & 0x3F;

Würde mich über einen Diff freuen.

Dann braucht man noch einen Möglichkeit, um über get/set das Wochenprofil zu verändern.

Das Senden des neuen Wochenprofiles an die Geräte kann dann wieder ich implementieren.

CulDeSac

  • Gast
Aw: Erstellen von "auto" Profilen
« Antwort #5 am: 04 Januar 2013, 15:04:34 »
Hi, damit ist ja schon einmal viel geholfen, denn so kann man schon einmal ein vorhandenes Profil speichern und
blind wieder draufspielen. (Ich denke da an Profile für Urlaub, Schulferien  und natürlich auch Weihnachten - sonst bekomme ich nächstes Jahr wieder geschimpft, weil alle unterm Baum frieren, weil Wochentag)

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 376
Aw: Erstellen von "auto" Profilen
« Antwort #6 am: 09 Januar 2013, 21:06:56 »
Hallo zusammen,

ich beschäftige mich seit kurz vor Weihnachten mit dem MAX System und somit auch mit FHEM.
Ich benutzte einen Cube und habe mehrere Thermostate auch einen WT+ Wandthermostat.
Zum Programmieren der Wochenprofile nutze ich z.Zt. das MAX eigene Programm mit dem Cube.
Ich finde toll was bisher alles für das MAX System gemacht wurde!

Ich wollte auch gern in FHEM meine Profile zumindest einmal sichtbar haben
und habe mich dann also auch noch der Fremdsprache PERL hingegeben ;-)
Mit den Hinweisen von Matthias habe ich auch das Parsen und die Darstellung hinbekommen (juhu)

Im Bild Könnt Ihr ein Besipie von den Wochenprofilen sehen.
Jeweils eine Zeile für die Zeiten pro Tag und eine Zeile für die zugehörigen Temperaruren.

Den Code zum Parsen habe ich auch angehangen, vielleicht kann Matthias ja mal einen code-review machen und das eventuell auch übernehmen.
Wie gesagt das waren meine ersten PERL Versuche und die Interna von FHEM kenne ich auch noch nicht!

Bei dem Wandthermostaten wird das Profil leider noch nicht korrekt dargestellt, da der String in $shash->{internal}{weekProfile} zu kurz ist.
Es müssten ja 4 Zeichen mal 13 Stellpunkte mal 7 Tage also 364 Zeichen sein, es sind aber nur 298.

Vielleicht kann Matthias sich das mal anschauen, ich habe da auf Anhieb den Fehler nicht gefunden.
Könnte sein, dass in der Config Message Dinge wie valveposition und valveoffset bei einem WT gar nicht übertragen werden???

Naja probierts mal aus.
Wie gesagt ich nutze einen Cube und habe das mit CUL nicht probiert!

Adam

Offline Matthias Gehre

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 707
Aw: Erstellen von "auto" Profilen
« Antwort #7 am: 10 Januar 2013, 21:55:50 »
Hey, danke für den Code!
Sieht sehr gut aus, habs mit kleinen Änderungen übernommen. Kommt morgen mit dem Update.

Zum Wandthermostat kann ich selbst wenig sagen. Was gibt denn der Cube für eine C: Nachricht zum Wandthermostat?
Im Log sieht das so ähnlich aus wie
2013.01.10 21:43:20 5: Msg C:04c3fe,0gPD7gEAFf9KRVEwMTM1MzI4KiI9CQcYAzAM/wBESFUIRSBFIEUgRSBFIEUgRSBFIEUgRSBFIERIVQhFIEUgRSBFIEUgRSBFIEUgRSBFIEUgREhUbETMVRRFIEUgRSBFIEUgRSBFIEUgRSBESFRsRMxVFEUgRSBFIEUgRSBFIEUgRSBFIERIVGxEzFUURSBFIEUgRSBFIEUgRSBFIEUgREhUbETMVRRFIEUgRSBFIEUgRSBFIEUgRSBESFRsRMxVFEUgRSBFIEUgRSBFIEUgRSBFIA==

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 376
Aw: Erstellen von "auto" Profilen
« Antwort #8 am: 10 Januar 2013, 22:17:49 »
Hi Matthias,

freut mich auch was beitragen zu können.
 
Hatte bei mir auch noch die Anzeigenamen geändert mit einer laufenden Nummer,
so dass die Wochentage in der richtigen Reihenfolge aufgelistet werden.

readingsBulkUpdate($shash, "weekprofile-$i-$decalcDays[$i]-time", $time_prof_str );
readingsBulkUpdate($shash, "weekprofile-$i-$decalcDays[$i]-temp", $temp_prof_str );

Und ich hatte noch auf die Länge des weekprofiles variable im $hash abgefragt,
damit bei dem kurzen WT+ String nicht immer eine Fehlermeldhung kommt!

Habe hier mal ein C: String von einem WT+ und einem normalen Thermostat,
die mit einander gekoppelt sind und somit das gleiche weekprofil haben!

Wandthermostat:
2013.01.10 22:05:22 5: Msg C:057fa4,ywV/pAMBEP9KRVEwNTAxNjcxKiE9CTxUWRQ9ID0gPSA9ID0gRSBFIEUgRSBFIEUgPGBZFD0gPSA9ID0gPSBFIEUgRSBFIEUgRSA8SFkUPSA9ID0gPSA9IEUgRSBFIEUgRSBFIDxIWRQ9ID0gPSA9ID0gRSBFIEUgRSBFIEUgPEhZFD0gPSA9ID0gPSBFIEUgRSBFIEUgRSA8SFkUPSA9ID0gPSA9IEUgRSBFIEUgRSBFIDxIWRQ9ID0gPSA9ID0gRSBFIEUgRSBFIEUg
Thermostat mit gleichem Wochenprogramm:
2013.01.10 22:05:22 5: Msg C:04c9db,0gTJ2wEBFv9KRVEwMzg3NTA5KiE9CQcYAzAM/wA8VFkUPSA9ID0gPSA9IEUgRSBFIEUgRSBFIDxgWRQ9ID0gPSA9ID0gRSBFIEUgRSBFIEUgPEhZFD0gPSA9ID0gPSBFIEUgRSBFIEUgRSA8SFkUPSA9ID0gPSA9IEUgRSBFIEUgRSBFIDxIWRQ9ID0gPSA9ID0gRSBFIEUgRSBFIEUgPEhZFD0gPSA9ID0gPSBFIEUgRSBFIEUgRSA8SFkUPSA9ID0gPSA9IEUgRSBFIEUgRSBFIA==

Würde mich auch wenn mal Zeit ist an einem set für die Profile probieren, weiss nur nicht wie das intern in FHEM passieren muss.
Also in welche "globalen" Strukturen muss das rein, bzw. wie muss die MSG aussehen?

Gruß
Adam

Offline Matthias Gehre

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 707
Aw: Erstellen von "auto" Profilen
« Antwort #9 am: 10 Januar 2013, 23:16:11 »
Hey,

das parsen der WallThermostatConfig sollte nun auch passen und die richtige Länge des weekprofiles liefern.

Wie das setzten geht, ist noch nicht klar.
Am besten mit dem CUL beobachten (CUL_MAX_Parse Nachrichten) oder den Cube beobachten (wireshark)
während man mit der offiziellen Max! Software das Wochenprofil ändert.
Es gibt wahrscheinlich ein extra Paket, dass im Payload dann diesen langen Hex-String beinhaltet.

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 376
Aw: Erstellen von "auto" Profilen
« Antwort #10 am: 10 Januar 2013, 23:27:37 »
Hi Matthias,

cool! Werde ich morgen direkt mal ausprobieren.

Habe auch einen CUL hier, habe aber noch nichts richtung MAX damit gemacht.
Mal sehen, ob ich beim Setzen der Profile über den Cube was damit tracen kann!

Adam

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 376
Aw: Erstellen von "auto" Profilen
« Antwort #11 am: 11 Januar 2013, 20:47:39 »
Hi Matthias,

die Profile sehen gut aus sowohl beim Thermostat als auch beim WT+.
Die Änderung hat geholfen!

Ich sehe jedoch beim Start die folgende Melungen:

Scalar value @time_prof[$j] better written as $time_prof[$j] at ./FHEM/10_MAX.pm  line 505, <> line 16.
Scalar value @temp_prof[$j] better written as $temp_prof[$j] at ./FHEM/10_MAX.pm line 506, <> line 16.

Gruß
Adam

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3691
Aw: Erstellen von "auto" Profilen
« Antwort #12 am: 11 Januar 2013, 21:28:57 »
Den Fehler beim Start habe ich auch, aber ich habe keine neuen Readings für die Profile hinzubekommen.
Werden keine Readings dazu angelegt wenn keine Profile existieren?
Existieren überhaupt im Thermostat Profile im Auslieferungszustand?
Habe nur ein CUL und demnach keine Auto-Profile angelegt
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust

Offline Matthias Gehre

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 707
Aw: Erstellen von "auto" Profilen
« Antwort #13 am: 11 Januar 2013, 22:33:33 »
Die Profile können m.E. nicht abgefragt werden. Der Cube speichert für uns das zuletzt eingestellte Profil,
sodass wir über MAXLAN das abfragen können.
Per CUL geht das nicht. Man kann nur ein neues Profil setzen, und sich das dann merken.

snowyrain

  • Gast
Aw: Erstellen von "auto" Profilen
« Antwort #14 am: 13 Januar 2013, 09:44:12 »
Hallo Adam,

vielen Dank an Dich für das Erstellen und an Matthias für das Einbinden der Anzeige des Wochenprogramms.

Super Sache!

Gruß

Snowyrain

 

decade-submarginal