Neues Modul HMCCU für Homematic CCU

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

Vorheriges Thema - Nächstes Thema

scm35768

Hallo zap,

nach dem get Licht1 update kam eine leere Box mit einem OK,

dann list Licht1 gibt folgendes:

Internals:
   CFGFN
   DEF        BidCos-Wired.MEQ0278851
   IODev      ccu3
   NAME       Licht1
   NR         479
   STATE      0
   TYPE       HMCCUDEV
   ccuaddr    MEQ0278851
   ccudevstate Active
   ccuif      BidCos-Wired
   ccuname    12SW7001
   ccutype    HMW-IO-12-Sw7-DR
   channels   20
   statevals  devstate|on|off
   Readings:
     2017-01-28 22:51:22   1.PRESS_LONG    1
     2017-01-28 22:55:04   1.PRESS_SHORT   1
     2017-01-28 22:55:06   13.STATE        0
     2017-01-28 22:55:06   13.WORKING      0
     2017-01-28 22:54:54   14.STATE        0
     2017-01-28 22:54:54   14.WORKING      0
     2017-01-28 22:54:52   15.STATE        0
     2017-01-28 22:54:52   15.WORKING      0
     2017-01-28 22:54:52   16.STATE        0
     2017-01-28 22:54:52   16.WORKING      0
     2017-01-28 22:54:50   17.STATE        0
     2017-01-28 22:54:50   17.WORKING      0
     2017-01-28 22:54:50   18.STATE        0
     2017-01-28 22:54:50   18.WORKING      0
     2017-01-28 22:54:56   19.STATE        0
     2017-01-28 22:54:56   19.WORKING      0
     2017-01-28 22:53:47   5.PRESS_SHORT   1
     2017-01-28 22:53:49   6.PRESS_SHORT   1
     2017-01-28 22:53:51   7.PRESS_SHORT   1
     2017-01-29 21:17:53   hmstate         0
     2017-01-28 22:55:06   state           0
   Hmccu:
     Dp:
       1.press_long:
         VAL        1
       1.press_short:
         VAL        1
       13.state:
         VAL        0
       13.working:
         VAL        0
       14.state:
         VAL        0
       14.working:
         VAL        0
       15.state:
         VAL        0
       15.working:
         VAL        0
       16.state:
         VAL        0
       16.working:
         VAL        0
       17.state:
         VAL        0
       17.working:
         VAL        0
       18.state:
         VAL        0
       18.working:
         VAL        0
       19.state:
         VAL        0
       19.working:
         VAL        0
       5.press_short:
         VAL        1
       6.press_short:
         VAL        1
       7.press_short:
         VAL        1
Attributes:
   IODev      ccu3
   event-on-change-reading .*
   event-on-update-reading .*
   room       KG.Raum1
   statevals  on:true,off:false
   substitute true:on,false:off,1:on,0:off



dann get Licht1 update liefest folgendes:

DPT {i} Gateway-DP = 28 [RWE]
  DPT {s} Gateway-IPDP =  [RWE]
  DPT {s} SMS =  [W]
  DPT {s} EMail =  [W]

komisch ....

chris1284

#1231
@ ukobusch: naja, wenn readingsval den wert nicht lesen würde  sollte 99.0 auftauschen wenn du es so übernommen hast.
was sagen den die fhem logs? du weisst das die Funktion ReadingsVal eine Perl-function ist und du sie nicht einfach in dein at kopieren kannst? dein at könnte zb so aussehen:

define aussen_temperatur_zyklisch at +*00:60:00   {
my $temp = ReadinsVal("Wetter","temp_c", 99.0);
fhem("set my_ccu var Aussentemperatur $temp");
}

zap

Zitat von: scm35768 am 29 Januar 2017, 21:20:52

DPT {i} Gateway-DP = 28 [RWE]
  DPT {s} Gateway-IPDP =  [RWE]
  DPT {s} SMS =  [W]
  DPT {s} EMail =  [W]

komisch ....

