Erste Schritte - HKVs auslesen

Begonnen von claudio-fhem, 17 Juli 2019, 11:00:48

Vorheriges Thema - Nächstes Thema

Beta-User

Du solltest dir bei IO-Devices angewöhnen, die nur zu ändern.

Und ja, es muß opened bzw. connected kommen.

Nur sicherheitshalber: Der user, unter dem FHEM läuft, darf auch auf USB-Schnittstellen zugreifen (usually: user fhem ist Mitglied in dialout). Sollte eigentlich so sein, wenn du den "Easy-Way" genommen hast.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

claudio-fhem

Ja, easy way wurde installiert auf dem Raspi. Wie soll ich die Berechtigung feststellen? Gibt es auf dem Raspi überhaupt einen User fhem?
Vielen Dank und Grüße!

claudio

Beta-User

"groups" ist dein Freund, und man kann auch den user anfügen. "groups fhem" sollte daher die gewünschte Auskunft liefern (Linux-Konsole).

Dasselbe sollte sich zeigen, wenn du in die Kommandzeile folgendes eingibst:
{qx(groups fhem)}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

cs-online

ähm, wie sieht denn deine Definition genau aus ? Einmal unten beim Device Raw Definition anklicken, bei mir sieht das so aus:

define nanoCUL2 CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9A1XJZZ-if00-port0@38400 3456

und da ist bei mir nach port0 ein @, bei dir sehe ich in den Internals da ein ":"
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

claudio-fhem

#34
Good catch mit dem "@"!

Jetzt habe ich Status "initialized"....

Mit

get myCUL raw C35

bekomme ich

0D / 13

und mit

get myCUL raw V

1.67. nanoCUL868
Vielen Dank und Grüße!

claudio

claudio-fhem

#35
Jetzt noch ein paar dependencies für WMBus installiert...

sudo apt-get install libdigest-crc-perl
sudo cpan -i Crypt::Mode::CBC Crypt::Mode:CTR


https://fhem.de/commandref.html#WMBUS

lief auch ohne Fehler durch, trotzdem gibt

rfmode = WMBus_T als attribute

CULnano Mode WMBus_T not supported

Da lese ich noch:

ZitatIn der culfw muss die Unterstützung des WMBUS-Protokolls aktiviert sein (#define HAS_MBUS). Bei einem CUL mit der Hardwareversion V4 ist das nicht der Fall.

https://wiki.fhem.de/wiki/WMBUS

Wie funktioniert denn das jetzt? :-D
Vielen Dank und Grüße!

claudio

Beta-User

Zitat von: claudio-fhem am 31 Juli 2019, 22:22:54
Wie funktioniert denn das jetzt? :-D
Hmm, klingt danach, als müßtest du die firmware selber bauen; der Modus scheint nicht mit einkompiliert worden zu sein. Startpunkt dafür wäre hier: http://culfw.de/culfw.html.

Kann sein, dass du auch zum Ziel kommst, wenn du das Teil mit einer aktuellen Signalduino-Firmware flashst (Achtung: k.A., ob das funktioniert, ist ungetestet und unrecherchiert!). Wäre aber einen Test wert, da es da fertige binaries gibt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

claudio-fhem

#37
Prima, Danke! Ja, hatte sowas befürchet nach einer raschen Suche gestern...

In welcher Datei wäre denn "define HAS_MBus" zu aktivieren, vor dem "make"?

Der Verkäufer meint, er hätte ich fertig gebaute Firmware mit MBus enabled, mal sehen wie ich drankomme und das dann aufspiele.

Grundsätzliche Frage: Ich mache das FW-Aufspielen besser auf einem (Debian) Notebook, als auf dem Raspi selbst, oder? :-)
Vielen Dank und Grüße!

claudio

Beta-User

Das müßte ich auch nachsehen, würde aber auf sowas wie boards.h tippen.

Auf welcher Plattform du das erledigst, bleibt dir überlassen; ich würde auch eher den Debian-Laptop nehmen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

cs-online

