Neues Modul HMCCU für Homematic CCU

Begonnen von zap, 19 August 2015, 19:45:30

Vorheriges Thema - Nächstes Thema

ToM_ToM

Zitatwas ist mit "get deviceinfo"? Geht das?

get deviceinfo liefert auch einen Fehler:
HMCCUDEV: HM_DI_Thermostat Execution of CCU script or command failed

Komischerweise werden aber die Readings wie aktuelle Temperatur aktualisiert

Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Firewall Einstellungen der CCU nach Update auf 2.27 angepasst?
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

ToM_ToM

Ich verwende aktuell noch V2.25.15
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Ok, setzte für das Thermostat Device das Attribut ccuflags auf trace, führe get update nochmal aus und poste dann die Logfile Einträge
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

aski71

Hi,

ich bekomme seit dem heutigen Update das hier:

Error evaluating Wandthermostat userReading DEWPOINT: Undefined subroutine &main::HMCCU_Dewpoint called at (eval 704) line 1.

Gibt es die Routine nicht mehr? Hab ich was verpasst?
Mein userReading lautet so:

userReadings
DEWPOINT {HMCCU_Dewpoint($name,"1.TEMPERATURE", "1.HUMIDITY","n/a")}

ToM_ToM

ZitatOk, setzte für das Thermostat Device das Attribut ccuflags auf trace, führe get update nochmal aus und poste dann die Logfile Einträge

Hallo zap, anbei der Log-Eintrag.

2017.04.02 20:43:35 2: HMCCU: Addr=LEQ1076581 Name=Diele
2017.04.02 20:43:35 2: HMCCU: Script response =
0

2017.04.02 20:43:35 2: HMCCU: Script =

