HMCCU Beispiel Geräte-Definitionen

Begonnen von zap, 25 März 2016, 16:08:13

Vorheriges Thema - Nächstes Thema

Obba

Hallo Zusammen,

ich habe ein kleines Problem mit dem "mapdatapoints" Befehl
Ich wollte zwei Heizkörperthermostate in eine Gruppe legen, was mit:
define HM_Wohnzimmer HMCCUDEV "HM.WZ.HZ INT0000001" group=WZ.Blumenfenster,WZ.Balkon

auch gut geklappt hat. nun wollte ich wie nach dem Beispiel auf der ersten Seite mit:
attr HM_Wohnzimmer mapdatapoints WZ.Balkon:2.SET_TEMPERATURE="HM.WZ.HZ INT0000001":1.SET_TEMPERATURE,WZ.Balkon:2.CONTROL_MODE="HM.WZ.HZ INT0000001":1.CONTROL_MODE

die Werte mappen, aber da bringt er mir leider einen Fehler:
HM_Wohnzimmer: unknown attribute mapdatapoints. Type 'attr HM_Wohnzimmer ?' for a detailed list.

attr HM_Wohnzimmer ?
bringt dann
HM_Wohnzimmer: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userReadings verbose IODev ccuackstate ccucalculate ccuflags ccureadingfilter ccureadingformat ccureadingname ccureadings ccuget ccuscaleval ccuverify disable hmstatevals statevals substexcl substitute statechannel statedatapoint controldatapoint stripnumber peer event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat timestamp-on-change-reading cmdIcon devStateIcon devStateStyle fp_Wohnung icon sortby webCmd webCmdLabel widgetOverride userattr

ein Update und shutdown restart habe ich schon durchgeführt.
Kann mir jemand sagen was ich hier falsch mache oder ob ich vielleicht speziell das HMCCUDEV Modul updaten muss aber ich nicht weiß wie?
Vielen Dank im Voraus

Gruß Andreas

zap

Das Attribut mapdatapoints gibt es schon lange nicht mehr. Ist auch nicht mehr notwendig, da HMCCU nun virtuelle CCU Gerätegruppen direkt unterstützt. Ich bin mir allerdings nicht sicher, ob man solche Gruppen in der CCU auch nur mit 2 Thermostaten anlegen kann. Ich glaube, es muss zwingend ein Wandthermostat dabei sein. Aber Ausprobieren kostet nichts.

Du legst also zunächst in der CCU eine Gruppe an, der Du Deine Thermostate hinzufügst. Angenommen, das Gruppendevice in der CCU hat den Namen G-Heizung. Zu dieser Gruppe gehört ein Wandthermostat mit dem Namen WT-Wohnzimmer und ein Heizkörperthermostat mit dem Namen HK-Wohnzimmer. Dann machst Du erst mal ein "get devicelist" für das HMCCU Device. Dann definierst Du folgendes Device:

define G_Heizung HMCCUDEV G-Heizung group=WT-Wohnzimmer,HK-Wohnzimmer

Danach musst Du noch rpcInterfaces um die Schnittstelle für virtuelle Devices ergänzen und den RPC-Server neu starten. Das wars. Allerdings machen folgende Attribute das Ganze erst richtig komfortabel:


ccucalculate dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY
ccureadingfilter 1.(^ACTUAL|CONTROL|^SET_TEMP);(^WINDOW_OPEN|^VALVE)
ccureadingformat datapoint
ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;1.SET_TEMPERATURE$:desired-temp;1.ACTUAL_HUMIDITY$:humidity
cmdIcon    Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
controldatapoint 1.SET_TEMPERATURE
event-on-change-reading .*
eventMap   /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
stateFormat T: temperature° H: humidity% D: desired-temp° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE
statedatapoint 1.SET_TEMPERATURE
stripnumber 1
substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed
webCmd     control:Auto:Manu:Boost:on:off
widgetOverride control:slider,4.5,0.5,30.5,1