...ich hab das immer am Raspi gemacht, sonst alle anderen USB-Geräte abziehen, das Stresst weniger...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

claudio-fhem

#40
Die Beschreibung auf culfw.de ist so mittelgut in der Granularität. Hat da jemand etwas besseres bei der Hand?

Hardware ist ein "nano cul mit ftdi nano".

Also board.h in "Devices" -> CUL sieht so aus:

#ifndef _BOARD_H
#define _BOARD_H

// Feature definitions
#define BOARD_ID_STR            "CUL868"
#define BOARD_ID_USTR           L"CUL868"

#define MULTI_FREQ_DEVICE // available in multiple versions: 433MHz,868MHz
#define BOARD_ID_STR433         "CUL433"
#define BOARD_ID_USTR433        L"CUL433"

#define HAS_USB                  1
#define USB_BUFSIZE             64      // Must be a supported USB endpoint size
#define USB_MAX_POWER        100
#define HAS_FHT_80b                     // PROGMEM: 1374b, RAM: 90b
#define HAS_RF_ROUTER                   // PROGMEM: 1248b  RAM: 44b
#define RFR_FILTER                      // PROGMEM:   90b  RAM:  4b
#define HAS_HOERMANN
#define HAS_HOERMANN_SEND               // PROGMEM:  220
#define HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT // PROGMEM: 118b
#define HAS_CC1101_PLL_LOCK_CHECK_MSG // PROGMEM:  22b
#define HAS_CC1101_PLL_LOCK_CHECK_MSG_SW // PROGMEM:  22b

#undef  RFR_DEBUG                       // PROGMEM:  354b  RAM: 14b
#undef  HAS_FASTRF                      // PROGMEM:  468b  RAM:  1b

#if defined(CUL_V3_ZWAVE)
#  define CUL_V3
#endif

#if defined(CUL_V3) || defined(CUL_V4)
#  define HAS_FHT_8v                    // PROGMEM:  586b  RAM: 23b
#  define HAS_FHT_TF
#  define FHTBUF_SIZE          174      //                 RAM: 174b
#  define RCV_BUCKETS            4      //                 RAM: 25b * bucket
#  define FULL_CC1100_PA                // PROGMEM:  108b
#  define HAS_RAWSEND                   //
#  define HAS_ASKSIN                    // PROGMEM: 1314
#  define HAS_ASKSIN_FUP                // PROGMEM:   78
#  define HAS_MORITZ                    // PROGMEM: 1696
#  define HAS_ESA                       // PROGMEM:  286
#  define HAS_TX3                       // PROGMEM:  168
#  define HAS_INTERTECHNO               // PROGMEM: 1352
#  define HAS_TCM97001                  // PROGMEM:  264
#  define HAS_UNIROLL                   // PROGMEM:   92
#  define HAS_MEMFN                     // PROGMEM:  168
#  define HAS_SOMFY_RTS                 // PROGMEM: 1716
#  define HAS_BELFOX                    // PROGMEM:  214
#endif

#if defined(CUL_V4)
#  define HAS_ZWAVE                     // PROGMEM:  882
#  define TTY_BUFSIZE           64      // RAM: TTY_BUFSIZE*4
#endif

#if defined(CUL_V3)
#  define TTY_BUFSIZE          128      // RAM: TTY_BUFSIZE*4
#  define HAS_MBUS                      // PROGMEM: 2536
#  define MBUS_NO_TX                       // PROGMEM:  962
#  define HAS_RFNATIVE                  // PROGMEM:  580
#  define HAS_KOPP_FC                   // PROGMEM: 3370
#endif

#if defined(CUL_V3_ZWAVE)
#  define HAS_ZWAVE                     // PROGMEM:  882
#  undef HAS_MBUS
#  undef HAS_KOPP_FC
#  undef HAS_RFNATIVE
#  define LACROSSE_HMS_EMU              // PROGMEM: 2206
#  define HAS_EVOHOME
#endif


