Autor Thema: neue Beta Versionen von 10_MAX und 14_CUL_MAX  (Gelesen 1064 mal)

Offline Wzut

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 3030
neue Beta Versionen von 10_MAX und 14_CUL_MAX
« am: 12 Dezember 2019, 19:26:20 »
Ich möchte hier meine aktuellen Testversionen der MAX Module zur Verfügung stellen bevor sie ins tägliche FHEM Update aufgenommen werden.

10_MAX

Fix : kein autocreate für neue Geräte vom Typ Eco Taster (PushButton)
Fix : vorhandene Geräte konnten nicht mittels defmod editiert werden

neues Attribut : dummy (0,1) -> default 0
Das Attribut ist quasi ein halbes ignore , d.h. es können dann für das Device keine set Kommandos mehr abgesetzt werden und es wird auch keine Zeit Telegramme mehr bekommen, aber dennoch werden alle Readings aktualisiert. Vorteil für MAX Geräte die eigentlich für diese Instanz "fremd" sind oder wenn man massive Credit Probleme hat und man versucht Ruhe ins System zu bekommen ohne die Geräte gleich zu löschen oder auf ignore zu setzen.
 
neues Attribut : model -> wird intern beim Start gesetzt und enthält den Gerätetyp. Die FHEM Statistiken werten dieses Attribut aus
neues  Attribut : debug -> erzeugt zusätzliche Readings die im Fehlerfall nützlich sein können
neues Attribut : CULdev -> kommt nur zum Einsatz wenn CUL_MAX mehr als einen CUL hat.
neues Attribut : actCycle -> default 0 , mögliche Werte sind als Stunden:Minuten einzutragen (hh:mm) Durch das Attribut wird wie bei Homematic ein Zeitraum definiert in dem überwacht wird ob vom Gerät ein Telegramm durch 14_CUL_MAX empfangen wurde. Ist diese Zeitspanne überschritten wird im Gerät das neue Reading Actifity auf dead gesetzt und kann durch andere FHEM Geräte (notify/DOIF) weiter verarbeitet werden. Die Überprüfung findet alle 5 Minuten durch CUL_MAX statt.     

Logging bei verbose 5 erweitert.

neue Set Funktion deviceRename
Vllt. wird so der eine oder andere User doch noch ermutigt seinen MAX Geräten einen anderen Namen als den von autocreate erzeugtem MAX_112233 Namen zu geben. Im Unterschied zum FHEM rename Konsole Kommando werden hier eventuell betroffene FileLogs gleich mit geändert.

neues Attribut externalSensor (device:reading)
Wenn in einem Raum kein Wandthermostat vorhanden ist aber die Raumtemperatur zusätlich mit einem externen Sensor in FHEM erfasst wird (z.B. LaCrosse)
kann dessen aktueller Temperatur Wert zur Berechnung des Readings deviation benutzt werden statt des eigenen Readings temperature

neue Readings peerList und peerIDs  (Name analog zur HomeMatic Welt)
Schon oft im Forum angefragt : Wie lese ich aus einem MAX Device die anderen Geräte aus die mit diesem assoziiert sind (peers) ?
Einfache Antwort : gar nicht , bzw. bis heute ist kein Befehl bekannt der irgendetwas von einem MAX Gerät auslesen kann.
Die jetzt eingebaute einfache Lösung überwacht den Datenaustausch zwischen zwei Geräten und sammelt diese Daten in den beiden Readings.
So kann man z.B. recht leicht herausfinden ob ein Fensterkontakt wirklich mit seinem HT / WT assoziiert ist oder ob er seinen Status lediglich als Broadcast Nachricht verschickt.

neues Reading : peers  (default nicht vorhanden) Komma getrennte Liste aller MAX Devices für die ein set associate ausgeführt wurde.
Wichtig : diese Liste kann leider nicht direkt vom Device abgerufen werden, das Modul sammelt hier die ausgeführten set associate Kommandos und entfernt auch wieder Geräte für die ein deassociate durchgeführt wurde.