Übrigens: Man kann auch mehr Geräte in einer Gruppe zusammenfassen. Die CCU kümmert sich um alle Verknüpfungen. Meine größte Gruppe besteht aus 1xWandthermostat,2xHeizkörperthermostat und 3xFensterkontakt

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

LaSto

Zitat von: chris1284 am 22 April 2017, 16:06:09
ich kann dir meine geben:
template

device:HM-LC-Sw1-Ba-PCB
_description=1 Kanal Funk Schaltaktor für Batteriebetrieb
statedatapoint=1.STATE
statevals=on:true,off:false
substitute=STATE!1:on,0:off,false:off,true:on
verbose=1


ccudef-readingname kümmrt sich um die readingsbennung und da habe ich noch beide readings (0.LOWBAT und battery zb)
und ein list:ich habe ihn nur als hmccudev eingebunden, channels macht ja nur beim 4fach bausatz sinn

Hallo,

vielen Dank für den Hinweis!
Hab das Template auch so bei mir eingebaut und es funktioniert astrein.

Nun Aber zwei  kurze Fragen:
1. wird die Datei beim nächsten Update überschrieben?
2. Kann man das Device nicht einchecken, das es generell in der HMCCUconf.pm drin ist?

Vielen Dank und schönen Gruß

Lars
FS20, 3x S300TH, 1x CUL868, FritzBox 7390

zap

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

veLenoSo

Ich habe nun alles mögliche probiert, um beim MP3 Funk-Gong eine betimmte MP3 auf der Speicherkarte abzuspielen.

define EG_Eingang_Klingel HMCCUDEV LEQ***
attr EG_Eingang_Klingel IODev d_ccu
attr EG_Eingang_Klingel ccureadingfilter STATE
attr EG_Eingang_Klingel eventMap /datapoint 1.STATE 1:led-on/datapoint 1.STATE 0:led-off/datapoint 2.STATE 1:sound-on/datapoint 2.STATE 0:sound-off
attr EG_Eingang_Klingel statedatapoint 1.STATE
attr EG_Eingang_Klingel statevals on:true,off:false
attr EG_Eingang_Klingel substitute STATE!(0|false):ledOff,(1|true):ledOn;;2.STATE!(0|false):soundOff,(1|true):soundOn


deviceinfo
CHN LEQ***:0 HM-OU-CFM-Pl LEQ***:0
  DPT {b} BidCos-RF.LEQ***:0.UNREACH = false [RE]
  DPT {b} BidCos-RF.LEQ***:0.STICKY_UNREACH = true [RWE]
  DPT {b} BidCos-RF.LEQ***:0.CONFIG_PENDING = false [RE]
  DPT {b} BidCos-RF.LEQ***:0.LOWBAT = false [RE]
  DPT {b} BidCos-RF.LEQ***:0.DUTYCYCLE = false [RE]
  DPT {n} BidCos-RF.LEQ***:0.RSSI_DEVICE = 183 [RE]
  DPT {n} BidCos-RF.LEQ***:0.RSSI_PEER = 221 [RE]
  DPT {n} BidCos-RF.LEQ***:0.AES_KEY = 0 [R]
  DPT {b} BidCos-RF.LEQ***:0.DEVICE_IN_BOOTLOADER = false [RE]
  DPT {b} BidCos-RF.LEQ***:0.UPDATE_PENDING = false [RE]
CHN LEQ***:1 HM-OU-CFM-Pl EG Flur KlingelSignal
  DPT {b} BidCos-RF.LEQ***:1.STATE = false [RWE]
  DPT {f} BidCos-RF.LEQ***:1.ON_TIME =  [W]
  DPT {b} BidCos-RF.LEQ***:1.INHIBIT = false [RWE]
  DPT {s} BidCos-RF.LEQ***:1.SUBMIT =  [W]
  DPT {b} BidCos-RF.LEQ***:1.INSTALL_TEST =  [W]
  DPT {b} BidCos-RF.LEQ***:1.WORKING = false [RE]
