Hallo,
ich habe mir einen rpi 4 gekauft und möchte diesen nun als neue Homematic-Zentrale einsetzen.
Da ich in diversen Beiträgen und im Wiki auch immer wieder gelesen habe, dass die USB-CUL problematisch beim Einsatz für das Homematic-Funkprotokoll sind, möchte ich gerne umsteigen, und was "besseres" nehmen.
Im Wiki steht das "HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry_Pi" an erster Stelle. Das wäre doch was, oder?
Zu Beginn möchte ich jedoch entweder den alten rpi weiter als Funkbasis verwenden, oder den USB-Dongle dann gleich auf den neuen rpi umziehen.
Da FHEM sowohl für die Heizung als auch tlws. für meine Rolläden zuständig ist, möchte ich die "Ausfallzeit" möglichst gering halten...
Fragen:
- welches Image ist für rpi4 geeignet? Das, was man standardmässig herunterladen kann? Ich habe bereits eine SD-Karte für rpi4 (makerfactory, Streaming Set...), die müsste ja auch gehen, oder?
- funktioniert es, rpi3 als Funkbasis zu nehmen, und rpi4 dann bereits so einzurichten, dass er später selber die Funkbasis sein kann?
- rpi4 soll von Anfang an mit Datenbank arbeiten, die Logs würde ich gerne über ein smb-share auf meiner Diskstation ablegen, damit die SD-Karte nicht so belastet wird (evtl. auch die DB, oder?)
- Kann ich den rpi4 jetzt schon einrichten, auch wenn ich noch kein Funkmodul (USB CUL oder HM-MOD-RPI-PCB) habe? Ich glaube, dann brauche ich eine VCCU...
Viele Grüße
Wolfgang
Hi Wolfgang,
bring FHEM auf dem 4er ans laufen. Dazu brauchts ja keine Gateways etc.
Läuft alles kannst du auf dem 4er eine VCCU mit der hmID des USB-dongle erstellen. Welche Hardware die vccu dann anspricht ist egal die hmID wird von der vccu gesetzt/ersetzt.
Dann kannst ohne alles neu anlernen zu müssen umziehen und evtl auch gleich ausmisten ;-)
Grüße
Achim
Hallo Wolfgang,
welches Image ist für rpi4 geeignet? Das, was man standardmässig herunterladen kann? Ich habe bereits eine SD-Karte für rpi4 (makerfactory, Streaming Set...), die müsste ja auch gehen, oder?
Die SD Card ist als Hardware sicher relativ egal. Als image nimmst Du aktuelles raspbian-lite.
Hol dir das HM-MOD-RPI-PCB Modul.
Richte erstmal alles auf dem neuen Pi NEU ein das es läuft. Im Wiki steht alles. Wenn Du mehr auf Anleitung aus dem Internet stehst nimmt meine (https://heinz-otto.blogspot.com/2019/05/setup-raspberry-pi-2019.html):)
Bring das erstmal auf dem Pi zum laufen dann sehen wir weiter :)
Und plane keine Datenbanken auf der SD Karte vom Pi. Normale Text FileLogs sind überhaupt kein Problem.
Gruß Otto
Hallo Achim,
eigentlich wollte ich noch ein paar dumme Fragen stellen,
aber ich denke, dass es wirklich besser ist, zunächst den rpi4 in Betrieb zu nehmen.
- sqlite oder eine andere DB drauf installieren, vlt. sogar mehrere...
- fhem runterladen und installieren
- nodejs, nodered und Konsorten installieren - aber wie? Das letzte Mal als ich das gemacht habe, hat es mir meine ganze node-Installation dermassen verhunzt, dass auf dem alten rpi nix mehr in die Richtung geht...
- fhem mit vccu und DB-CFG/DB-Log einrichten
- ...
Viele Grüße
Wolfgang
Viele Grüße
Wolfgang
also alles was ich weiß und denke: Eine Datenbank die ständig aktiv ist, "bohrt" kleine Löcher in die SD. Alle die ich bisher gefragt habe, bei denen SD Karten kaputt gegangen sind, hatten Datenbank auf dem Pi.
Wenn Du die DB extern oder auf ssd betreiben willst - kein Problem.
Zitat von: Otto123 am 01 Februar 2020, 13:09:39
... Eine Datenbank die ständig aktiv ist, "bohrt" kleine Löcher in die SD. Alle die ich bisher gefragt habe, bei denen SD Karten kaputt gegangen sind, hatten Datenbank auf dem Pi.
Mich hast Du nicht gefragt. :D
Ich habe im Laufe der Zeit zwei microSD eingebüsst, bei zugegeben etwas ausführlicherem (Debug-)Text-Logging. Allerdings halte ich die Dateien inzwischen klein, so gibt es für fhem inzwischen ein tägliches Log. Datenbanken hatte ich noch nie, i bäh.
Seit ich eine anständige Marken-SD benutze, ist noch nichts passiert, die aktuelle ist sicher schon zwei Jahre im Einsatz.
Zum Thema selbst ist alles gesagt.
Hallo,
hab den rpi4 mit dem Makerfactory-Kit fürs Streaming jetzt in Betrieb genommen. Ohne den CPU-Lüfter scheint das Ding an Überhitzung zu leiden :-/
Mit Lüfter ist es laut :/
Und nu? eher rhetorisch gefragt... Mit Lüfter natürlich.
FHEM+LOG+DB: also gleich gucken, dass das fhem-Log-Verzeichnis auf dem NAS ist... Und die DB auch extern betreiben. Muss nur schauen, dass ich die richtige drauf mache dann, bei sqlite brauchts ja keinen Treiber auf dem NAS, das ist nur eine Datei, oder?
Viele Grüße
Wolfgang
Zitat von: Pfriemler am 01 Februar 2020, 14:36:48
Datenbanken hatte ich noch nie, i bäh.
OT sorry: ich weiß das doch, deswegen hab ich Dich nicht gefragt :) ;D
Ich halte das mit den SD wie ganz früher mit den Reifen immer mal reih um tauschen, damit sie überall "abgefahren" werden ;)
Ich hatte glaub ich noch keinen defekt, aber ich habe auch nur Marke.
Hallo,
kann mir jemand helfen, wie ich das share der Diskstation auf dem rpi einbinden muss, damit ich die FHEM-Logs und FHEM-ConfigDB auf das share schreiben kann?
Habe FHEM normal eingerichtet und die config.db umgebogen:
configDB.conf:
%dbconfig= (
connection => "SQLite:dbname=/opt/fhem/external_DB/configDB.db",
user => "",
password => ""
);
Logs sind noch file-Logs, aber das will ich auch noch umbiegen.
Mit dieser Konfiguration kann ich in die config.db schreiben.
ls -l liefert mir dann
4 drwxr-xr-x 2 fhem dialout 4096 Feb 1 23:36 external_DB
und
4 drwxr-xr-x 2 fhem dialout 4096 Feb 2 09:20 log
Mit diesen Einträge in der /etc/fstab auf dem rpi:
//ds2/für_alle/Büro/Heimautomation/fhempi4/DB /opt/fhem/external_DB cifs vers=2.0,username=pi,password=****,user,uid=999,gid=20 0 0
//ds2/für_alle/Büro/Heimautomation/fhempi4/Log /opt/fhem/log cifs vers=2.0,username=pi,password=****,user,uid=999,gid=20 0 0
//diskstation/wolfgang/Projekte/Heimautomation /mnt/diskstation/fhem cifs vers=2.0,username=wolfgang,password=****,user,uid=1000 0 0
Damit seh ich dann das Verzeichnis auf der Diskstation.
Aber fhem startet nicht mehr. Hat wohl keine Schreibrechte in das Verzeichnis.
Wenn ich mit dem user "pi" versuche eine Datei zu schreiben/bearbeiten, geht das auch nicht,
nano external_DB/test.txt
erst mit
sudo nano external_DB/test.txt
darf ich die Datei schreiben.
Aber...
das Verzeichnis und die Datei haben die gleichen Zugriffsrechte wie vorher.
Außer...
in der /etc/fstab wird da etwas eingeschränkt?
Auf der diskstation gibt es den user pi:users, der alle Berechtigungen hat in diese Verzeichnisse zu schreiben.
Vom PC aus funktioniert auch das Bearbeiten der Dateien - aber vielleicht weil da ein anderer User zugreift... Werd ich gleich mal probieren...
Viele Grüße
Wolfgang
Viele Grüße
Wolfgang
Hallo Wolfgang,
wenn es nicht an den Rechten liegt, liegt es daran, dass FHEM zu zeitig startet?
Siehe auch hier https://forum.fhem.de/index.php?topic=86432.0
Gruß Otto
Hallo,
ich habs nicht hinbekommen.
Hab jetzt ganz einfach NFS statt SMB/CIFS verwendet, damit scheint der User fhem:dialout und pi:pi Zugriff auf die benötigten Dateien/Verzeichnisse zu haben...
Naja ich denke da hätte Dir jeder Linuxer dazu geraten. ;)
Aber die Abhängigkeiten beim Start musst Du schon im Blick haben ....
Zitat von: CBSnake am 01 Februar 2020, 12:40:59
Hi Wolfgang,
bring FHEM auf dem 4er ans laufen. Dazu brauchts ja keine Gateways etc.
Läuft alles kannst du auf dem 4er eine VCCU mit der hmID des USB-dongle erstellen. Welche Hardware die vccu dann anspricht ist egal die hmID wird von der vccu gesetzt/ersetzt.
Dann kannst ohne alles neu anlernen zu müssen umziehen und evtl auch gleich ausmisten ;-)
Grüße
Achim
Hallo Achim,
darf ich den Thread nochmals hochholen?
zunächst mal eine Übersicht über meine devices auf dem rpi4:
"list" -->
Type list <name> for detailed info.
CUL:
CUL_0 (Initialized)
CUL_HM:
VCCU (IOs_ok)
_HzgAktorBuero00 (???)
notify:
initialUsbCheck (2020-02-17 19:21:45)
FileLog:
FileLog_sysmon (active)
Logfile (disabled)
DbLog:
logdb (connected)
DbRep:
dbRep.logdb (connected)
SVG:
SVG_FileLog_sysmon_1 (initialized)
autocreate:
autocreate (active)
telnet:
telnetForBlockingFn_1581963757 (Initialized)
weblink:
SysValues (initialized)
Ich habe mir eine VCCU erstellt:
Internals:
DEF F11034
FUUID 5e47d8a5-f33f-aa51-11cc-b18e43150bcf99db
NAME VCCU
NOTIFYDEV global
NR 12
NTFY_ORDER 50-VCCU
STATE IOs_ok
TYPE CUL_HM
assignedIOs
chanNo 01
READINGS:
2020-02-17 19:21:45 IOopen 0
2020-02-17 19:21:45 state IOs_ok
helper:
HM_CMDNR 182
mId FFF0
peerFriend peerSD,peerSens,peerAct
peerOpt -:virtual
regLst 0
rxType 1
expert:
def 1
det 0
raw 1
tpl 0
io:
prefIO
vccu VCCU
ioList:
mRssi:
mNo
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
vrt 1
Attributes:
IOList CUL_0
IOgrp VCCU
expert 2_raw
model CCU-FHEM
subType virtual
webCmd virtual:update
Und dazu passend dann den CUL als Funkantenne:
Internals:
CMDS BbCFiAZNkGMKUYRTVWXefmLltux
CUL_0_MSGCNT 225
CUL_0_TIME 2020-02-17 20:18:05
Clients :CUL_HM:HMS:CUL_IR:STACKABLE_CC:TSSTACKED:STACKABLE:
DEF /dev/ttyACM0@9600 1034
DeviceName /dev/ttyACM0@9600
FD 7
FHTID 1034
FUUID 5e4ad9b9-f33f-aa51-b8d7-9f83b8cae393ffee
NAME CUL_0
NR 16
PARTIAL
RAWMSG A0D96A4106060E9F1103406013A0014
RSSI -64
STATE Initialized
TYPE CUL
VERSION V 1.66 CUL868
initString X21
Ar
owner_CCU VCCU
Helper:
DBLOG:
ccconf:
logdb:
TIME 1581964688.83662
VALUE freq:868.300MHz bWidth:325KHz rAmpl:42dB sens:4dB
cmds:
logdb:
TIME 1581964697.31067
VALUE B b C F i A Z N k G M K U Y R T V W X e f m L l t u x
state:
logdb:
TIME 1581964697.3786
VALUE CONNECTED
uptime:
logdb:
TIME 1581964714.59095
VALUE 0 00:17:00
version:
logdb:
TIME 1581963797.7946
VALUE V 1.66 CUL868
MatchList:
1:CUL_HM ^A....................
8:HMS ^810e04....(1|5|9).a001
D:CUL_IR ^I............
H:STACKABLE_CC ^\*
M:TSSTACKED ^\*
N:STACKABLE ^\*
READINGS:
2020-02-17 19:38:08 ccconf freq:868.300MHz bWidth:325KHz rAmpl:42dB sens:4dB
2020-02-17 19:38:17 cmds B b C F i A Z N k G M K U Y R T V W X e f m L l t u x
2020-02-17 20:18:05 state Initialized
2020-02-17 19:38:34 uptime 0 00:17:00
2020-02-17 19:23:17 version V 1.66 CUL868
Attributes:
hmId F11034
rfmode HomeMatic
Das scheint soweit zu funktionieren. Ich kann die LED des CUL steuern ;)
Aber wie krieg ich jetzt meine einzelnen Devices (Homematic) in den neuen rpi4?
Ich hab gerade gesehen, dass die VCCU readings dieser Art aufgezeichnet hat:
unknown_33D038 received 2020-02-17 20:18:23
unknown_3F8344 received 2020-02-17 20:21:15
unknown_4596B9 received 2020-02-17 20:22:13
unknown_4596C0 received 2020-02-17 20:21:28
Das sind in der Tat die HMIDs meiner Devices die sich jetzt schon melden, mit Readings...
Wie bekomme ich aber diese ganzen Definitionen in die neue FHEM-Installation?
Bei der Erstinstallation hab ich ja alles anlernen müssen. Aber du schreibst ja, dass ich das nicht mehr brauche, sondern nur umziehen und ausmisten.
Ausmisten wollte ich so machen, dass ich alle Homematic-Devices so lasse wie beim alten rpi (aber wie krieg ich die erstmal hier rein?), und dann nach Bedarf meine ganzen Notifies, DOIfs,Plots etc. nochmal reinhole.
Theoretisch müsste es aber ja auch gehen, die config.db zu kopieren und mit der dann zu arbeiten...
Fragen über Fragen...
Viele Grüße
Wolfgang
Hallo Wolfgang,
der VCCU fehlt noch das attr IODev.
Deine Definitionen kannst Du aus der alten Installation eigentlich (fast) aus der Raw Definition übernehmen.
Hast Du das versucht?
Gruß Otto
Hallo Otto,
das IODev habe ich nachgetragen, das müsste aber eigentlich im list schon mit drin sein - außer ich habs dann vergessen zu editieren :/
Habs jetzt grade mal mit diesem Device nochmal probiert (allerdings ist meine Funkantenne wieder am alten rpi dran):
defmod HzgAktorBad CUL_HM 4FB4A5
attr HzgAktorBad userattr room_map structexclude
attr HzgAktorBad .* 1
attr HzgAktorBad .mId 0004
attr HzgAktorBad IODev Funkantenne
attr HzgAktorBad autoReadReg 5_readMissing
attr HzgAktorBad event-min-interval .*:900
attr HzgAktorBad event-on-change-reading .*
attr HzgAktorBad event-on-update-reading .*
attr HzgAktorBad expert 251_anything
attr HzgAktorBad firmware 2.8
attr HzgAktorBad group Heizung
attr HzgAktorBad model HM-LC-SW1-FM
attr HzgAktorBad peerIDs 00000000,
attr HzgAktorBad room Bad,Heizung,System
attr HzgAktorBad serialNr NEQ1277795
attr HzgAktorBad subType switch
attr HzgAktorBad webCmd statusRequest:toggle:on:off
setstate HzgAktorBad off
setstate HzgAktorBad 2019-02-21 06:10:19 .peerListRDate 2019-02-21 06:10:19
setstate HzgAktorBad 2020-02-17 21:41:57 .protLastRcv 2020-02-17 21:41:57
setstate HzgAktorBad 2020-02-17 21:41:57 CommandAccepted yes
setstate HzgAktorBad 2018-12-17 09:46:30 D-firmware 2.8
setstate HzgAktorBad 2018-12-17 09:46:30 D-serialNr NEQ1277795
setstate HzgAktorBad 2019-02-21 06:10:18 PairedTo 0xF11034
setstate HzgAktorBad 2019-02-21 06:10:18 R-confBtnTime permanent
setstate HzgAktorBad 2019-02-21 06:10:18 R-intKeyVisib invisib
setstate HzgAktorBad 2019-02-21 06:10:18 R-localResDis off
setstate HzgAktorBad 2019-02-21 06:10:18 R-pairCentral 0xF11034
setstate HzgAktorBad 2019-02-21 06:10:18 R-powerUpAction off
setstate HzgAktorBad 2019-02-21 06:10:18 R-sign off
setstate HzgAktorBad 2019-02-21 06:10:18 R-statusInfoMinDly 2 s
setstate HzgAktorBad 2019-02-21 06:10:18 R-statusInfoRandom 1 s
setstate HzgAktorBad 2019-02-21 06:10:18 R-transmitTryMax 6
setstate HzgAktorBad 2019-02-21 06:10:18 RegL_00. 00:00 02:01 0A:F1 0B:10 0C:34 15:FF 18:00
setstate HzgAktorBad 2019-02-21 06:10:18 RegL_01. 00:00 08:00 30:06 56:00 57:24
setstate HzgAktorBad 2020-02-17 21:41:57 deviceMsg off (to vccu)
setstate HzgAktorBad 2020-02-17 21:41:57 level 0
setstate HzgAktorBad 2019-03-30 10:45:55 levelMissed desired:100
setstate HzgAktorBad 2020-02-17 21:41:57 pct 0
setstate HzgAktorBad 2019-01-12 22:05:35 powerOn 2019-01-12 22:05:34
setstate HzgAktorBad 2020-02-17 21:41:57 recentStateType ack
setstate HzgAktorBad 2020-02-17 21:41:57 state off
setstate HzgAktorBad 2020-02-17 21:41:57 timedOn off
Ein paar Attribute passen aber nicht, da man sie wohl nicht selber setzen darf:
- .mid
- model
- subtype
Wenn ich die rauslasse, scheint es zu gehen, zumindest kommt beim Ausführen der Kommandos dann kein Fehler mehr...
Aber woher weiß ich, was ich brauche, und was ich draussen lassen kann?
VG
Wolfgang
Hallo Wolfgang,
ich weiß, und es ärgert mich eigentlich sehr. :'(
Deswegen mein (fast) in dem Satz :D
https://forum.fhem.de/index.php?topic=103344.0
Ich meine, Du musst primär modelForce verwenden (also aus model einfach modelForce machen)
.mid lässt Du weg
subtype lässt Du auch weg
Gruß Otto
Hallo Otto,
was weißt du? Komm nicht mit...
Ich werds jetzt dann mal so probieren, wie du gesagt hast...
Die alte Config erstmal in Textdatei exportieren, und von dort aus dann quasi die ganzen Befehle zum Anlegen/Konfigurieren der Devices editieren und en bloc ausführen.
Dann sollte das nach und nach wieder gehen.
Nur schade, dass ich die Funkantenne jedesmal umstöpseln muss.
Muss wohl die Platine für den rpi kaufen, dann entfällt das wohl...
Viele Grüße
und herzlichen Dank erstmal
Wolfgang
Zitat von: wowogiengen am 18 Februar 2020, 17:58:26
Hallo Otto,
was weißt du? Komm nicht mit...
der Satz hier war gemeint
ZitatEin paar Attribute passen aber nicht, da man sie wohl nicht selber setzen darf:
- .mid
- model
- subtype
Dafür dann der Link zu der schon älteren Diskussion wo ich das "neuartige" Verhalten, dass man bei CUL_HM keine Definition mehr einfach so per Copy & Paste Raw Def mehr machen kann.
Du kannst übrigens
list -r TYPE=CUL_HM
damit hast Du nur die CUL_HM Definitionen einem Textblock, quasi vorgefiltert und nicht die komplette config.
ich könnte ein batch Script machen, was genau das tut. ;) Inklusiver löschen der beiden Zeilen und Änderung von model noch modelforce.
Gruß Otto
Hallo Otto,
jetzt hatte ich mir grade die Mühe gemacht, alles nochmal fein säuberlich hier reinzuschreiben, wo ich noch meine Problemchen habe, aber irgendwie ist das im Nirwana gelandet :(
Auf jeden Fall wollte ich dir für deine Mühe danken.
Darf ich dich / das Forum denn noch weiter mit meinen Problemen belästigen?
- DB-Log wird zu groß, liegt wohl an der zu großzügigen RegExp...
- DB-Log loggt ein RegExp nicht
- DBReport löscht noch nix, liegt aber daran, dass ich nicht verstanden habe, wie ich die Beispiele auf meine "Anlage" anpassen muss.
- Habe ich grade wenig Bock, mich intensiv darum zu kümmern, da ich beruflich grade so sehr eingespannt bin, dass ich aufpassen muss, nicht verrückt zu werden... Ist nicht leicht.
Viele Grüße
Wolfgang
Hab ja versprochen etwas zu machen:
Diese Zeile bereitet eine Raw Def als Input so auf, das der Output direkt wieder als Raw Def in einer anderen FHEM Instanz importiert werden kann:
sed '/.*\s.*\s\.mId/d;/.*\s.*\ssubType/d;s/.*\s.*\smodel/&Force/'
Erklärung:
Es sollte im dritten Wort jeder Zeile (durch Leerzeichen getrennt) mId (/.*\s.*\s\.mId/d) und subType (/.*\s.*\ssubType/d) gefunden und die Zeile gelöscht werden.
model wird durch modelForce (s/.*\s.*\smodel/&Force/) ersetzt.
Das kann man nach Belieben mit weiteren Konstrukten ergänzen.
Ich hoffe das ist ohne grobe Fehler, ich habe nur ein bisschen getestet. 8)
Zusammen mit meinem fhemcl.sh Script (https://github.com/heinz-otto/fhemcl) (oder mit fhem.pl Clientmode) geht dann so etwas:
bash fhemcl.sh http://fhem1:8083 "list -r Device1"|sed '/.*\s.*\s\.mId/d;/.*\s.*\ssubType/d;s/.*\s.*\smodel/&Force/'|bash fhemcl.sh http://fhem2:8083
Wobei Device1 jedes devspec sein kann - mit TYPE=CUL_HM die gesamte CUL_HM Landschaft (kann etwas dauern ;))
Wobei das mit Sicherheit nicht sinnvoll ist, es wird dabei zu Reihenfolge-Problemen kommen.
Man sollte also sinnvolle Gruppen in richtiger Reihenfolge umziehen, IO zuerst definieren usw.
Edit: Das Ganze hat vor allem einen Haken: CUL_HM definiert selbständig die Channels der Geräte, damit laufen alle Channel defines in Fehler. Man kann das natürlich filtern ...
Die einfache rundumsorglos Lösung wird das nicht ::)
Gruß Otto