Hallo Zusammen,
ich habe das Problem, dass meine an der CCU2 hängenden Geräte im FHEM nicht aktualisiert werden.
RPC ist eingerichtet und scheint zu laufen - eine Aktualisierung muss aber derzeit per Hand über "fhem("get d_ccu updateccu");" erfolgen.
- Dockerumgebung (Freigabe Port 2010)
- die RPC Pakete sind im Image installiert (librpc-xml-perl)
- keine Firewall im Netz
- CCU2 Firmware 2.59.7 - Anmelden: Kein Kennwort gesetzt
Device CCU2
Internals:
CCUNum 1
Clients :HMCCUDEV:HMCCUCHN:HMCCURPC:HMCCURPCPROC:
DEF 192.168.100.23
FUUID 5e721b0f-f33f-8ab7-1a5e-29b9cd93d566c767
NAME d_ccu
NOTIFYDEV global,TYPE=(HMCCU|HMCCUDEV|HMCCUCHN)
NR 356
NTFY_ORDER 50-d_ccu
RPCState running
STATE running/OK
TYPE HMCCU
ccuaddr BidCoS-RF
ccuchannels 172
ccudevices 12
ccuif BidCos-RF
ccuinterfaces HmIP-RF,VirtualDevices,BidCos-RF
ccuip 192.168.100.23
ccuname HM-RCV-50 BidCoS-RF
ccustate active
ccutype CCU2/3
host 192.168.100.23
prot http
version 4.3.025
READINGS:
2022-09-18 14:16:43 count_channels 172
2022-09-18 14:16:43 count_devices 12
2022-09-18 14:16:43 count_groups 0
2022-09-18 14:16:43 count_interfaces 3
2022-09-18 14:16:43 count_programs 0
2022-09-18 14:16:57 rpcstate running
2022-09-18 14:16:57 state OK
hmccu:
defInterface BidCos-RF
defPort 2001
evtime 0
evtimeout 0
rpccount 0
rpcports 2010
updatetime 0
adr:
[...gekürzt...]
cnt:
ACTIVE_PROFILE 1
ACTUAL_TEMPERATURE 1
ACTUAL_TEMPERATURE_STATUS 1
BOOST_MODE 1
BOOST_TIME 1
CONFIG_PENDING 1
CONTROL_DIFFERENTIAL_TEMPERATURE 1
CONTROL_MODE 1
DURATION_UNIT 1
DURATION_VALUE 1
DUTY_CYCLE 1
FROST_PROTECTION 1
INSTALL_TEST 1
LEVEL 1
LEVEL_STATUS 1
LOW_BAT 1
OPERATING_VOLTAGE 1
OPERATING_VOLTAGE_STATUS 1
PARTY_MODE 1
PARTY_SET_POINT_TEMPERATURE 1
PARTY_TIME_END 1
PARTY_TIME_START 1
QUICK_VETO_TIME 1
RSSI_DEVICE 1
RSSI_PEER 1
SET_POINT_MODE 1
SET_POINT_TEMPERATURE 1
SWITCH_POINT_OCCURED 1
UNREACH 1
VALVE_ADAPTION 1
VALVE_STATE 1
WINDOW_STATE 1
spc:
level 1.LEVEL
grp:
ifports:
2001 BidCos-RF
2010 HmIP-RF
9292 VirtualDevices
interfaces:
BidCos-RF:
devcount 1
flags forceASCII
host 192.168.100.23
manager null
port 2001
prot http
state inactive
type A
url http://192.168.100.23:2001
HmIP-RF:
devcount 11
device d_rpc100023HmIP_RF
flags forceASCII
host 192.168.100.23
manager HMCCU
port 2010
prot http
state running
type A
url http://192.168.100.23:2010
VirtualDevices:
devcount 0
flags _
host 192.168.100.23
manager null
port 9292
prot http
state inactive
type A
url http://192.168.100.23:9292/groups
prg:
rpc:
Attributes:
ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
ccudef-readingname ^(.+\.)?LOW_?BAT$:battery;^(.+\.)?UNREACH$:activity
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
ccuflags procrpc
room HomematicIP
rpcinterfaces HmIP-RF
rpcport 2010
rpcserver on
stateFormat rpcstate/state
List d_rpc100023HmIP_RF
nternals:
CCUNum 1
DEF http://192.168.100.23 HmIP-RF
FD 33
FUUID 5e722131-f33f-8ab7-fa1f-47daf1b2be8bca99
IODev d_ccu
NAME d_rpc100023HmIP_RF
NR 357
RPCPID 6141
RPCState running
STATE running/OK
TYPE HMCCURPCPROC
ccuip 192.168.100.23
ccustate active
ccutype CCU2/3
host 192.168.100.23
prot http
rpcid 000008100023
rpcinterface HmIP-RF
rpcip 192.168.100.23
rpcport 2010
version 1.9.001
READINGS:
2022-09-18 14:16:57 rpcstate running
2022-09-18 14:16:57 state OK
hmccu:
defaultaddr 172.17.0.8
devspec HmIP-RF
evtime 0
localaddr 172.17.0.8
rpcstarttime 1663503417
rpc:
cbport 7420
cburl http://172.17.0.8:7420/fh2010
clkey CB2010000008100023
clurl http://192.168.100.23:2010
evtime 1663503416
pid 6141
port 2010
state running
sumdelay 0
rec:
DD 0
EV 0
EX 0
IN 0
ND 0
RA 0
RD 0
SL 1
TO 0
UD 0
snd:
DD 0
EV 0
EX 0
IN 0
ND 0
RA 0
RD 0
SL 0
TO 0
UD 0
Attributes:
alias CCU RPC HmIP-RF
eventMap /rpcserver on:on/rpcserver off:off/
room HomematicIP
stateFormat rpcstate/state
verbose 2
Worüber ich von Anfang an gestolpert bin: https://wiki.fhem.de/wiki/HMCCU (https://wiki.fhem.de/wiki/HMCCU)
ZitatCCU Firewall Einstellungen
Ab CCU Firmware 2.27.7 sind auf der CCU über das WebGUI folgende Einstellungen vorzunehmen:
Menü "Einstellungen > Systemsteuerung" aufrufen
Button "Firewall konfigurieren" anklicken
Bei "Firewall-Richtlinie" den Eintrag "Ports offen" auswählen, andernfalls müssen die notwendigen Ports im Feld "Port-Freigabe" explizit angegeben werden
Die Rechte für "HomeMatic XML-RPC API" und "Remote HomeMatic-Script API" auf "Vollzugriff" setzen.
Man kann die Rechte auf "Eingeschränkter Zugriff" belassen, muss dann aber im Feld "IP-Adressen für eingeschränkten Zugriff" die IP des FHEM-Servers oder das komplette Subnetz in Subnet-Notation angeben.
Wenn der Zugriff von FHEM auf die CCU ohne Anmeldung erfolgen soll, muss zusätzlich in der Systemsteuerung unter "Sicherheit" die Option "Authentifizierung" deaktiviert werden. Alternativ kann im I/O Device (HMCCU) mit dem Befehl set authentication Benutzername und Passwort der CCU angegeben werden.
Es gibt diese Option bei mir nicht.
(siehe Anhang)
Nach https://forum.fhem.de/index.php?topic=118868.0 (https://forum.fhem.de/index.php?topic=118868.0) versuchte Ports (per Telnet):
2010 Verbindung
7011 keine Verbindung
7001 keine Verbindung
4021 keine Verbindung
4012 keine Verbindung
Ist nun der Port falsch oder liegt der Fehler wo ganz anders?
Danke,
Kharim
Da Du schriebst
Zitat- die RPC Pakete sind im Image installiert (librpc-xml-perl)
Hast Du ein Docker Image oder läuft es nativ auf dem Server?
Läuft im Dockerimage und der (vermeintliche) RPC Port ist frei gegeben
Hi Kharim,
redest Du bez. Docker von FHEM, von der CCU oder von beidem?
Im FHEM Image musst Du kein Port freigeben. Ein CCU Dockerimage braucht diese Ports
- "8080:80"
- "2001:2001"
- "2010:2010"
- "9292:9292"
- "8181:8181"
Gruß Otto
Hast Du dem CCU-Modul die IP des Servers (wo der Container läuft) gegeben? Die Automatische Erkennung funktioniert meines Wissens nicht im Container. Habe jedenfalls es so bei mir machen müssen.
Und .... welchen Port hast Du freigegeben? Können mehr als einer sein ....
@Otto:
Bist Du Dir sicher? Die CCU2 will doch per RPC mit FHEM reden und damit muß der Port freigegeben sein ...
Also...ich habe hier einen (selbstgebautes) FHEM Docker, indem auch das perl Paket installiert ist.
So gesehen läuft der RPC Server und das FHEM im selben Docker.
Die CCU2 selbst ist Hardware und (siehe Device-List) auf IP erreichbar.
Ports siehe Anhang.....müssen da die von Otto noch mit rein?
ZitatHast Du dem CCU-Modul die IP des Servers (wo der Container läuft) gegeben?
Zusätzlich:
Hast Du den Container (FHEM) mit docker-compose oder anders konfiguriert? Die Komplette cnfig würde mich interessieren ...
Zitat von: Kharim am 22 September 2022, 09:41:01
Ports siehe Anhang.....müssen da die von Otto noch mit rein?
NEIN
Ich habe geschrieben: Ein CCU Dockerimage (also eine CCU in Form von Software) braucht diese Ports.
Du hast eine Hardware CCU, da trifft das alles nicht zu!
Ich habe auch geschrieben: Im FHEM Image musst Du
kein Port freigeben. Deine Freigabe des CCU Ports im FHEM Image ist nutzlos, und schadet sicher nicht oder nur marginal. ;)
Es läuft ja offenbar alles, nur die automatische Aktualisierung schlägt fehl!? Ich meine solche Fragen gibt es fast jeden Tag - schau doch hiermal nach Tipps. Ich hatte das Problem bei meiner Einrichtung nicht, aber scheinbar ist es häufiger ein Problem.
Hm....da soll noch einer durch sehen...
Ich brauch also keine Portfreigabe an der Hardware-CCU2, keine Portfreigabe am FHEM Docker...
Der Port, den sich FHEM selbst wählt, 2010 ist also korrekt?!
(ist ja auch per Telnet erreichbar)
Der Container ist per Script gebaut, also docker build / docker run
FROM fhem/fhem:latest
RUN apt-get update && apt-get install -y gnupg2 vim wget
RUN echo 'deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi' >> /etc/apt/sources.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 90FDDD2E
#RUN apt-get update && apt-get dist-upgrade -y
RUN apt-get update && apt-get install -y etherwake alsa-utils procps psmisc supervisor sendmail linphone usbutils librpc-xml-perl
RUN mkdir /etc/perl/Color && touch /etc/perl/Color/rgb.txt
RUN echo 'fhem ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers.d/fhem_su
COPY healthy.sh /opt/healthy.sh
HEALTHCHECK --interval=10s --timeout=3s CMD /opt/healthy.sh
#COPY pre-start.sh /pre-start.sh
ENV CONFIGTYPE=configDB
EXPOSE 8083 7072
Uralt und damals noch ohne den 2010 Port
#!/bin/bash
docker build -t fhem .
docker run --name=fhem \
--privileged \
--restart always \
-d \
-v /opt/Daten/.../Scripte:/opt/Scripte \
-v /opt/Daten/.../data:/opt/fhem \
-e TZ=Europe/Berlin \
-p 8083:8083 \
-p 7072:7072 \
-p 2010:2010 \
--cap-add=SYS_ADMIN \
--cap-add=NET_ADMIN \
--hostname fhem \
fhem
Wenn das alles so korrekt ist, gehen mir aber leider die Ideen aus -_-
ZitatIch habe auch geschrieben: Im FHEM Image musst Du kein Port freigeben
@Otto: Bist Du Dir da total sicher?
(auch mit den geöffneten Ports von Otto keine Änderung)
Hallo,
Du möchtest in fhem an Deiner CCU-Definition "rpcserveraddr" definieren!
attr d_ccu rpcserveraddr 172.16.0.10
Hier muss die Adresse von Deinem Docker-Server, NICHT die des Docker-Containers eingetragen werden! Zusätzlich möchtest Du Deinen Docker-Container im network_mode: host bereiben, oder die entsprechende Portfreigaben definieren:
ports:
- 3002:3002 # echodevice
- 8083:8083 # fhem-web
- 1883:1883 # mqtt
- 7072:7072 # fhem-telnet
- 7411:7411 # rpc for hmccu only hm
- 7420:7420 # rpc for hmccu hm-ip
In der CCU solltest Du die Firewall deaktivieren bzw. auf Vollzugriff stellen.
Grüße
Zitat von: Kharim am 22 September 2022, 10:24:25
Ich brauch also keine Portfreigabe an der Hardware-CCU2,
Das habe ich nicht gesagt. In der Firewall der CCU musst Du "Ports offen" einstellen! Aber Du hast eingangs gesagt: Du hast diese Option nicht, was ich nicht glaube. Vielleicht sind die in einem anderen Menüpunkt, brauchen Experteneinstellung oder sowas. ich habe die CCU nicht parat, kann dazu derzeit nichts konkretes sagen.
Zu extra Ports im FHEM Container finde ich in meinen Notizen keine Angaben. Das mag aber daran liegen, dass bei mir piVCCU Container und FHEM Container in einem Docker Netzwerk standen. Insofern
Zitat von: Wernieman am 22 September 2022, 10:48:22
@Otto: Bist Du Dir da total sicher?
Nein, es wird wohl so sein wie stauraum sagt ;)
Zitat- 7411:7411 # rpc for hmccu only hm
- 7420:7420 # rpc for hmccu hm-ip
stauraum mein Held :-) :-)
Treffer!
Das wars. Super. Vielen Vielen Dank :-)
P.s.: Keine Portfreigaben an der CCU2 zu finden/nötig. Vollzugriff reicht.