Die Readings sehen eigentlich gut aus, die Deviceinfo leider weniger. Jetzt geht es ans Eingemachte: Bitte gehe mal in die CCU2 und rufe "Programme und Verknüpfungen -> Programme und Zentraleverknüpfungen" auf. Dann unten auf der Seite den Button "Skript testen" drücken. Im Fenster, das aufgeht, folgenden Code einfügen:


string chnid;
string sDPId;
object odev = dom.GetObject ("12SW7001");
if (odev) {
  foreach (chnid, odev.Channels()) {
    object ochn = dom.GetObject(chnid);
    if (ochn) {
      foreach(sDPId, ochn.DPs()) {
        object oDP = dom.GetObject(sDPId);
        if (oDP) {
          integer op = oDP.Operations();
          string flags = "";
          if (OPERATION_READ & op) { flags = flags # "R"; }
          if (OPERATION_WRITE & op) { flags = flags # "W"; }
          if (OPERATION_EVENT & op) { flags = flags # "E"; }
          WriteLine ("C;" # ochn.Address() # ";" # ochn.Name() # ";" # oDP.Name() # ";" # oDP.ValueType() # ";" # oDP.State() # ";" # flags);
        }
      }
    }
  }
}

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

scm35768

#1233
Hallo zap,

als Ausgabe kommt folgendes:

C;;Gateway;Gateway-DP;16;28;RWE
C;;Gateway;Gateway-IPDP;20;;RWE
C;;Communication;SMS;20;;W
C;;Communication;EMail;20;;W

Die Firmware ist die aktuellste: 3.06.
Das gleiche Ergebnis kommt auch beim HMW-IO-12-Sw14-DR

Beim HMW-Sen-SC-12-DR kommt folgende Ausgabe:

C;MEQ0200927:0;SEN.001:0;BidCos-Wired.MEQ0200927:0.UNREACH;2;false;RE
C;MEQ0200927:0;SEN.001:0;BidCos-Wired.MEQ0200927:0.STICKY_UNREACH;2;false;RWE
C;MEQ0200927:0;SEN.001:0;BidCos-Wired.MEQ0200927:0.CONFIG_PENDING;2;false;RE
C;MEQ0200927:1;SEN.001:1;BidCos-Wired.MEQ0200927:1.SENSOR;2;true;RE
C;MEQ0200927:1;SEN.001:1;BidCos-Wired.MEQ0200927:1.INSTALL_TEST;2;false;E
C;MEQ0200927:2;SEN.001:2;BidCos-Wired.MEQ0200927:2.SENSOR;2;true;RE
C;MEQ0200927:2;SEN.001:2;BidCos-Wired.MEQ0200927:2.INSTALL_TEST;2;false;E
C;MEQ0200927:3;SEN.001:3;BidCos-Wired.MEQ0200927:3.SENSOR;2;true;RE
C;MEQ0200927:3;SEN.001:3;BidCos-Wired.MEQ0200927:3.INSTALL_TEST;2;false;E
C;MEQ0200927:4;SEN.001:4;BidCos-Wired.MEQ0200927:4.SENSOR;2;true;RE
C;MEQ0200927:4;SEN.001:4;BidCos-Wired.MEQ0200927:4.INSTALL_TEST;2;false;E
C;MEQ0200927:5;SEN.001:5;BidCos-Wired.MEQ0200927:5.SENSOR;2;true;RE
C;MEQ0200927:5;SEN.001:5;BidCos-Wired.MEQ0200927:5.INSTALL_TEST;2;false;E
C;MEQ0200927:6;SEN.001:6;BidCos-Wired.MEQ0200927:6.SENSOR;2;true;RE
C;MEQ0200927:6;SEN.001:6;BidCos-Wired.MEQ0200927:6.INSTALL_TEST;2;false;E
C;MEQ0200927:7;SEN.001:7;BidCos-Wired.MEQ0200927:7.SENSOR;2;true;RE
C;MEQ0200927:7;SEN.001:7;BidCos-Wired.MEQ0200927:7.INSTALL_TEST;2;false;E
C;MEQ0200927:8;SEN.001:8;BidCos-Wired.MEQ0200927:8.SENSOR;2;true;RE
C;MEQ0200927:8;SEN.001:8;BidCos-Wired.MEQ0200927:8.INSTALL_TEST;2;false;E
C;MEQ0200927:9;SEN.001:9;BidCos-Wired.MEQ0200927:9.SENSOR;2;true;RE
C;MEQ0200927:9;SEN.001:9;BidCos-Wired.MEQ0200927:9.INSTALL_TEST;2;false;E
C;MEQ0200927:10;SEN.001:10;BidCos-Wired.MEQ0200927:10.SENSOR;2;true;RE
C;MEQ0200927:10;SEN.001:10;BidCos-Wired.MEQ0200927:10.INSTALL_TEST;2;false;E
C;MEQ0200927:11;SEN.001:11;BidCos-Wired.MEQ0200927:11.SENSOR;2;true;RE
C;MEQ0200927:11;SEN.001:11;BidCos-Wired.MEQ0200927:11.INSTALL_TEST;2;false;E
C;MEQ0200927:12;SEN.001:12;BidCos-Wired.MEQ0200927:12.SENSOR;2;true;RE
C;MEQ0200927:12;SEN.001:12;BidCos-Wired.MEQ0200927:12.INSTALL_TEST;2;false;E




zap

#1234
Ah ja.  Ich habe eine Vermutung: Deine Kanalnamen enthalten einen Doppelpunkt (z.B. SEN.001:1). Das könnte die Ursache sein, da der Punkt in HMCCU ggf. als Trenner zwischen Kanal und Datenpunkt verwendet wird (muss ich aber nochmal verifizieren).

Um das zu bestätigen, müsstest Du die Kanäle in der CCU mal umbenennen (sofern das nicht zuviel Aufwand ist).
Danach wäre in HMCCU ein "get xy devicelist" erforderlich und eine Neudefinition des Geräts mit define und HMCCUDEV.

Wenn dann ein "get deviceinfo" korrekte Werte liefert, war der Punkt im Namen der Auslöser.

P.S. An zentraler Stelle in HMCCU passiert das, wenn ein Objekt im Format Kanalname.Datenpunkt angegeben wird:


elsif ($object =~ /^(.+?)\.(.+)$/) {
#
# Name.Datapoint
#
($n, $d) = ($1, $2);
}


Soll heißen, der erste '.' trennt, und das ist in Deinem Fall leider falsch
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

ukobusch

@chris1284,

danke für die Unterstützung. Das war mir "natürlich" ;) nicht klar. Ich werde mal mehr lesen, ausprobieren, und mich dann ggf. in einem "Newbie-Threat" wieder melden, da mein Problem nichts mit HMCCU zu tun hat.

Gruß Ulli
Gruß aus Wilhelmshaven
(Raspberry Pi, FHEM, CCU2, diverse Sensoren/Aktoren)

scm35768

#1236
Hallo zap,

ich habe nun alle Devices umbenannt und alle Punkte entfernt. Dann habe ich die Devices gelöscht und neu angelegt. Leider ändert es nichts an der Ausgabe:

Die Ausgabe des Scripts ist immer noch folgende:

C;;Gateway;Gateway-DP;16;28;RWE
C;;Gateway;Gateway-IPDP;20;;RWE
C;;Communication;SMS;20;;W
C;;Communication;EMail;20;;W

Der Sensor schaut jetzt so aus:

C;MEQ0200927:0;SENSOR001:0;BidCos-Wired.MEQ0200927:0.UNREACH;2;false;RE
C;MEQ0200927:0;SENSOR001:0;BidCos-Wired.MEQ0200927:0.STICKY_UNREACH;2;false;RWE
C;MEQ0200927:0;SENSOR001:0;BidCos-Wired.MEQ0200927:0.CONFIG_PENDING;2;false;RE
C;MEQ0200927:1;SENSOR001C1;BidCos-Wired.MEQ0200927:1.SENSOR;2;true;RE
C;MEQ0200927:1;SENSOR001C1;BidCos-Wired.MEQ0200927:1.INSTALL_TEST;2;false;E
C;MEQ0200927:2;SENSOR001C2;BidCos-Wired.MEQ0200927:2.SENSOR;2;true;RE
C;MEQ0200927:2;SENSOR001C2;BidCos-Wired.MEQ0200927:2.INSTALL_TEST;2;false;E
C;MEQ0200927:3;SENSOR001C3;BidCos-Wired.MEQ0200927:3.SENSOR;2;true;RE
C;MEQ0200927:3;SENSOR001C3;BidCos-Wired.MEQ0200927:3.INSTALL_TEST;2;false;E
C;MEQ0200927:4;SENSOR001C4;BidCos-Wired.MEQ0200927:4.SENSOR;2;true;RE
C;MEQ0200927:4;SENSOR001C4;BidCos-Wired.MEQ0200927:4.INSTALL_TEST;2;false;E
C;MEQ0200927:5;SENSOR001C5;BidCos-Wired.MEQ0200927:5.SENSOR;2;true;RE
C;MEQ0200927:5;SENSOR001C5;BidCos-Wired.MEQ0200927:5.INSTALL_TEST;2;false;E
C;MEQ0200927:6;SENSOR001C6;BidCos-Wired.MEQ0200927:6.SENSOR;2;true;RE
C;MEQ0200927:6;SENSOR001C6;BidCos-Wired.MEQ0200927:6.INSTALL_TEST;2;false;E
C;MEQ0200927:7;SENSOR001C7;BidCos-Wired.MEQ0200927:7.SENSOR;2;true;RE
C;MEQ0200927:7;SENSOR001C7;BidCos-Wired.MEQ0200927:7.INSTALL_TEST;2;false;E
C;MEQ0200927:8;SENSOR001C8;BidCos-Wired.MEQ0200927:8.SENSOR;2;true;RE
C;MEQ0200927:8;SENSOR001C8;BidCos-Wired.MEQ0200927:8.INSTALL_TEST;2;false;E
C;MEQ0200927:9;SENSOR001C9;BidCos-Wired.MEQ0200927:9.SENSOR;2;true;RE
C;MEQ0200927:9;SENSOR001C9;BidCos-Wired.MEQ0200927:9.INSTALL_TEST;2;false;E
C;MEQ0200927:10;SENSOR001C10;BidCos-Wired.MEQ0200927:10.SENSOR;2;true;RE
C;MEQ0200927:10;SENSOR001C10;BidCos-Wired.MEQ0200927:10.INSTALL_TEST;2;false;E
C;MEQ0200927:11;SENSOR001C11;BidCos-Wired.MEQ0200927:11.SENSOR;2;true;RE
C;MEQ0200927:11;SENSOR001C11;BidCos-Wired.MEQ0200927:11.INSTALL_TEST;2;false;E
C;MEQ0200927:12;SENSOR001C12;BidCos-Wired.MEQ0200927:12.SENSOR;2;true;RE
C;MEQ0200927:12;SENSOR001C12;BidCos-Wired.MEQ0200927:12.INSTALL_TEST;2;false;E

Keine Ahnung, was da falsch läuft

--------------
Kommando zurück:

Also,

ich hab gerade die beiden Devices nochmal gelöscht und einen reset gemacht, jetzt funktionieren sie.

Vielen Dank für die Hilfe, es muss wohl wirklich etwas mit den Namen zu tun gehabt haben.

get Licht1 device info liefert jetzt alle Daten:

CHN MEQ0278851:0 HMW-IO-12-Sw7-DR MEQ0278851:0
  DPT {b} BidCos-Wired.MEQ0278851:0.UNREACH = false [RE]
  DPT {b} BidCos-Wired.MEQ0278851:0.STICKY_UNREACH = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:0.CONFIG_PENDING = false [RE]
CHN MEQ0278851:1 HMW-IO-12-Sw7-DR MEQ0278851:1
  DPT {b} BidCos-Wired.MEQ0278851:1.PRESS_SHORT = false [WE]
  DPT {b} BidCos-Wired.MEQ0278851:1.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:1.INSTALL_TEST =  [E]
CHN MEQ0278851:2 HMW-IO-12-Sw7-DR MEQ0278851:2
  DPT {b} BidCos-Wired.MEQ0278851:2.PRESS_SHORT = false [WE]
  DPT {b} BidCos-Wired.MEQ0278851:2.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:2.INSTALL_TEST =  [E]
CHN MEQ0278851:3 HMW-IO-12-Sw7-DR MEQ0278851:3
  DPT {b} BidCos-Wired.MEQ0278851:3.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:3.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:3.INSTALL_TEST =  [E]
CHN MEQ0278851:4 HMW-IO-12-Sw7-DR MEQ0278851:4
  DPT {b} BidCos-Wired.MEQ0278851:4.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:4.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:4.INSTALL_TEST =  [E]
CHN MEQ0278851:5 HMW-IO-12-Sw7-DR MEQ0278851:5
  DPT {b} BidCos-Wired.MEQ0278851:5.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:5.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:5.INSTALL_TEST =  [E]
CHN MEQ0278851:6 HMW-IO-12-Sw7-DR MEQ0278851:6
  DPT {b} BidCos-Wired.MEQ0278851:6.PRESS_SHORT = false [WE]
  DPT {b} BidCos-Wired.MEQ0278851:6.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:6.INSTALL_TEST =  [E]
CHN MEQ0278851:7 HMW-IO-12-Sw7-DR MEQ0278851:7
  DPT {b} BidCos-Wired.MEQ0278851:7.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:7.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:7.INSTALL_TEST =  [E]
CHN MEQ0278851:8 HMW-IO-12-Sw7-DR MEQ0278851:8
  DPT {b} BidCos-Wired.MEQ0278851:8.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:8.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:8.INSTALL_TEST =  [E]
CHN MEQ0278851:9 HMW-IO-12-Sw7-DR MEQ0278851:9
  DPT {b} BidCos-Wired.MEQ0278851:9.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:9.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:9.INSTALL_TEST =  [E]
CHN MEQ0278851:10 HMW-IO-12-Sw7-DR MEQ0278851:10
  DPT {b} BidCos-Wired.MEQ0278851:10.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:10.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:10.INSTALL_TEST =  [E]
CHN MEQ0278851:11 HMW-IO-12-Sw7-DR MEQ0278851:11
  DPT {b} BidCos-Wired.MEQ0278851:11.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:11.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:11.INSTALL_TEST =  [E]
CHN MEQ0278851:12 HMW-IO-12-Sw7-DR MEQ0278851:12
  DPT {b} BidCos-Wired.MEQ0278851:12.PRESS_SHORT =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:12.PRESS_LONG =  [WE]
  DPT {b} BidCos-Wired.MEQ0278851:12.INSTALL_TEST =  [E]
CHN MEQ0278851:13 HMW-IO-12-Sw7-DR MEQ0278851:13
  DPT {b} BidCos-Wired.MEQ0278851:13.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:13.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:13.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:13.WORKING = false [RE]
CHN MEQ0278851:14 HMW-IO-12-Sw7-DR MEQ0278851:14
  DPT {b} BidCos-Wired.MEQ0278851:14.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:14.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:14.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:14.WORKING = false [RE]
CHN MEQ0278851:15 HMW-IO-12-Sw7-DR MEQ0278851:15
  DPT {b} BidCos-Wired.MEQ0278851:15.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:15.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:15.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:15.WORKING = false [RE]
CHN MEQ0278851:16 HMW-IO-12-Sw7-DR MEQ0278851:16
  DPT {b} BidCos-Wired.MEQ0278851:16.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:16.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:16.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:16.WORKING = false [RE]
CHN MEQ0278851:17 HMW-IO-12-Sw7-DR MEQ0278851:17
  DPT {b} BidCos-Wired.MEQ0278851:17.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:17.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:17.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:17.WORKING = false [RE]
CHN MEQ0278851:18 HMW-IO-12-Sw7-DR MEQ0278851:18
  DPT {b} BidCos-Wired.MEQ0278851:18.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:18.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:18.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:18.WORKING = false [RE]
CHN MEQ0278851:19 HMW-IO-12-Sw7-DR MEQ0278851:19
  DPT {b} BidCos-Wired.MEQ0278851:19.STATE = true [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:19.INHIBIT = false [RWE]
  DPT {b} BidCos-Wired.MEQ0278851:19.INSTALL_TEST =  [W]
  DPT {b} BidCos-Wired.MEQ0278851:19.WORKING = false [RE]

zap

#1237
Echt schwer aus der Ferne zu diagnostizieren, da ich keine Wired Komponenten habe. Der Punkt im Namen ist zwar ein Fehler in HMCCU, allerdings müsste das Homematic Script trotzdem funktionieren.

Eine Idee habe ich noch: gibt es den Namen des Devices doppelt, oder den Namen eines der Kanäle? Mit doppelt meine ich auch Räume, Gruppen, Gewerke usw. Homematic unterscheidet bei Objekten nicht.

Wenn Du Dir nicht sicher bist, benenne eines der nicht funktionierenden Geräte um in irgendwas, was es sonst garantiert nicht gibt. Genauso die Kanäle. Dann nochmal das Homematic Script mit dem neuen Namen ausführen.

Das würde dann auch erklären, warum die Funktion Address() im Script keinen Wert zurückgibt (zwei ;; in der Ausgabe).

Etwas vereinfacht:


object odev = dom.GetObject ("12SW7001");
if (odev) {
   if (odev.IsTypeOf (OT_DEVICE)) {
      WriteLine ("Device");
   }
   else {
      WriteLine ("No device");
   }
}
else {
   WriteLine ("No object");
}
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

wagenkna

Hallo Zap,

ich habe ein Problem beim auswählen/zuweisen der Device für ein Logfile. Es werden im "addRegexpPart" Auswahlfeld leider mehrere fast gleiche Device angezeigt, die aber in der Devicelist nicht auftauchen. Bei einigen wurde der Name einfach nochmal hinten angehängt, bei anderen kam noch einen Zahl hinzu. Das macht das ganze nicht übersichtlicher.
Hast du eine Idee/ Möglichkeit wie ich die zu viel angelegten Device wieder löschen kann,, ohne das ganze Modul neu zu installieren?

Merci & danke vielmals

Grüße

awa
Homematic mit CCU2, Fensterkontakt, Thermostaten, Steckdosen, Regen.-Bewegung.-Wassermelder (76) Devices)
Raspberry2 und 3 Mit KNX, OWL, Fritzbox, Unifi, Luftmessungmodul

zap

Zitat von: wagenkna am 31 Januar 2017, 14:31:28
Hallo Zap,

ich habe ein Problem beim auswählen/zuweisen der Device für ein Logfile. Es werden im "addRegexpPart" Auswahlfeld leider mehrere fast gleiche Device angezeigt, die aber in der Devicelist nicht auftauchen. Bei einigen wurde der Name einfach nochmal hinten angehängt, bei anderen kam noch einen Zahl hinzu. Das macht das ganze nicht übersichtlicher.
Hast du eine Idee/ Möglichkeit wie ich die zu viel angelegten Device wieder löschen kann,, ohne das ganze Modul neu zu installieren?

Wenn Du viele Devices auf einmal Löschen möchtest, kannst Du bei "delete" entsprechende Filter angeben.

Ich nehme an, Du hast die Devices mit der Autocreate Funktion von "get devicelist" angelegt. Wenn Du dabei keinen Filter angibst, werden für die Homematic Geräte HMCCUDEV Devices angelegt. Außerdem (und das dürfte das Problem sein) für alle Kanäle HMCCUCHN Devices.

Wenn Du die Kanäle also nicht benötigst, kannst Du die z.B. mit

delete TYPE=HMCCUCHN

löschen. Vorher kannst Du nochmal mit "list TYPE=HMCCUCHN" prüfen, welche Du löschen würdest.

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

wolfgang99

Hallo,
ich schalte in perl mehrere Thermostate auf Manuell und Automatik.
Beipiel:
fhem "set og_sz_thermostat datapoint 2.AUTO_MODE true";;
fhem "set og_bad_thermostat datapoint 2.AUTO_MODE true";;
fhem "set dg_st_thermostat datapoint 2.AUTO_MODE true";;
fhem "set eg_wo_thermostat datapoint 2.AUTO_MODE true";;

Nach 2 befehlen macht er die restlichen nicht mehr...
Muss man warten, oder auf "busy" abfragen oder jeweils kontrollieren?
Wie gehts am besten und warum gehts nicht so schön direkt?
Danke!

zap

Hast du das Attribut ccuverify in den Devices gesetzt? Das könnte es evtl ausbremsen. Es wird zwar bei jedem Befehl ein Request an die CCU abgesetzt, aber das sollte auch mehrmals nacheinander kein Problem sein.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

zap

#1242
Neue Version 3.9.001 mit kleineren Änderungen eingecheckt. Vermutlich morgen per update verfügbar.

Änderungen:


  • Fehler behoben, der die Zeitangabe bei der Option 'on-till' verhindert hat.
  • Wenn in den Attributen 'hmstatevals' oder 'substitute' Variablen angegeben werden, wird nun beim Variablenwert das Attribut 'stripnumber' angewendet.
  • Wenn ein Datenpunkt im Format Kanalname.Datenpunkt angegeben wird, kann der Kanalname nun Punkte enthalten.
  • Das Attribut 'rpcinterfaces' ersetzt das Attribut 'rpcport'. Die CCU Interfaces können nun mit ihrem Namen angegeben werden. rpcport wird aber weiterhin unterstützt.
  • Durch die Umstellung auf ParseParams konnte man beim ePaper Display den Datenpunkt SUBMIT nicht mehr setzen. Dieser Fehler wurde behoben.
  • Im Modul HMCCUCHN wurden die Befehle get configlist, get configdesc, get config und set config um die Option 'device' erweitert. Wenn diese Option angegeben wird, beziehen sich die o.g. Befehle auf das Device und nicht auf den Kanal

Ergänzung: Leider gibt es einen Bug in der Berechnung von hmstate. Die Regeln in hmstatevals werden nicht von links nach rechts abgearbeitet. Dieser Fehler existiert schon in der Version 3.9.
Ausserdem funktioniert substitute bei numerischen Ersetzungen (zB #1-5:Text) nicht richtig.
Werde das asap beheben.

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

fini

moin,

hatte
attr w_Wandthermostat userReadings TEMPERATURE { int ( 10 * ReadingsVal("w_Wandthermostat","1.TEMPERATURE",0) + 0.5 ) / 10 }
angelegt. es wurde bis heute auch der Wert unter TEMPERATURE aktualisiert.
Jetzt nicht mehr.
Ich habe
attr w_Wandthermostat userReadings TEMPERATURE { int ( 10 * ReadingsVal("w_Wandthermostat","1.TEMPERATURE",0) + 0.5 ) / 10 }
gelöscht. Der Befehl ist aus Attributes raus, aber TEMPERATURE steht immer noch unter Readings.

zap

Das Löschen des Attributs userreading löscht nicht die Readings. Dazu musst du den FHEM Befehl deletereading oder in HMCCUDEV bzw. hMCCUCHN den Befehl set clear verwenden.

Wenn Du Werte runden möchtest, nimm stripnumber. Allerdings werden dann alle Werte gerundet.

Beispiel 1 Stelle nach dem Komma: stripnumber -1
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)