CHN LEQ***:2 HM-OU-CFM-Pl EG Flur KlingelSound
  DPT {b} BidCos-RF.LEQ***:2.STATE = false [RWE]
  DPT {f} BidCos-RF.LEQ***:2.ON_TIME =  [W]
  DPT {b} BidCos-RF.LEQ***:2.INHIBIT = false [RWE]
  DPT {s} BidCos-RF.LEQ***:2.SUBMIT =  [W]
  DPT {b} BidCos-RF.LEQ***:2.INSTALL_TEST =  [W]
  DPT {b} BidCos-RF.LEQ***:2.WORKING = false [RE]


Ich habe es mit set Klingel datapoint 2.SUBMIT zahl,zahl,zahl,zahl versucht, aber egal wie ich es abwandel, es funktioniert nicht.

Hat es schon mal jemand geschafft?

zap

Was ist mit 1.SUBMIT statt 2.SUBMIT?

Es kann auch helfen, den Wert in doppelte Hochkomma einzuschließen: ,,zahl,zahl,zahl,zahl"
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

veLenoSo

Leider alles ohne Erfolg :(
Wie kann man das noch rausfinden?

mw77

Bei mir hat das mal so funktioniert
set mp3_gong datapoint 2.SUBMIT "1,1,108000,3"
Wobei die erste 1 glaube ich die Ausgabeart ist (LED oder Mp3)
Die zweite 1 die Anzahl der Wiederholungen
Die 108000 weiß ich nicht mehr wofür die war, finde den link auch gerade nicht
und die letzte Zahl ist dann eben das entsprechende MP3 File.
HM, HMIP, Shelly, und anderes

Johann.S

Hallo,

ich habe bei mir einige HMIP-STH, HMIP-eTRV, HMIP-SWDO und eine HmIP-WTH-2 mit einer CCU2 am laufen,
funktioniert alles wunderbrächtig und Reibungslos (Danke zap).
Jetzt würde ich noch gerne die Wochenprogramme an die Thermostate schicken, ist das möglich und wenn ja wie.
Beim HMCCU Thema bin ich erst auf Seite 21 von 103 habe da aber auch bisher nichts gefunden.
Das was ich gefunden habe bezieht sich auf einen CUL und den habe ich nicht.

Bin für jede Hilfe und tritt in die richtige Richtung dankbar.

Gruß

Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

zap

#219
Das geht mit den Befehlen set config bzw get config. Und ich glaube, bei HMIP sind die Parameter sogar dokumentiert. Ist allerdings ne ziemliche Frickelei, da man die Zeitangaben in Minuten seit 0 Uhr umrechnen muss.

Doku: http://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf

Tu dir das nicht an sondern mach diese Einstellungen in der CCU. Ist wesentlich schneller und in etwa das, was ich mit best of both worlds meine. Man muss nicht zwingend alles in FHEM machen.
Wenn es dich partout interessiert, mach erst mal ein get configlist auf das Device und dann mal noch eins auf die einzelnen Kanäle. Beim Thermostaten wirst du scrollen müssen ;-)

Wenn also dein Thermostat in FHEM xy heißt:

get xy configlist
get xy configlist 1
...

Die Anzahl Kanäle steht als Internal in der Device Def
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Johann.S

Überzeugt  ;D

Wie machst du das mit dem Profilwechsel, eine DropDown Liste rechts dazu hätte ich mir vorgestellt aber bekomme es nicht hin!
Bin noch newby und mit try and error unterwegs.
Ich habe soweit verstanden, das es um 1.ACTIVE_PROFILE geht aber wie ich das ins webCmd bekomme?????

Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

floxx