#ifdef CUL_V2
#  define TTY_BUFSIZE           48
#  define FHTBUF_SIZE           74
#  define RCV_BUCKETS            2
#  define RFR_SHADOW                    // PROGMEM: 10b    RAM: -(TTY_BUFSIZE+3)
#  define HAS_TX3
#  define NO_RF_DEBUG                   // squeeze out some bytes for hoermann_send
#  undef  HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT
#endif

#ifdef CUL_V2_HM
#  define CUL_V2
#  define HAS_ASKSIN
#  define TTY_BUFSIZE           64
#  define RCV_BUCKETS            2
#  undef  HAS_RF_ROUTER
#  undef  HAS_FHT_80b
#  define FHTBUF_SIZE            0
#  undef  BOARD_ID_STR
#  define BOARD_ID_STR            "CUL_HM"
#  undef  BOARD_ID_USTR
#  define BOARD_ID_USTR           L"CUL_HM"
#  define HAS_INTERTECHNO
#endif

#ifdef CUL_V2_MAX
#  define CUL_V2
#  define HAS_MORITZ
#  define TTY_BUFSIZE           64
#  define RCV_BUCKETS            2
#  undef  HAS_RF_ROUTER
#  undef  HAS_FHT_80b
#  define FHTBUF_SIZE            0
#  undef  BOARD_ID_STR
#  define BOARD_ID_STR            "CUL_MX"
#  undef  BOARD_ID_USTR
#  define BOARD_ID_USTR           L"CUL_MX"
#  define HAS_INTERTECHNO
#endif

// No features to define below

#include <avr/io.h>
#include <avr/power.h>

#if !defined(clock_prescale_set) && __AVR_LIBC_VERSION__  < 10701UL
#  warning "avr/power.h needs patching for prescaler functions to work."
#  warning "for the m32u4 add __AVR_ATmega32U4__ for cpu types on prescale block"
#  warning "for the m32u2 add __AVR_ATmega32U2__ for cpu types on prescale block"
#endif

#if defined(CUL_V3)      // not sure why libc is missing those ...
#  define PB0 PORTB0
#  define PB1 PORTB1
#  define PB2 PORTB2
#  define PB3 PORTB3
#  define PB6 PORTB6
#  define PD2 PORTD2
#  define PD3 PORTD3
#endif  // CUL_V3

#define SPI_PORT PORTB
#define SPI_DDR DDRB
#define SPI_SS PB0
#define SPI_MISO PB3
#define SPI_MOSI PB2
#define SPI_SCLK PB1

#if defined(CUL_V4)
#  define CC1100_CS_DDR SPI_DDR
#  define CC1100_CS_PORT        SPI_PORT
#  define CC1100_CS_PIN SPI_SS
#  define CC1100_OUT_DDR        DDRD
#  define CC1100_OUT_PORT       PORTD
#  define CC1100_OUT_PIN        PD3
#  define CC1100_IN_DDR         DDRD
#  define CC1100_IN_PORT        PIND
#  define CC1100_IN_PIN         PD2
#  define CC1100_INT INT2
#  define CC1100_INTVECT        INT2_vect
#  define CC1100_ISC ISC20
#  define CC1100_EICR           EICRA
#  define LED_DDR               DDRC
#  define LED_PORT              PORTC
#  define LED_PIN               PC5
#endif

#if defined(CUL_V3)
#  define CC1100_CS_DDR SPI_DDR
#  define CC1100_CS_PORT        SPI_PORT
#  define CC1100_CS_PIN SPI_SS
#  define CC1100_OUT_DDR        DDRD
#  define CC1100_OUT_PORT       PORTD
#  define CC1100_OUT_PIN        PD3
#  define CC1100_OUT_IN         PIND
#  define CC1100_IN_DDR DDRD
#  define CC1100_IN_PORT        PIND
#  define CC1100_IN_PIN         PD2
#  define CC1100_IN_IN          PIND
#  define CC1100_INT INT2
#  define CC1100_INTVECT        INT2_vect
#  define CC1100_ISC ISC20
#  define CC1100_EICR           EICRA
#  define LED_DDR               DDRE
#  define LED_PORT              PORTE
#  define LED_PIN               6
#endif