neue Set Kommandos saveConfig und restoreReadings
Man kann die MAX Readings in zwei Gruppen einteilen : wichtige und unwichtige Readings.
Zu den unwichtigen Readings gehören jene die durch Nachrichten vom Device zu FHEM ständig verändert/aktualisiert werden.
Die wichtigen Readings (HT & WT) sind eigentlich in Wahrheit gespeicherte config Werte die nicht wieder vom Device durch ein Kommando zurück gelesen werden können.
Leider sind diese Werte auch noch in Gruppen zusammen gefasst und können auch nicht einzeln gesetzt werden, sondern nur zusammen mit gültigen Werten ihrer Gruppenmitglieder.
Beispiel  : die fünf Readings / config Werte  decalcification, boostDuration, boostValveposition, maxValveSetting und valveOffset bilden so eine Gruppe.
Möchte man eines davon mittels eines Set Kommandos ändern müssen auch die Werte der anderen vier mit übertragen werden ! Liegen diese aber nicht vor so werden vom MAX Modul default Werte gesetzt, diese müssen aber nicht zwangsläufig mit den aktuellen Werten im Device übereinstimmen.
Daher ist es sehr wichtig immer die aktuellen Config Werte in den wichtigen Readings zu haben, FHEM speichert i.d.R alle Readings in der Datei fhem.save und schreibt sie bei einem Neustart auch wieder zurück. Es gibt aber Fälle (Absturz, defekte SD Karte , Tausch eines MAX Geräts) wo diese Readings nicht zur Verfügung stehen.
Das saveConfig Kommando speichert alle wichtigen Readings in einer eigenen Datei default <name>.max im Verzeichniss ./log/ (Attribut global -> logpath) . Das restoreReadings stellt sie wieder her ohne dabei die Werte zum Thermostat erneut zu übertragen ! 
Bei beiden Kommandos kann optional ein andere Name verwendet werden. Diese neuen Kommandos sollen die ältere externe 99_myUtils Lösung MAX_Backup und MAX_Restore ersetzen.
Tipp: um jetzt nicht jedes Device einzeln auswählen und das set saveConfig Kommando auszuführen kann man in einem beliebigen Device als Ziel Namen saveAll
eingeben, damit werden in einem Rutsch alle Dateien erzeugt.  Alternativ über die Kommandozeile in FHEMWEB:
{ MAX_Save('all') } 
14_CUL_MAX

Fix : wenn das CUL_MAX Device vor dem CUL Device in der fhem.cfg steht, kann es beim Start den InitString des CULs nicht richtig setzen.
Durch den Fix wird beim Start die Bearbeitung des CUL_MAX Device verzögert um sicher zustellen das das CUL Device vorhanden ist.
 
neues Set Kommando : deleteSendQueue
Für den Fehler / Problemfall , damit lässt sich die SendQueue des CUL_MAX Device löschen ohne FHEM neu starten zu müssen.

set fakeSC und fakeWT als DropDown Feld Auswahl

Logging bei verbose 5 erweitert 

neues  Attribut : debug -> erzeugt zusätzliche Readings die im Fehlerfall nützlich sein können
neues Attribut : broadcastTimeDiff , default 10  -> Es gibt hier mehr als einen Thread in dem sich User darüber beklagen ihre WTs fordern viel zu oft die aktuelle Zeit beim CUL_MAX Device an. Das kann so schlimm werden das immer zuwenig Credits zur Verfügung stehen. Der Wert legt fest wie groß der Zeitunterschied in Sekunden zwischen der internen Uhr und FHEM sein muß damit ein Zeittelegramm verschickt wird. Achtung wird das Zeit Telegramm so unterdrückt blinkt einige Zeit das Radio Symbol am Gerät und im Status erscheint auch ein rf error. 

Unterstützung für mehr als ein IO Device im gleichen System :
Neues Attribut : IOgrp -> Komma getrennte Liste der vorhanden CULs. Beispiel : CUL1,nanoCUL usw.
Wenn IOgrp gesetzt ist kann an jedem MAX Device mit dem Attribut CULdev ausgewählt werden welches CUL Device dieses Gerät beim senden benutzen soll.
Eine automatische Umschaltung wie bei Homematic ist noch nicht möglich. D.h. ihr müsst jetzt noch selbst auswählen welchen Weg jedes Gerät beim senden gehen soll. 
 
Wichtig : IOgrp und CULdev sind nur für das Senden des Gerätes wichtig, der Empfang läuft immer über alle IOs (CULs) gleichzeitig !!
Es "gewinnt" immer das Telegramm das zuerst in FHEM eintrifft (das muß aber nicht das "Beste" sein !) , doppelte Nachrichten verwirft FHEM automatisch.

neues Kommando : get <name> showSendQueue
es wurde hier im Forum mehrfach schon der Wunsch laut das man sich gern anschauen möchte was denn noch so in der SendQueue festhängt, diese Befehl macht es nun möglich.
Hier mal eine Beispiel Ausgabe eines wartenden Telegramms für einen Fensterkontakt:
Zitat
        Time        | Destination | Command        | CUL
--------------------+-------------+----------------+----
2020-01-10 19:43:20 | Test_FK     | AddLinkPartner | CUL
--------------------+-------------+----------------+----


ACHTUNG : Nutzer von CUL_MAX sollten immer beide Dateien austauschen, da 14_CUL_MAX sehr stark von 10_Max abhängig ist
« Letzte Änderung: Heute um 07:56:37 von Wzut »
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher
Gefällt mir Gefällt mir x 5 Liste anzeigen