Hallo,
ich bin ganz neu hier und gerade dabei meine HM-CC-RT-DN Thermostate in FHEM zu integrieren.

Hardware: CCU2 (YAHM auf raspi3 mit HM Funkmodul); FHEM selbst läuft virtuell - Debian
In der CCU2 habe ich eine Gruppe angelegt und die beiden Thermostate hinzugefügt, dies funktioniert auch alles.

Die Integration in FHEM funktioniert nur leider so halb und ich hoffe ihr könnt mir helfen. Habe schon min. 10 Threads ect gelesen und versucht aber besser wie jetzt bekomme ich es nicht hin.


define HZ_Wohnzimmer HMCCUDEV WZ_Heizung group=WZ_Fenster,WZ_Terrasse
attr HZ_Wohnzimmer IODev d_ccu
attr HZ_Wohnzimmer ccucalculate dewpoint:DEWPOINT:1.ACTUAL_TEMPERATURE,1.ACTUAL_HUMIDITY
attr HZ_Wohnzimmer ccureadingfilter (^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|^VALVE|^CONTROL|^WINDOW_OPEN)
attr HZ_Wohnzimmer ccureadingformat datapoint
attr HZ_Wohnzimmer ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;;1.SET_TEMPERATURE$:desired-temp;;1.ACTUAL_HUMIDITY$:humidity
attr HZ_Wohnzimmer cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HZ_Wohnzimmer controldatapoint 1.SET_TEMPERATURE
attr HZ_Wohnzimmer event-on-change-reading .*
attr HZ_Wohnzimmer eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr HZ_Wohnzimmer hmstatevals SET_TEMPERATURE!4.5:OFF,30.5:ON;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST
attr HZ_Wohnzimmer room 30_HomeMatic
attr HZ_Wohnzimmer stateFormat T: temperature° H: humidity% D: desired-temp° P: DEWPOINT° V: 4.VALVE_STATE% 1.CONTROL_MODE
attr HZ_Wohnzimmer statedatapoint 1.SET_TEMPERATURE
attr HZ_Wohnzimmer stripnumber 1
attr HZ_Wohnzimmer substexcl control
attr HZ_Wohnzimmer substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
attr HZ_Wohnzimmer webCmd control:Auto:Manu:Boost:on:off
attr HZ_Wohnzimmer widgetOverride control:slider,3.5,0.5,30.5,1


Wie man im Bild sieht werden ein paar Werte angezeigt aber die stimmen nicht.  Aktuell habe ich 19,8° und 20,9° an den Thermostaten und Manuell läuft auf 14°

http://www.bilder-upload.eu/upload/d60647-1511387749.png

zap

Werden denn die Werte aktualisiert, wenn Du folgenden Befehl ausführst?

get HZ_Wohnzimmer update

Wenn ja, hast Du den RPC Server konfiguriert und gestartet? Der ist für die Aktualisierung der Werte zuständig. Du must das Attribut rpcinterfaces im IODevice zumindest auf BidCos-RF und VirtualDevices setzen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

floxx

RPC Server läuft und funktioniert weil über den Schieber glaube "Control" nennt sich der kann ich die Temp verstellen die dann von beiden Thermostaten sofort übernommen wird.

Wenn du mir sagst wo ich dies "Du must das Attribut rpcinterfaces im IODevice zumindest auf BidCos-RF und VirtualDevices setzen." kontrollieren kann schaue ich nach. Habe die letzten Tage soviel konfiguriert und bin mir nicht mehr sicher.

Bei
get HZ_Wohnzimmer update
erscheint ein Popup was ich mit OK bestätigen kann aber es ist kein Inhalt drin sprich ein kleines weisses leeres Popup mit OK.

Meine d_ccu config