#if defined(CUL_V2)
#  define CC1100_CS_DDR DDRC
#  define CC1100_CS_PORT        PORTC
#  define CC1100_CS_PIN PC5
#  define CC1100_IN_DDR DDRC
#  define CC1100_IN_PORT        PINC
#  define CC1100_IN_PIN         PC7
#  define CC1100_OUT_DDR DDRC
#  define CC1100_OUT_PORT       PORTC
#  define CC1100_OUT_PIN        PC6
#  define CC1100_INT INT4
#  define CC1100_INTVECT        INT4_vect
#  define CC1100_ISC ISC40
#  define CC1100_EICR           EICRB
#  define LED_DDR               DDRC
#  define LED_PORT              PORTC
#  define LED_PIN               PC4
#endif

#if defined(CUL_V3)
#  define CUL_HW_REVISION "CUL_V3"
#elif defined(CUL_V4)
#  define CUL_HW_REVISION "CUL_V4"
#else
//#  define CUL_HW_REVISION "CUL_V2"    // No more mem for this feature
#endif

#define MARK433_PORT            PORTB
#define MARK433_PIN             PINB
#define MARK433_BIT             6
#define MARK915_PORT            PORTB
#define MARK915_PIN             PINB
#define MARK915_BIT             5

#endif // __BOARD_H__


wohin gehört jetzt das define HAS_WMBus? 8-)
Vielen Dank und Grüße!

claudio

Beta-User

Das mit der Hardware ist klar, hab's nicht nachgeschaut, aber prinzipiell sollte da auch ein Zweig nanoCUL exisiteren, also auch für den ATMega328 eine firmware gebaut werden, die man dann eben mit avrdude auf den Nano packt...

Vielleicht hilft dir die aculfw etwas weiter (die kann im Prinzip dasselbe, aber eventuell etwas mehr @433MHz, dafür sind die sourcen in github leichter zu durchforsten, Start z.B. hier: https://github.com/heliflieger/a-culfw/tree/master/culfw/Devices).

Zur Beruhigung: Wenn man sowas noch nie gemacht hat, ist das ein steiler Einstieg...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

claudio-fhem

#42
Ich flashe BIOSes und solche Sachen, mit Arduino und Konsorten hatte ich noch nix zu tun. Kompilieren von Source mache ich (wenn es sich nicht vermeiden lässt :-D )...

Gibt es einen Tippppp zu board.h ? :-)

In der Beschreibung auf culfw.de für Linux ist von avrdude gar nicht die Rede, nur dfu-prgrammer "make usbprogram" und geflasht ist der CUL....

http://culfw.de/culfw.html

Brauche ich den avrdude für flashen des nanoCUL am Debian Notebook?

Vielen Dank und Grüße!

claudio

Beta-User

 :) Macht schon einen kleinen Unterschied, ob man eine binary nach Anleitung draufbügelt oder die erst selbst erstellt und vorab konfiguriert, aber: auch das ist kein Hexenwerk.

Besonderer Service für Wenigsucher ( :P , damit kann man auch Helfer vergraulen...):
https://github.com/heliflieger/a-culfw/blob/master/culfw/Devices/nanoCUL/board.h, dort Zeile 101.

Du mußt vermutlich was anderes definieren, der 328 hat nur begrenzt Speicher. Würde "Moritz" nehmen (ist für MAX), oder das IT-Zeug (besser dafür einen Signalduino besorgen oder jedenfalls weitere Hardware, die das kann).

Vielleicht besorgst du dir auch einen MapleCUx, der ist mit der aculfw zu flashen und hat mehr Speicher und ggf. mehr Transceiver...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

claudio-fhem

Mist, ich hatte immer nach

#define HAS_WMBUS

gesucht und natürlich nichts gefunden... Ich brauche (mehr) Urlaub... :-)
Vielen Dank und Grüße!

claudio