Hallo,
ich versuche, ein MAX!-Heizkörperthermostat (basic) mit
fhem zu pairen.
Ich habe eine CUL-Adapter (http://shop.busware.de/product_info.php?products_id=29%22).
Das Thermostat geht in einen 30-Sekunden-Anlernmodus, aber fhem registriert kein
neues Gerät (autocreate ist aktiviert).
fhem zeigt ein CUL_MAX mit Namen cm als "defined".
Aber das Gerät wird beim pairen anscheinend nicht erkannt.
Ich habe das Thermostat nicht vorher an einen Cube angelernt.
Wie kann ich herausfinden, woran es liegt?
1. Werksreset des Thermostats
2. genug Credits?
Was sind credits?
Der CUL ist beschränkt in seiner Sendezeit (such mal hier nach Credits - das ist quasi die "Maßeinheit", wieviel er noch senden darf, die füllt sich bei Nichtgebrauch wieder auf). Zum Pairen braucht er eine ganze Menge an solchen. Auf dem CUL kannst du die über einen get-Befehl (bin unterwegs und kann nicht nachsehen, aber "credits" kommt vor im auswählbaren Parameter) abfragen, maximal kann er 600 haben.
Über das Thema Credits und 1%-Regel mit dem CUL gibts aber Hunderte Artikel hier. :)
Wenn nicht genügend Credits mehr vorhanden sind kommt im Log eine Meldung in der Art von:
2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 4, but we need 110. Waiting 106 seconds.
Du solltest mal im Event-Monitor beobachten, was passiert, wenn Du pairen willst. Eventuell ist das Thermostat auch einfach zu weit weg vom CUL oder zu abgeschirmt, so daß die Funksignale nicht ankommen.
Du hast Dein CUL_MAX auch in den pairmode geschaltet, nehme ich doch an?
set cm pairmode
Danke!
Unter dem Begriff "credits" habe ich natülich schon gesucht, in der Forumssuche kamen
aber leider nur 2 Links gefunden, nämlich die Beträge aus diesem Thema.
Auch in der allgmeine Web-Suche habe ich dazu nichts gefunden, auch nicht im Max-Wiki.
Vielleicht kann mir jemand einen Link zu einem Artikel, den ich nicht finde, das wäre schon
hilfreich.
Über die 1%-Regel hingegen habe ich schon vorher gelesen: das bezieht sich doch darauf, wie viele Geräte bereits
aktiv sind, oder?
Bei mir ist für den CUL aber das Thermostat das erste Gerät, dass ich überhaupt paire. Es laufen noch
keine anderen Devices unter CUL.
Ich habe allerdings noch einen Homematic-Stick parallel laufen, darauf sind schon mehrere Rolladenmotoren
gepairt, was auch funktioniert. Das sollte aber ja mit dem CUL-Stick nichts zu tun haben, oder?
Ich frage mich natürlich auch, ob der CUL selbst das Problem sein könnte.
In den Pair-Mode habe ich ihn versetzt, und auch geschaut, dass er dies im DeviceOverview
auch angibt (pairmode 1), während der 30 Sekunden, in denen das Gerät sendet.
Funkprobleme sollte es nicht geben, der Raspberry Pi, mi dem ich arbeite, steht 1.5 Meter
von der Heizung entfernt.
Im Eventmontior wird absolut gar nichts angezeigt.
Kannst Du mal ein list von CUL und CUL_MAX angeben? Also die Ausgabe von list cm
und auch vom entsprechenden IODev.
Internals:
DEF 123456
IODev CUL0
NAME cm
NR 27
STATE Defined
TYPE CUL_MAX
addr 123456
cnt 0
pairmode 0
retryCount 0
sendQueue:
Attributes:
IODev CUL0
Und bitte noch dasselbe vom device CUL0 :)
list CUL0
Hier ist wichtig, dass der RFMode vom CUL auch auf MAX gestellt ist... Sonst wirds nix.
O.k., siehe unten.
Was ist denn CUL0?
Muss ich vielleicht CUL0 in den pairmode versetzen statt cm?
Internals:
CMDS
Clients :CUL_MAX:HMS:CUL_IR:STACKABLE_CC:
DEF /dev/ttyACM0@9600 0000
DeviceName /dev/ttyACM0@9600
FHTID 0000
NAME CUL0
NR 26
PARTIAL
STATE disconnected
TYPE CUL
initString X21
Zr
Matchlist:
1:CUL_MAX ^Z........................
8:HMS ^810e04....(1|5|9).a001
D:CUL_IR ^I............
H:STACKABLE_CC ^\*
Readings:
2016-09-13 22:44:11 state disconnected
Attributes:
rfmode MAX
Der Status ist "disconnected". Da ist der CUL noch nicht richtig eingerichtet.
Du brauchst
CUL (das Hardwaredevice) -> CUL_MAX (die Schnittstelle zu den MAX-Thermostaten) -> MAX-Komponenten.
Dein "cm" ist nur die "Zwischenschicht" zwischen Hardware-CUL und Komponenten, das reicht alleine nicht.
Erst müssen die beiden ersten Dinge stimmen, dann erst gehts mit dem Pairen.
Der Pairmodus war schon ok, aber wenn der CUL disconnected ist, wird das nix mit dem Pairen. :)
Ging denn mit dem CUL schonmal irgendwas?
Wenn du schon ein anderes USB-Dings verwendest, teste mal, ob es mit /dev/ttyACM1@9600 in der DEF geht - vielleicht sprichst du einfach den falschen USB-Stick an?
Das Problem mit ttyACM* oder ttyUSB* ist, daß diese nicht immer zwangsläufig gleich heißen nach einem Reboot. Auch beim ab- und anstecken ändert sich die Bezeichnung.
Besser ist es, auf /dev/serial/by-id/usb-xxx zu verweisen. In /dev/serial/by-id/ erscheinen die USB-Geräte mit eindeutiger ID. Diese ändert sich nicht, die Geräte hier sind symbolische Links zu den eigentlichen Schnittstellen.
Ich weiß jetzt nicht, wie die ID des Busware CUL aufgebaut ist, aber am einfachsten ist es, Du ziehst ihn mal ab, siehst Dir das Verzeichnis an und guckst nach, welches Device nach dem erneuten Einstecken auftaucht. Dann ersetzt Du das /dev/ttyACM0 durch /dev/serial/by-id/"ID vom CUL".
Das klingt kompliziert. Ein Verzeichnis /dev/serial gibt es bei meinem Rasperry Pi3 nicht.
Ein lsusb liefert Folgendes:
Bus 001 Device 007: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader
Bus 001 Device 006: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 005: ID 1b1f:c00f
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Und Device 007 verschwindet, wenn ich den CUL-Stick abziehe.
Was muss ich denn dann genau eingeben bei dem define-Befehl?
Zitat von: fgam am 14 September 2016, 22:41:00
Bus 001 Device 007: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader
Das sieht für mich so aus, als ob auf dem CUL gar keine Firmware installiert ist. Ich würde mal sagen, da muß erst culfw oder a-culfw drauf.
Aber vielleicht meldet sich ja noch jemand mit einem Busware CUL.
Hast du denn mal ne Firmware auf dem CUL installiert? Wenn nein, muss das vorher geschehen... Unter www.culfw.de steht, wie's geht.
Out of the Box mag der CUL noch nicht.
O.k., ich habe ihn geflasht:
sudo dfu-programmer atmega32u4 flash --debug 1 CUL_V2_MAX.hex
Checking memory from 0x0 to 0x2F7F... Empty.
0% 100% Programming 0x2F80 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x2F80 bytes written into 0x7000 bytes memory (42.41%).
Jetzt bekomme ich den atmega32u4 unter lsusb aber anscheinend gar nicht mehr angezeigt:
Bus 001 Device 004: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 005: ID 1b1f:c00f
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Ist er ganz veschwunden???
Wenn ich den Stick abziehe, sieht das genauso aus:
Bus 001 Device 004: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 005: ID 1b1f:c00f
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Da kann ich leider nicht weiterhelfen, ich habe nur einen nanoCUL und zwei umgeflashte Cubes. Aber Du solltest dazu nochmal im CUL-Board (https://forum.fhem.de/index.php/board,47.0.html) nachfragen. Da bekommst Du wahrscheinlich eher Hilfe als hier im MAX-Board.
O.k., das probiere ich, vielen Dank.
Die Sache ist durch Eure Tips ja schon einige
Schritte weiter!
wenn du den [CULV3-OEM] bestellt hast,
Warum flascht du dann eine Software für V2
Zitatsudo dfu-programmer atmega32u4 flash --debug 1 CUL_V2_MAX.hex
die wäre richtig CUL_V3.hex
Sehr schön, danke!
Habe das device wieder und mit der richtigen Version geflasht.
Trotzdem ist das Device noch "disconnected".
Welches ist denn jetzt der richtigte tty btzw. die richtige DEVICE-definition?
lsusb sagt:
Bus 001 Device 006: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader
Ich muss passen, ich flash das Ding immer am Windows-PC mit dem Atmel-Tool... und mein lsusb bringt für den CUL
Bus 001 Device 005: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
Also nix mehr mit Bootloader. Irgendwie siehts für mich so aus, als wär die Firmware immer noch nicht ganz drauf und er würde in den Bootloader laufen, um genau diese zu bekommen, aber unter Linux hab ich das selber noch nie probiert, da kann ich nicht helfen.