defmod d_ccu HMCCU 192.168.0.56
attr d_ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
attr d_ccu ccudef-readingformat datapoint
attr d_ccu ccudef-readingname ^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?UNREACH$:activity
attr d_ccu ccudef-substitute AES_KEY!(0|false):off,(1|true):on;;LOWBAT,LOW_BAT!(0|false):ok,(1|true):low;;UNREACH!(0|false):alive,(1|true):dead;;MOTION!(0|false):noMotion,(1|true):motion;;DIRECTION!0:stop,1:up,2:down,3:undefined;;WORKING!0:false,1:true;;INHIBIT!(0|false):unlocked,(1|true):locked
attr d_ccu ccuflags intrpc
attr d_ccu ccureadings 1
attr d_ccu cmdIcon on:general_an off:general_aus
attr d_ccu event-on-change-reading .*
attr d_ccu eventMap /rpcserver on:on/rpcserver off:off/
attr d_ccu room 30_HomeMatic
attr d_ccu rpcinterfaces BidCos-RF
attr d_ccu rpcinterval 5
attr d_ccu rpcport 2001
attr d_ccu rpcqueue /tmp/ccuqueue
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state
attr d_ccu stripnumber 1

popperchris

Ich hänge mich mal hier dran. Wenn es nicht passt mach eich ein eigenes Thema auf.
Ich habe mir ein Raspberry PI 3 und das passende Homematic Funkmodul. Installiert ist das ganze auf dem letzen Image:2.29.23.20171118.

Ich nutze im Moment die : HM-CC-RT-DN

Nun habe ich die Verbindung zwischen der CCU und dem FHEM erstellt und dann die Thermostate definiert.
Ich sehe auch alle Thermostate im FHEM und alle Daten werden auch aktualisiert.

Versuche ich aber die Temperatur oder irgendwas zu ändern sehe ich im LogFile: HMCCUDEV: Heizkoerper_ZimmerDanny Invalid datapoint

Das ist die Definition der Anbindung an die CCU:
define rasp_ccu HMCCU 192.168.XXX.XX
attr rasp_ccu ccuflags intrpc
attr rasp_ccu room System
attr rasp_ccu rpcinterfaces BidCos-Wired,BidCos-RF,VirtualDevices,HmIP-RF,CUxD,Homegear
attr rasp_ccu rpcinterval 5
attr rasp_ccu rpcport 2000,2001,9292,2010,8701,2003
attr rasp_ccu rpcqueue /tmp/ccuqueue
attr rasp_ccu rpcserver on
attr rasp_ccu stateFormat rpcstate/state

Und das die Definition für das Thermostat:
define Heizkoerper_ZimmerDanny HMCCUDEV NEQXXXXXXX
attr Heizkoerper_ZimmerDanny IODev rasp_ccu
attr Heizkoerper_ZimmerDanny ccureadingfilter (TEMPERATURE|VALVE_STATE|CONTROL)
attr Heizkoerper_ZimmerDanny cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr Heizkoerper_ZimmerDanny controldatapoint 4.SET_TEMPERATURE
attr Heizkoerper_ZimmerDanny eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
attr Heizkoerper_ZimmerDanny genericDeviceType thermostat
attr Heizkoerper_ZimmerDanny hmstatevals FAULT_REPORTING!1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve_error_pos
attr Heizkoerper_ZimmerDanny room ZimmerDanny
attr Heizkoerper_ZimmerDanny statedatapoint 4.SET_TEMPERATURE
attr Heizkoerper_ZimmerDanny stripnumber 1
attr Heizkoerper_ZimmerDanny substexcl control
attr Heizkoerper_ZimmerDanny substitute CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on;;FAULT_REPORTING!0:no,1:valve_tight,2:range_too_large,3:range_too_small,4:communication_error,5:other_error,6:battery_low,7:valve:error_pos
attr Heizkoerper_ZimmerDanny webCmd control:Auto:Manu:Boost:on:off
attr Heizkoerper_ZimmerDanny widgetOverride control:slider,4.5,0.5,30.5,1

Jemand eine Idee daszu ??