string chnid;
string sDPId;
string sDevName;
string sDevList = "Diele";
integer c = 0;
foreach (sDevName, sDevList.Split(",")) {
  object odev = dom.GetObject (sDevName);
  if (odev) {
    foreach (chnid, odev.Channels()) {
   object ochn = dom.GetObject(chnid);
      if (ochn) {
  foreach(sDPId, ochn.DPs()) {
    object oDP = dom.GetObject(sDPId);
          if (oDP) {
            if (OPERATION_READ & oDP.Operations()) {
              WriteLine (ochn.Name() # "=" # oDP.Name() # "=" # oDP.Value());
              c = c+1;
            }
          }
        }
      }
    }
  }
}
WriteLine (c);

2017.04.02 20:43:35 1: HMCCUDEV: HM_DI_Thermostat No readable datapoints found
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Ich vermute mal, der Name Diele kommt in der CCU mehrfach vor, zB als Raum.

Die Script Funktion GetObject macht leider keinen Unterschied. Für die ist alles ein Objekt, egal ob Gerät oder Raum.

Wenn dem so ist, dem Gerät einen eindeutigen Namen geben, get Devicelist ausführen und Device am besten neu definieren.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

ToM_ToM

ZitatIch vermute mal, der Name Diele kommt in der CCU mehrfach vor, zB als Raum.
Hallo Zap,

Laut CCU lautet der Name HM-CC-RT-DN LEQ1076581:4.
In FHEM steht aber bei den Internals des Thermostats ccuname Diele.

Dies steht so aber bei dem Thermostat in der Küche auch. Dort steht dann eben ccuname Kueche. Und dieser Name ist auch als Raum in der CCU vergeben.

Irgendwie verwirrend.

Habe auch keinen Punkt in der CCU-Weboberfläche finden können wo ich das Thermostat umbenennen könnte.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

aski71

Zitat von: aski71 am 02 April 2017, 20:40:14
Hi,

ich bekomme seit dem heutigen Update das hier:

Error evaluating Wandthermostat userReading DEWPOINT: Undefined subroutine &main::HMCCU_Dewpoint called at (eval 704) line 1.

Gibt es die Routine nicht mehr? Hab ich was verpasst?
Mein userReading lautet so:

userReadings
DEWPOINT {HMCCU_Dewpoint($name,"1.TEMPERATURE", "1.HUMIDITY","n/a")}


Hallo Zap,

nachdem ich nun heute erneut upgedated habe, zusätzlich zu obigem Problem noch folgendes:

Das erste Gerät, das mit HMCCUDEV konfiguriert ist, liefert folgenden Fehler:
define Vitrine HMCCUDEV W-Vitrine: Invalid or unknown CCU device name or address

Alle weiteren Geräte, die in der fhem.cfg danach stehen, werden einwandfrei erkannt.
Das Gerät W-Vitrine hat vor dem Update auch funktioniert.

Weitere Diagnose: Ich habe statt "W-Vitrine" die Geräte-Seriennummer für's define verwendet. Dann war die Vitrine wieder da, aber das nächste HMCCUDEV Gerät in der fhem.cfg nicht mehr.  :o
Jetzt habe ich alle defines auf die Seriennummer abgeändert, statt den symbolischen Namen: Kein Problem mehr.

Offensichtlich hat sich da der Fehlerteufel eingeschlichen.

Kannst Du noch was zu ersterem Problem mit dem DEWPOINT sagen?

Danke und Gruß
Alex

zap

Zitat von: aski71 am 02 April 2017, 20:40:14
Gibt es die Routine nicht mehr? Hab ich was verpasst?

Ich nehme an, das war das erste Update seit längerem. HMCCU_Dewpoint() existiert nicht mehr. Bitte schau Dir mal die Doku HMCCUCHN und dem Attribut ccucalculate an. Taupunkt und absolute Feuchtigkeit können jetzt direkt (ohne Userreading) berechnet werden.

Zum anderen Problem: irgendwie scheint sich da ein Fehler in die Verwaltung der Devicenames eingeschlichen zu haben. Muss ich mir anschauen.

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

aski71

Zitat von: zap am 03 April 2017, 12:04:37
Ich nehme an, das war das erste Update seit längerem. HMCCU_Dewpoint() existiert nicht mehr. Bitte schau Dir mal die Doku HMCCUCHN und dem Attribut ccucalculate an. Taupunkt und absolute Feuchtigkeit können jetzt direkt (ohne Userreading) berechnet werden.

Zum anderen Problem: irgendwie scheint sich da ein Fehler in die Verwaltung der Devicenames eingeschlichen zu haben. Muss ich mir anschauen.

Du nimmst richtig an.  :D
Danke, habe jetzt nachgesehen und wiefolgt eingerichtet:
attr Wandthermostat ccucalculate dewpoint:DEWPOINT,1.TEMPERATURE:1.HUMIDITY
Das userReading habe ich rausgenommen.

Leider ohne Effekt.  :( Das Reading DEWPOINT bleibt auf der Fehlermeldung stehen.
Habe bereits rpcserver mal gestoppt und gestartet und auch fhem gestoppt und gestartet.

Was mach ich falsch?

aski71

Zitat von: aski71 am 03 April 2017, 12:47:21
Du nimmst richtig an.  :D
Danke, habe jetzt nachgesehen und wiefolgt eingerichtet:
attr Wandthermostat ccucalculate dewpoint:DEWPOINT,1.TEMPERATURE:1.HUMIDITY
Das userReading habe ich rausgenommen.

Leider ohne Effekt.  :( Das Reading DEWPOINT bleibt auf der Fehlermeldung stehen.
Habe bereits rpcserver mal gestoppt und gestartet und auch fhem gestoppt und gestartet.

Was mach ich falsch?

ARGH! Selber gesehen.  :o
Manchmal sitzt man echt auf den Augen.

Muss natürlich so heißen:
attr Wandthermostat ccucalculate dewpoint:DEWPOINT[b]:[/b]1.TEMPERATURE[b],[/b]1.HUMIDITY

Jetzt geht's wieder.

zap

Zitat von: ToM_ToM am 03 April 2017, 08:43:49
Hallo Zap,

Laut CCU lautet der Name HM-CC-RT-DN LEQ1076581:4.
In FHEM steht aber bei den Internals des Thermostats ccuname Diele.

Dies steht so aber bei dem Thermostat in der Küche auch. Dort steht dann eben ccuname Kueche. Und dieser Name ist auch als Raum in der CCU vergeben.

Irgendwie verwirrend.

Habe auch keinen Punkt in der CCU-Weboberfläche finden können wo ich das Thermostat umbenennen könnte.

VG, Thomas

Also irgendwas ist an Deiner Konfiguration verbogen. Bei mir stehen in allen Devices im Internal ccuname die korrekten Namen aus der CCU.

Hast Du nach dem letzten FHEM/HMCCU Update FHEM neu gestartet? Das wäre wichtig, da sich in einer der letzten HMCCU Versionen der Aufbau des internen Hashes geändert hat, in dem die Namen und Adressen der CCU-Geräte gespeichert werden.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

ToM_ToM

ZitatHast Du nach dem letzten FHEM/HMCCU Update FHEM neu gestartet? Das wäre wichtig, da sich in einer der letzten HMCCU Versionen der Aufbau des internen Hashes geändert hat, in dem die Namen und Adressen der CCU-Geräte gespeichert werden.

Hi zap,
ja ich mache nach jedem Update einen Neustart von FHEM. Vor dem Neustart stoppe ich auch immer den RPCServer.

Anbei nochmal meine CCU - Definition:
define CCU2 HMCCU 192.168.178.42
attr CCU2 ccudef-readingfilter .*
attr CCU2 ccureadings 0
attr CCU2 devStateIcon (OK|Initialized):10px-kreis-gruen Error:10px-kreis-rot
attr CCU2 event-on-change-reading .*
attr CCU2 icon rc_HOME
attr CCU2 rpcinterfaces BidCos-RF,HmIP-RF
attr CCU2 rpcinterval 1
attr CCU2 rpcport 2001,2010
attr CCU2 rpcserver on
attr CCU2 stateFormat { $defs{$name}{RPCState} }
attr CCU2 stripchar :
attr CCU2 stripnumber 1
attr CCU2 verbose 2
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Das ist nicht das Problem. In ccuname steht der falsche Name drin ("Diele") und auch im Dump von dem get update script taucht "Diele" auf. Das heißt, dass aus irgendwelchen Gründen HMCCU die Adresse nicht zum korrekten Namen auflöst.

Da geht vermutlich schon get devicelist schief.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)