NEWS
[gelöst]Can-Bus Adapter: keine Verbindung zur Junkers WP
-
Hallo Forum,
ich möchte den Can-Bus meiner Junkers Wärmepumpe Supraeco STM60-1 mit einem Raspberry3b und dem "Waveshare RS485 CAN HAT" https://www.amazon.de/gp/product/B07DNPFMRW/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 auslesen. Auf dem Raspberry habe ich hierfür Raspberry Pi OS Lite Bullseye 64Bit und IoBroker in aktuellster Variante neu installiert.
Die H- und L-Klemmen der Wärmepumpe habe ich mit den H-und L-Klemen des Can-Hat mit zwei verdrillten ca. 30cm kurzen Adern verbunden und an den Can-Hat Klemmen (H auf H und L auf L) angeschlossen und mit einem 120Ohm Widerstand terminiert. Die Terminierung in der Wärmepumpe habe ich deaktiviert.
Im Iobroker habe ich den Can-Bus Adapter installiert und den Can-Hat nach diesen Anleitungen von Cyrcode https://crycode.de/can-bus-am-raspberry-pi und https://www.pragmaticlinux.com/2021/10/can-communication-on-the-raspberry-pi-with-socketcan/ aktiviert.
In der IoBroker Can-Bus Instanz wird die Verbindung zum Can-Hat richtig angezeigt.
In Putty habe ich nun "candump can0" eingegeben. Es erfolgt nun jedoch keine Komminikation.
Die Junkers Can-Bus Geschwindigkeit soll 10Kbit sein. Diese habe ich hier eingetragensudo nano /etc/network/interface # CAN-Bus auto can0 iface can0 can static bitrate 100000
Auch diverse unterschiedliche Geschindigkeiten (19,2Kb, 20Kb, 100Kb, 500Kb) habe ich leider ohne Kommunikationserfolg ausprobiert.
In der Config-txt ist folgendes eingetragen:
sudo nano /boot/config.txt dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=6 dtoverlay=spi-bcm2835-overlay
Mit dem Befehl dmesg kommt:
pi@RaspWP:~ $ dmesg [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.15.61-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 [ 0.000000] random: crng init done [ 0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2 [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x000000001ec00000, size 256 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000000000000-0x000000003b3fffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000003b3fffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003b3fffff] [ 0.000000] On node 0, zone DMA: 19456 pages in unavailable ranges [ 0.000000] percpu: Embedded 28 pages/cpu s77272 r8192 d29224 u114688 [ 0.000000] pcpu-alloc: s77272 r8192 d29224 u114688 alloc=28*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: kernel page table isolation forced ON by KASLR [ 0.000000] CPU features: detected: Kernel page table isolation (KPTI) [ 0.000000] CPU features: detected: ARM erratum 843419 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 238896 [ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=Composite-1:720x480@60i vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=2a9e472d-02 rootfstype=ext4 fsck.repair=yes rootwait [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 665476K/970752K available (11520K kernel code, 1956K rwdata, 4140K rodata, 3840K init, 974K bss, 43132K reserved, 262144K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] ftrace: allocating 38040 entries in 149 pages [ 0.000000] ftrace: allocated 149 pages with 4 groups [ 0.000000] trace event string verifier disabled [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] Rude variant of Tasks RCU enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] Root IRQ handler: bcm2836_arm_irqchip_handle_irq [ 0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns [ 0.000001] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns [ 0.000363] Console: colour dummy device 80x25 [ 0.001284] printk: console [tty1] enabled [ 0.001367] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=76800) [ 0.001432] pid_max: default: 32768 minimum: 301 [ 0.001636] LSM: Security Framework initializing [ 0.001927] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.001994] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.003697] cgroup: Disabling memory control group subsystem [ 0.007599] rcu: Hierarchical SRCU implementation. [ 0.009098] EFI services will not be available. [ 0.009880] smp: Bringing up secondary CPUs ... [ 0.011434] Detected VIPT I-cache on CPU1 [ 0.011531] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.013380] Detected VIPT I-cache on CPU2 [ 0.013447] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] [ 0.015081] Detected VIPT I-cache on CPU3 [ 0.015138] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] [ 0.015370] smp: Brought up 1 node, 4 CPUs [ 0.015526] SMP: Total of 4 processors activated. [ 0.015559] CPU features: detected: 32-bit EL0 Support [ 0.015591] CPU features: detected: 32-bit EL1 Support [ 0.015625] CPU features: detected: CRC32 instructions [ 0.056610] CPU: All CPU(s) started at EL2 [ 0.056759] alternatives: patching kernel code [ 0.058750] devtmpfs: initialized [ 0.081321] Enabled cp15_barrier support [ 0.081403] Enabled setend support [ 0.081448] KASLR enabled [ 0.081727] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.081797] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.093699] pinctrl core: initialized pinctrl subsystem [ 0.094934] DMI not present or invalid. [ 0.095969] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.107097] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations [ 0.107630] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.109121] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.109311] audit: initializing netlink subsys (disabled) [ 0.109761] audit: type=2000 audit(0.108:1): state=initialized audit_enabled=0 res=1 [ 0.110672] thermal_sys: Registered thermal governor 'step_wise' [ 0.111003] cpuidle: using governor menu [ 0.111557] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.111864] ASID allocator initialised with 32768 entries [ 0.112124] Serial: AMBA PL011 UART driver [ 0.127342] bcm2835-mbox 3f00b880.mailbox: mailbox enabled [ 0.156972] raspberrypi-firmware soc:firmware: Attached to firmware from 2022-08-26T14:04:36, variant start [ 0.160998] raspberrypi-firmware soc:firmware: Firmware hash is 102f1e848393c2112206fadffaaf86db04e98326 [ 0.221213] bcm2835-dma 3f007000.dma: DMA legacy API manager, dmachans=0x1 [ 0.226949] vgaarb: loaded [ 0.227612] SCSI subsystem initialized [ 0.227951] usbcore: registered new interface driver usbfs [ 0.228069] usbcore: registered new interface driver hub [ 0.228188] usbcore: registered new device driver usb [ 0.228746] usb_phy_generic phy: supply vcc not found, using dummy regulator [ 0.229076] usb_phy_generic phy: dummy supplies not allowed for exclusive requests [ 0.229562] pps_core: LinuxPPS API ver. 1 registered [ 0.229599] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.229663] PTP clock support registered [ 0.231897] clocksource: Switched to clocksource arch_sys_counter [ 0.368710] VFS: Disk quotas dquot_6.6.0 [ 0.368891] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.369170] FS-Cache: Loaded [ 0.369503] CacheFiles: Loaded [ 0.370861] simple-framebuffer 3eaa9000.framebuffer: framebuffer at 0x3eaa9000, 0x151800 bytes [ 0.370915] simple-framebuffer 3eaa9000.framebuffer: format=a8r8g8b8, mode=720x480x32, linelength=2880 [ 0.377356] Console: switching to colour frame buffer device 90x30 [ 0.385849] simple-framebuffer 3eaa9000.framebuffer: fb0: simplefb registered! [ 0.404346] NET: Registered PF_INET protocol family [ 0.407819] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.412641] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) [ 0.419156] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.422713] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.426439] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) [ 0.430245] TCP: Hash tables configured (established 8192 bind 8192) [ 0.434157] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.437889] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.441948] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.446942] RPC: Registered named UNIX socket transport module. [ 0.450571] RPC: Registered udp transport module. [ 0.454188] RPC: Registered tcp transport module. [ 0.457627] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.461077] PCI: CLS 0 bytes, default 64 [ 0.467539] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available [ 0.474900] kvm [1]: IPA Size Limit: 40 bits [ 0.480159] kvm [1]: Hyp mode initialized successfully [ 1.740971] Initialise system trusted keyrings [ 1.744919] workingset: timestamp_bits=46 max_order=18 bucket_order=0 [ 1.759117] zbud: loaded [ 1.765207] FS-Cache: Netfs 'nfs' registered for caching [ 1.769470] NFS: Registering the id_resolver key type [ 1.772761] Key type id_resolver registered [ 1.775916] Key type id_legacy registered [ 1.779070] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 1.782133] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 1.786916] Key type asymmetric registered [ 1.789935] Asymmetric key parser 'x509' registered [ 1.792982] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247) [ 1.796502] io scheduler mq-deadline registered [ 1.799439] io scheduler kyber registered [ 1.820502] bcm2835-rng 3f104000.rng: hwrng registered [ 1.824497] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB) [ 1.832452] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 [ 1.854859] brd: module loaded [ 1.873246] loop: module loaded [ 1.877451] Loading iSCSI transport class v2.0-870. [ 1.887523] usbcore: registered new interface driver r8152 [ 1.890720] usbcore: registered new interface driver lan78xx [ 1.893777] usbcore: registered new interface driver smsc95xx [ 1.897392] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 2.628944] Core Release: 2.80a [ 2.631797] Setting default values for core params [ 2.634687] Finished setting default values for core params [ 2.838055] Using Buffer DMA mode [ 2.840893] Periodic Transfer Interrupt Enhancement - disabled [ 2.843791] Multiprocessor Interrupt Enhancement - disabled [ 2.846769] OTG VER PARAM: 0, OTG VER FLAG: 0 [ 2.849766] Dedicated Tx FIFOs mode [ 2.857296] WARN::dwc_otg_hcd_init:1074: FIQ DMA bounce buffers: virt = ffffffc008469000 dma = 0x00000000df000000 len=9024 [ 2.865703] FIQ FSM acceleration enabled for : Non-periodic Split Transactions Periodic Split Transactions High-Speed Isochronous Endpoints Interrupt/Control Split Transaction hack enabled [ 2.879248] dwc_otg: Microframe scheduler enabled [ 2.879319] WARN::hcd_init_fiq:497: MPHI regs_base at ffffffc00806d000 [ 2.884448] dwc_otg 3f980000.usb: DWC OTG Controller [ 2.887077] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 [ 2.889830] dwc_otg 3f980000.usb: irq 74, io mem 0x00000000 [ 2.892518] Init: Port Power? op_state=1 [ 2.895174] Init: Power Port (0) [ 2.898368] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15 [ 2.903935] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.906893] usb usb1: Product: DWC OTG Controller [ 2.909823] usb usb1: Manufacturer: Linux 5.15.61-v8+ dwc_otg_hcd [ 2.912778] usb usb1: SerialNumber: 3f980000.usb [ 2.916748] hub 1-0:1.0: USB hub found [ 2.919649] hub 1-0:1.0: 1 port detected [ 2.923678] dwc_otg: FIQ enabled [ 2.923697] dwc_otg: NAK holdoff enabled [ 2.923712] dwc_otg: FIQ split-transaction FSM enabled [ 2.923733] Module dwc_common_port init [ 2.924605] usbcore: registered new interface driver uas [ 2.927558] usbcore: registered new interface driver usb-storage [ 2.930991] mousedev: PS/2 mouse device common for all mice [ 2.939670] sdhci: Secure Digital Host Controller Interface driver [ 2.942457] sdhci: Copyright(c) Pierre Ossman [ 2.945953] sdhci-pltfm: SDHCI platform and OF driver helper [ 2.952461] ledtrig-cpu: registered to indicate activity on CPUs [ 2.956258] hid: raw HID events driver (C) Jiri Kosina [ 2.959318] usbcore: registered new interface driver usbhid [ 2.962190] usbhid: USB HID core driver [ 2.965486] ashmem: initialized [ 2.976608] NET: Registered PF_PACKET protocol family [ 2.979599] Key type dns_resolver registered [ 2.984148] registered taskstats version 1 [ 2.986855] Loading compiled-in X.509 certificates [ 2.990585] Key type ._fscrypt registered [ 2.993334] Key type .fscrypt registered [ 2.995965] Key type fscrypt-provisioning registered [ 3.018420] uart-pl011 3f201000.serial: cts_event_workaround enabled [ 3.021215] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 99, base_baud = 0) is a PL011 rev2 [ 3.032164] Indeed it is in host mode hprt0 = 00021501 [ 3.032286] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer [ 3.038178] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver [ 3.043747] mmc-bcm2835 3f300000.mmcnr: mmc_debug:0 mmc_debug2:0 [ 3.046600] mmc-bcm2835 3f300000.mmcnr: DMA channel allocated [ 3.076565] sdhost: log_buf @ 00000000e6645ca4 (c2693000) [ 3.130148] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) [ 3.158635] of_cfs_init [ 3.161704] of_cfs_init: OK [ 3.166607] Waiting for root device PARTUUID=2a9e472d-02... [ 3.196177] mmc0: host does not support reading read-only switch, assuming write-enable [ 3.202779] mmc0: new high speed SDHC card at address 0007 [ 3.207623] mmcblk0: mmc0:0007 SD32G 29.0 GiB [ 3.216410] mmcblk0: p1 p2 [ 3.220400] mmcblk0: mmc0:0007 SD32G 29.0 GiB [ 3.224015] usb 1-1: new high-speed USB device number 2 using dwc_otg [ 3.227176] Indeed it is in host mode hprt0 = 00001101 [ 3.252461] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none. [ 3.258669] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. [ 3.268622] mmc1: new high speed SDIO card at address 0001 [ 3.272414] devtmpfs: mounted [ 3.286314] Freeing unused kernel memory: 3840K [ 3.289612] Run /sbin/init as init process [ 3.292681] with arguments: [ 3.292696] /sbin/init [ 3.292711] with environment: [ 3.292723] HOME=/ [ 3.292737] TERM=linux [ 3.440569] usb 1-1: New USB device found, idVendor=0424, idProduct=9514, bcdDevice= 2.00 [ 3.446908] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.451639] hub 1-1:1.0: USB hub found [ 3.455098] hub 1-1:1.0: 5 ports detected [ 3.747976] usb 1-1.1: new high-speed USB device number 3 using dwc_otg [ 3.848520] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00, bcdDevice= 2.00 [ 3.854894] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.861588] smsc95xx v2.0.0 [ 4.047190] systemd[1]: System time before build time, advancing clock. [ 4.177360] SMSC LAN8700 usb-001:003:01: attached PHY driver (mii_bus:phy_addr=usb-001:003:01, irq=POLL) [ 4.185702] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:83:a3:30 [ 4.313556] NET: Registered PF_INET6 protocol family [ 4.320043] Segment Routing with IPv6 [ 4.323751] In-situ OAM (IOAM) with IPv6 [ 4.405488] systemd[1]: systemd 247.3-7+deb11u1 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) [ 4.417929] systemd[1]: Detected architecture arm64. [ 4.454251] systemd[1]: Set hostname to <RaspWP>. [ 5.547793] systemd[1]: Queued start job for default target Multi-User System. [ 5.558533] systemd[1]: Created slice system-getty.slice. [ 5.568632] systemd[1]: Created slice system-modprobe.slice. [ 5.578362] systemd[1]: Created slice system-systemd\x2dfsck.slice. [ 5.587605] systemd[1]: Created slice User and Session Slice. [ 5.596297] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ 5.604769] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ 5.614193] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point. [ 5.626323] systemd[1]: Reached target Local Encrypted Volumes. [ 5.634787] systemd[1]: Reached target Paths. [ 5.642666] systemd[1]: Reached target Slices. [ 5.650463] systemd[1]: Reached target Swap. [ 5.659576] systemd[1]: Listening on Syslog Socket. [ 5.668617] systemd[1]: Listening on fsck to fsckd communication Socket. [ 5.677150] systemd[1]: Listening on initctl Compatibility Named Pipe. [ 5.687017] systemd[1]: Listening on Journal Audit Socket. [ 5.696281] systemd[1]: Listening on Journal Socket (/dev/log). [ 5.705620] systemd[1]: Listening on Journal Socket. [ 5.720959] systemd[1]: Listening on udev Control Socket. [ 5.730131] systemd[1]: Listening on udev Kernel Socket. [ 5.738877] systemd[1]: Condition check resulted in Huge Pages File System being skipped. [ 5.751494] systemd[1]: Mounting POSIX Message Queue File System... [ 5.766113] systemd[1]: Mounting RPC Pipe File System... [ 5.781116] systemd[1]: Mounting Kernel Debug File System... [ 5.796259] systemd[1]: Mounting Kernel Trace File System... [ 5.805120] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. [ 5.825034] systemd[1]: Starting Restore / save the current clock... [ 5.841415] systemd[1]: Starting Set the console keyboard layout... [ 5.857856] systemd[1]: Starting Create list of static device nodes for the current kernel... [ 5.878229] systemd[1]: Starting Load Kernel Module configfs... [ 5.894951] systemd[1]: Starting Load Kernel Module drm... [ 5.911269] systemd[1]: Starting Load Kernel Module fuse... [ 5.926386] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. [ 5.941781] systemd[1]: Starting File System Check on Root Device... [ 5.965570] systemd[1]: Starting Journal Service... [ 5.991459] systemd[1]: Starting Load Kernel Modules... [ 6.018589] systemd[1]: Starting Coldplug All udev Devices... [ 6.057534] fuse: init (API version 7.34) [ 6.075769] systemd[1]: Mounted POSIX Message Queue File System. [ 6.085202] systemd[1]: Mounted RPC Pipe File System. [ 6.094842] systemd[1]: Mounted Kernel Debug File System. [ 6.108283] systemd[1]: Mounted Kernel Trace File System. [ 6.131425] systemd[1]: Finished Restore / save the current clock. [ 6.144094] systemd[1]: Finished Create list of static device nodes for the current kernel. [ 6.158731] systemd[1]: modprobe@configfs.service: Succeeded. [ 6.171297] systemd[1]: Finished Load Kernel Module configfs. [ 6.183080] systemd[1]: modprobe@drm.service: Succeeded. [ 6.189310] systemd[1]: Finished Load Kernel Module drm. [ 6.200507] systemd[1]: modprobe@fuse.service: Succeeded. [ 6.206865] systemd[1]: Finished Load Kernel Module fuse. [ 6.218139] systemd[1]: Finished Load Kernel Modules. [ 6.237324] systemd[1]: Mounting FUSE Control File System... [ 6.253474] systemd[1]: Mounting Kernel Configuration File System... [ 6.281119] systemd[1]: Started File System Check Daemon to report status. [ 6.301318] systemd[1]: Starting Apply Kernel Variables... [ 6.319609] systemd[1]: Mounted FUSE Control File System. [ 6.341330] systemd[1]: Mounted Kernel Configuration File System. [ 6.418210] systemd[1]: Finished Apply Kernel Variables. [ 6.432581] systemd[1]: Finished File System Check on Root Device. [ 6.444571] systemd[1]: Starting Remount Root and Kernel File Systems... [ 6.491343] systemd[1]: Started Journal Service. [ 6.716346] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null). Quota mode: none. [ 6.830182] systemd-journald[138]: Received client request to flush runtime journal. [ 6.900966] systemd-journald[138]: File /var/log/journal/c1002defdbac4317828ae94cf218bffb/system.journal corrupted or uncleanly shut down, renaming and replacing. [ 13.523206] mc: Linux media interface: v0.10 [ 13.549660] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned. [ 13.568749] bcm2835_vc_sm_cma_probe: Videocore shared memory driver [ 13.568806] [vc_sm_connected_init]: start [ 13.576318] [vc_sm_connected_init]: installed successfully [ 13.652912] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned. [ 13.661742] bcm2835_audio bcm2835_audio: card created with 8 channels [ 13.684689] videodev: Linux video capture interface: v2.00 [ 13.813804] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 13.830520] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 13.849248] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 13.851344] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned. [ 13.875672] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned. [ 13.878028] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13 [ 13.878683] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14 [ 13.879242] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15 [ 13.879722] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16 [ 13.879768] bcm2835-isp bcm2835-isp: Register output node 0 with media controller [ 13.879802] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller [ 13.879829] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller [ 13.879856] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller [ 13.884133] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned. [ 13.893301] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20 [ 13.895556] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21 [ 13.897927] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22 [ 13.898510] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23 [ 13.898559] bcm2835-isp bcm2835-isp: Register output node 0 with media controller [ 13.898592] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller [ 13.898638] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller [ 13.898666] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller [ 13.899002] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp [ 13.903120] bcm2835-codec bcm2835-codec: Device registered as /dev/video10 [ 13.903210] bcm2835-codec bcm2835-codec: Loaded V4L2 decode [ 13.918957] bcm2835-codec bcm2835-codec: Device registered as /dev/video11 [ 13.919523] bcm2835-codec bcm2835-codec: Loaded V4L2 encode [ 13.930501] bcm2835-codec bcm2835-codec: Device registered as /dev/video12 [ 13.930589] bcm2835-codec bcm2835-codec: Loaded V4L2 isp [ 13.934510] bcm2835-codec bcm2835-codec: Device registered as /dev/video18 [ 13.934594] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx [ 13.938805] bcm2835-codec bcm2835-codec: Device registered as /dev/video31 [ 13.938890] bcm2835-codec bcm2835-codec: Loaded V4L2 encode_image [ 14.417980] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 14.508601] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 14.538212] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid [ 14.966452] brcmfmac: F1 signature read @0x18000000=0x1541a9a6 [ 14.987155] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1 [ 14.988186] usbcore: registered new interface driver brcmfmac [ 14.991774] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin failed with error -2 [ 15.040871] checking generic (3eaa9000 151800) vs hw (0 ffffffffffffffff) [ 15.040918] fb0: switching to vc4 from simple [ 15.095317] Console: switching to colour dummy device 80x25 [ 15.099573] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4]) [ 15.105099] Registered IR keymap rc-cec [ 15.105434] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0 [ 15.131586] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input0 [ 15.239033] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1 [ 15.239242] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1 [ 15.254255] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Jul 19 2021 03:24:18 version 7.45.98 (TOB) (56df937 CY) FWID 01-8e14b897 [ 15.503477] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4]) [ 15.508190] CAN device driver interface [ 15.510076] Registered IR keymap rc-cec [ 15.510433] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0 [ 15.510811] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input1 [ 15.602224] mcp251x spi0.0 can0: MCP2515 successfully initialized. [ 15.611230] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4]) [ 15.627579] Registered IR keymap rc-cec [ 15.628893] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0 [ 15.629308] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input2 [ 15.862021] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4]) [ 15.868116] Registered IR keymap rc-cec [ 15.869762] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0 [ 15.870763] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input3 [ 15.934562] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops [vc4]) [ 15.935241] vc4-drm soc:gpu: bound 3f004000.txp (ops vc4_txp_ops [vc4]) [ 15.936161] vc4-drm soc:gpu: bound 3f206000.pixelvalve (ops vc4_crtc_ops [vc4]) [ 15.936706] vc4-drm soc:gpu: bound 3f207000.pixelvalve (ops vc4_crtc_ops [vc4]) [ 15.937372] vc4-drm soc:gpu: bound 3f807000.pixelvalve (ops vc4_crtc_ops [vc4]) [ 15.937720] vc4-drm soc:gpu: bound 3fc00000.v3d (ops vc4_v3d_ops [vc4]) [ 15.998603] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 0 [ 16.000268] vc4-drm soc:gpu: [drm] Cannot find any crtc or sizes [ 16.357176] uart-pl011 3f201000.serial: no DMA platform data [ 16.582190] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS [ 16.987775] 8021q: 802.1Q VLAN Support v1.8 [ 17.321913] mcp251x spi0.0 can0: bitrate error 0.1% [ 17.376301] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready [ 17.750996] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup [ 17.801093] smsc95xx 1-1.1:1.0 eth0: Link is Down [ 19.969046] smsc95xx 1-1.1:1.0 eth0: Link is Up - 100Mbps/Full - flow control off [ 19.969112] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 21.061730] Bluetooth: Core ver 2.22 [ 21.061927] NET: Registered PF_BLUETOOTH protocol family [ 21.061941] Bluetooth: HCI device and connection manager initialized [ 21.061983] Bluetooth: HCI socket layer initialized [ 21.061999] Bluetooth: L2CAP socket layer initialized [ 21.062037] Bluetooth: SCO socket layer initialized [ 21.080069] Bluetooth: HCI UART driver ver 2.3 [ 21.080106] Bluetooth: HCI UART protocol H4 registered [ 21.080217] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 21.080570] Bluetooth: HCI UART protocol Broadcom registered [ 21.802201] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 21.802231] Bluetooth: BNEP filters: protocol multicast [ 21.802257] Bluetooth: BNEP socket layer initialized [ 21.828830] NET: Registered PF_ALG protocol family [ 26.080896] vc4-drm soc:gpu: [drm] Cannot find any crtc or sizes [ 33.759988] cam-dummy-reg: disabling [ 56.420694] can: controller area network core [ 56.420825] NET: Registered PF_CAN protocol family [ 56.437581] can: raw protocol
Nach tagelanger erfolgloser Fehlersuche wende ich mich nun an euch.
Warum bekomme ich keine Kommunikation aufgebaut?LG
emblitz -
@emblitz Du hast in der Datei
/boot/config.txt
den falschen Interrupt für das CAN Hat drin. Das müsste der Pin 25 sein, also:dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25
-
@crycode Vielen Dank für deine schnelle Reaktion!
Ich bin der Meinung, dass ich die "25" bereits auch aus völliger Verzweifelung und Unwissenheit ausprobiert habe.
Ich werde es nacher aber nochmals probieren und melde mich nachher .LG emblitz
-
Leider keine Verbesserung mit Port 25.
unter
candump can0
tut sich nichts..
Die config.txt rufe ich mit
sudo nano /boot/config.txt
auf.
Sie sieht so aus:pi@RaspWP:~ sudo nano /boot/config.txtxt GNU nano 5.4 /boot/config.txt # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25 dtoverlay=spi-bcm2835-overlay # Uncomment this to enable infrared communication. #dtoverlay=gpio-ir,gpio_pin=17 #dtoverlay=gpio-ir-tx,gpio_pin=18 # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835) dtparam=audio=on # Automatically load overlays for detected cameras camera_auto_detect=1 # Automatically load overlays for detected DSI displays display_auto_detect=1 # Enable DRM VC4 V3D driver dtoverlay=vc4-kms-v3d max_framebuffers=2 # Run in 64-bit mode arm_64bit=1 # Disable compensation for displays with overscan disable_overscan=1 [cm4] # Enable host mode on the 2711 built-in XHCI USB controller. # This line should be removed if the legacy DWC2 controller is required # (e.g. for USB device mode) or if USB support is not required. otg_mode=1 [all] [pi4] # Run as fast as firmware / board allows arm_boost=1 [all]
Eventl. kannst du kurz checken ob das so i.O. ist ?.
LG emblitz
-
@emblitz Sieht soweit erstmal gut aus.
Was wie sieht die Ausgabe vonip -details -statistics link show can0
aus? -
@crycode sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
ip -details -statistics link show can0
Hallo crycode,
die Antwort ist:
pi@RaspWP:~ $ ip -details -statistics link show can0 4: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10 link/can promiscuity 0 minmtu 0 maxmtu 0 can state ERROR-PASSIVE restart-ms 0 bitrate 19230 sample-point 0.846 tq 4000 prop-seg 5 phase-seg1 5 phase-seg2 2 sjw 1 mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1 clock 6000000 re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 1 1 0 numtx queues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 RX: bytes packets errors dropped missed mcast 0 0 0 2 0 0 TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0
LG
emblitz -
@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
can state ERROR-PASSIVE restart-ms 0
Dem ERROR-PASSIVE nach, stimmt irgendwas auf dem Bus nicht. Wenn der CAN-Controller zu vieler Fehler erkennt, dann geht er selbst in den ERROR-PASSIVE Modus, um eine Störung des Bus zu verhindern. Dabei kann er noch empfangen, aber nichts mehr senden.
-
@crycode Danke für die Auswertung und die Fehleranalyse. Ich möchte auch nicht auf dem Bus schreiben sondern nur lesen. Genau das funktioniert ja nicht.
Leider habe ich keinen Plan wie ich mich einer Lösung nähern kann.
Hast du noch eine Idee?
LG emblitz -
@emblitz Auch wenn du nur lesen möchtest, ist "ERROR-PASSIVE" nicht gut und deutet auf Probleme hin.
Überprüfe am besten noch mal alle Verkablungen, Bitrate etc.
Eventuell hilft auch eine Masseverbindung (GND) zwischen der Wärmepumpenelektronik und dem CAN-Hat. -
@crycode
Hallo,
ich bin nun einen Riesenschritt weitergekommen.
Dein Tipp mit der GND-Leitung zwischen einem GND-Pin des Raspberrys und dem GND des Can-Busses der Heizung habe ich befolgt und mit verschiedenen üblichen Can-Bus Geschwindigkeiten experinentiert.
Nachdem ich die Junkers Can-Busgeschwindigkeit im Raspberry auf 125000 Bit eingestellt habe, hat es endlich funktioniert !
Ich hoffe es hilft anderen Lesern.
Die Datenpunkte werden auch in den IOBroker-Objekten angelegt.
Bis hierhin ein dickes Dankeschön für die Hilfe!Der Busmitschnitt sieht nun so aus:
pi@RaspWP:~ $ candump can0 can0 00080060 [1] 00 can0 08074270 [1] 01 can0 00028270 [1] 00 can0 08078270 [1] 00 can0 00080060 [1] 00 can0 00090270 [1] 56 can0 0807C270 [1] 01 can0 09FFC270 [2] 00 8D can0 00054270 [1] 00 can0 00080060 [1] 00 can0 08000270 [2] 01 C9 can0 0004C270 [1] 00 can0 08004270 [2] 02 71 can0 00048270 [1] 00 can0 00080060 [1] 00 can0 08008270 [2] 01 36 can0 00044270 [1] 00 can0 0800C270 [2] 03 FF can0 00080060 [1] 00 can0 08010270 [2] 01 BE can0 00040270 [1] 00 can0 08014270 [2] 01 3B can0 0003C270 [1] 00 can0 00080060 [1] 00 can0 08018270 [2] 01 76 can0 00038270 [1] 01 can0 0801C270 [2] 02 80 can0 00080060 [1] 00 can0 00034270 [1] 00 can0 08020270 [2] 02 6A can0 001D8431 [1] 01 can0 08058270 [1] 01 can0 09FFFFF0 [4] 03 00 06 00 can0 00030270 [1] 01 can0 00080060 [1] 00 can0 0805C270 [1] 01 can0 0002C270 [1] 00 can0 08060270 [1] 00 can0 00028270 [1] 00 can0 00080060 [1] 00 can0 08064270 [1] 00 can0 08010270 [2] 01 BF can0 00090270 [1] 56 can0 08068270 [1] 00 can0 00080060 [1] 00 can0 0806C270 [1] 01 can0 00054270 [1] 00 can0 08070270 [1] 00 can0 0004C270 [1] 00 can0 00080060 [1] 00 can0 08074270 [1] 01 can0 00048270 [1] 00 can0 08078270 [1] 00 can0 00080060 [1] 00 can0 00044270 [1] 00 can0 0807C270 [1] 01 can0 09FFC270 [2] 00 8D can0 00040270 [1] 00 can0 08020270 [2] 02 69 can0 00080060 [1] 00 can0 08000270 [2] 01 C9 can0 0003C270 [1] 00 can0 08004270 [2] 02 71 can0 00038270 [1] 01 can0 00080060 [1] 00 can0 08008270 [2] 01 36 can0 08018270 [2] 01 77 can0 00034270 [1] 00 can0 0800C270 [2] 03 FF can0 0801C270 [2] 02 7F can0 001D8431 [1] 01 can0 00080060 [1] 00 can0 08010270 [2] 01 BF can0 09FFFFF0 [4] 03 00 06 00 can0 00030270 [1] 01 can0 08014270 [2] 01 3B can0 0002C270 [1] 00 can0 00080060 [1] 00 can0 08018270 [2] 01 77 can0 00028270 [1] 00 can0 0801C270 [2] 02 7F can0 00080060 [1] 00 can0 00090270 [1] 56 can0 08020270 [2] 02 69 can0 08058270 [1] 01 can0 00054270 [1] 00 can0 00080060 [1] 00 can0 0805C270 [1] 01 can0 0004C270 [1] 00 can0 08060270 [1] 00 can0 00048270 [1] 00 can0 00080060 [1] 00 can0 08064270 [1] 00 can0 00044270 [1] 00 can0 08068270 [1] 00 can0 00080060 [1] 00 can0 0806C270 [1] 01 can0 00040270 [1] 00 can0 08070270 [1] 00 can0 0003C270 [1] 00 can0 00080060 [1] 00 can0 08074270 [1] 01 can0 00038270 [1] 01 can0 08078270 [1] 00 can0 00034270 [1] 00 can0 00080060 [1] 00 can0 0807C270 [1] 01 can0 001D8431 [1] 01
Kannst du mir kurz mitteilen, ob der Mitschnitt grundsätzlich so plausibel ist?
Hast du einen Tipp für die Vorgehensweise zum Zuordnen der Can-Bus Adressen zu den im Junkers-Heizungsdisplay angezeigten Funktionen bzw. Temperaturen?
LG
emblitz -
@emblitz Ob das plausibel ist, kann ich dir leider nicht sagen, da ich nicht weiß, was für Nachrichten auf dem Bus unterwegs sein müssten. Aber es wird zumindest etwas empfangen mit unterschiedlichen Nachrichten-IDs und -Inhalten. Das sieht gut aus.
Am besten suchst du im Netz, ob du eine Auflistung der Nachrichten und deren Bedeutung findest.
Alternativ bleibt nur einen Dump mitzuloggen und dabei gezielt Aktionen an der Steuerung auszulösen. Über die Zeitpunkte wann man was gemacht hat und dazu die in Frage kommenden Daten aus dem Dump sollte sich schon etwas ableiten lassen.
Die Daten-Bytes im Dump sind in hex-Schreibweise. Vielleicht bekommt man da schon ein paar Temperaturen durch einfaches Umrechnen und vergleichen raus. -
@crycode
Hallo,vielen Dank für die Rückmeldung.
Im Netz habe ich leider keine Zuordnung gefunden und möchte diese daher gern selbst erstellen.
Ich logge hierfür alle möglichen Datenpunkte deines Adapters in der History mit und habe alle Datenpunkte in ein Flot-Diagramm geworfen um überhaupt zu sehen, was wann in Anhängingkeit z.B. der Leistungsmessung der WP über Mod-Bus oder dem Verlauf der Aussentemperatur etc. passiert.Leider werden die Grafen in den Flot-Trends gar nicht dargestellt.
Ich vermute, dass es mit den eckigen Klammern vor und hinter dem Wert der Objektdatenpunkte deines Adapters zusammenhängt.Wie bekomme ich diese eckigen Klammern weg?
Ich habe versucht mit dem Parser zu arbeiten, weil er die Werte ohne eckige Klammern darstellt, allerdings werden dann die Werte auf die Zahl vor dem Komma aufgerundet. Ich kann dann natürlich keine Veränderungen mehr sehen.
Wenn mir gelingt, die Werte im Flot-Trend abzubilden, sollte die Zuordnung der Datenpunkte um einiges einfacher sein.
Bestimmt hast du hierfür auch eine Lösung ?Eine weitere Frage habe ich noch:
Bei der Kontolle der Werte der Datenpunkte deines Adapters ist mir aufgefallen, dass die Werte scheinbar nicht von hex nach dez umgerechent werden?
Z.B. habe ich den Datenpunkt 08004270 mit "candump can0" im Terminal mit 02 4F geloggt. Gem. Windowsrechner müsste das dann 591 ergeben. Im Daptenpunkt wird aber 2,79 eingetragen.
Kannst du mir bitte auch hier auf die Sprüge helfen, welchen Gedankenfehler ich mache?LG
emblitz -
@emblitz Die Werte in den Eckigen Klammern sind auch erst mal nur die Rohdaten, sprich die Werte der einzelnen Bytes aus den Daten der CAN-Nachricht.
Beispiel:[1,6]
heißt in Byte 0 der Nachricht stand eine 1 und in Byte 1 eine 6. Diese musst du in eine Zahl umwandeln.Bei 2 Byte würde ich auf einen 16 Bit Integer Wert tippen (1 Byte = 8 Bit).
Also bleibt für den Parser als Datentypint16 BE
,int16 LE
,uint16 BE
oderuint16 LE
.
int
sind Ganzzahlen mit Vorzeichen (+ oder -),uint
sind vorzeichenlose Ganzzahlen (nur +). Die16
steht in dem Fall für 16 Bit (2 Byte).int16
kann von Werte zwischen -32768 und 32767 annehmen.uint16
von 0 bis 65535.
BE
undLE
geben die Byte-Reihenfolge an. Oftmals wirdBE
genutzt, kann aber auchLE
sein.[1,6]
wäre als...int16BE
262int16LE
1537uint16BE
262uint16LE
1537
Zum Testen kannst du für eine Nachricht auch mehrere Parser mit den verschiedenen Datentypen anlegen und damit gleich mehrfach gucken ob irgendwo was sinnvolles raus kommt.
Kann natürlich auch sein, dass sich die Werte gar nicht so einfach aus den Rohdaten lesen lassen, sondern man ggf. einzelne Bits beachten muss oder so...
@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
Datenpunkt 08004270 mit "candump can0" im Terminal mit 02 4F geloggt. Gem. Windowsrechner müsste das dann 591 ergeben. Im Daptenpunkt wird aber 2,79 eingetragen.
Das hängt damit zusammen, dass die beiden Bytes einzeln betrachtet werden. Das Komma ist in der Darstellung erst mal nur der "Trenner der Bytes".
02 (hex) = 2 (dez)
4F (hex) = 79 (dez)Die Umrechnung vom Windows-Rechner wäre in dem Fall wie das Lesen als
uint16BE
. -
@crycode
Wow, vielen Dank für die Aufklärung.
Jetzt ist bon ich im einiges schlauer und kenne die Zusammenhänge.
Ich hatte immer die Zahlen in den eckigen Klammern vergeblich in meinem Heizungsdisplay gesucht.
Nochmals tausend Dank für die kompetente Hilfe.
Wenn ich die Codes entschlüsselt habe stelle ich sie gern hier zur Verfügung..LG
emblitz -
@crycode
Hallo crycode,ich habe für jede Can-Nachricht d.h. für jeden Hexwert vier Parser mit int16 BE, int16 LE, uint16 BE und uint16 LE erstellt.
Dies sind die einzigen brauchbaren Datentypen aus denen Dezimalzahlen hervorgehen.
Funktionierendes Beispiel:
Leider komme ich bei keinem der Parser-Dezimalwerte auf einen Wert, welcher in dem Heizungsdisplay angezeigt wird.
Ich habe die Werte halbiert und gezehnelt sowie verdoppelt usw.Frage 1:
Du hattest geschrieben, dass es auch möglich sein kann, dass nur einzelne Bytes in der Heizung verwendet werden.
Wie kann ich im Parser z.B. nur das zweite Byte berechnen lassen?Frage 2:
Bei einigen Hexwerten scheint die Berechnung scheinbar nicht zu funktioniern, obwohl ich alle Can-Nachrichten mit den o.g. Datentypen im Parser ( int16 BE, int16 LE, uint16 BE und uint16 LE) identisch umrechnen lasse.
Nicht funktionierendes Beispiel:
Hast du dafür eine Erklärung?Die Sache gestaltet sich schwerer als gedacht, weil ich trotz intensiver Recherche vermutl. noch immer ein Verständnisproblem habe.
LG
emblitz -
@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
Du hattest geschrieben, dass es auch möglich sein kann, dass nur einzelne Bytes in der Heizung verwendet werden.
Wie kann ich im Parser z.B. nur das zweite Byte berechnen lassen?Um nur ein Byte auslesen zu lassen, kannst du einen
int8
oderuint8
Parser nutzen. Dazu dann den Offset entsprechend setzen (Offset 0 = 1. Byte, 1 = 2. Byte, etc.). Da bekommst du dann Werte von -128 bis 127 bzw. 0 bis 255 raus.Weiterhin kannst du einzelne Bits mit dem
boolean
Parser auslesen. Dazu musst du dann über die Bitmaske festlegen, welche Bits du auslesen willst. Für alle 8 Bit eines Bytes einzeln bräuchtest du dann also 8 boolean-Parser.@emblitz sagte in Can-Bus Adapter: keine Verbindung zur Junkers Wärmepumpe:
Bei einigen Hexwerten scheint die Berechnung scheinbar nicht zu funktioniern, obwohl ich alle Can-Nachrichten mit den o.g. Datentypen im Parser ( int16 BE, int16 LE, uint16 BE und uint16 LE) identisch umrechnen lasse.
Wurden die entsprechenden Nachrichten vielleicht nach dem Anlegen der Parser noch nicht wieder empfangen? Die Parser arbeiten nur beim Empfangen der Nachricht und nicht im Nachhinein.
Ansonsten mal ins Log schauen, ob dort irgendwelche Fehler gemeldet werden.
Wie bereits geschrieben: Am besten mal versuchen über den Zeitpunkt die Nachrichten zuordnen zu können. Also z.B. beobachten wann sich eine Temperatur in der Anzeige ändert und passend zu dem Zeitpunkt die CAN-Nachricht finden. Dann wüsste man zumindest schon mal, dass in Nachricht xyz in irgendeiner Form diese Temperatur drin stecken muss.
Vielleicht kannst du auch einfach mal (anonym) den Support von Junkers anschreiben und fragen, ob sie Infos zu dem Protokoll preisgeben. Mehr als nein sagen können sie ja nicht.
-
@crycode
Perfekt, wird heute Abend ausprobiert.Das die Datenpunkte von der Heizung nicht aktualisiert werden, hatte ich auch schon vermutet. Ich hatte bislang immer den Raspberry neu gestartet, damit er die bestehenden Werte der Datenpunkte neu berechnet. Das hat aber nicht funktioniert Müsste sich vielleicht ändern, wenn ich die Heizung neu starte,
Wir immer ein dickes Dankeschön für deine Mühe!
LG emblitz
-
@emblitz @crycode, klasse Fred hier da muss ich mich direkt ranhängen, da bei uns gerade eine Bosch Compress 7800i LW in Betrieb gegangen ist und mir Ähnliches vorschwebt. Ich gehe auch davon aus, dass sich die CAN Protokolle von Bosch u Junkers nicht groß unterscheiden, da das ja eh' mittlerweile ein Laden ist und Junkers das evtl, auch schon früher von Bosch dazu gekauft hat
Bei meinen Recherchen bzgl. der Entschlüsselung der Hex-Codes bin ich hierrüber gestolpert:
https://www.mikrocontroller.net/topic/81265?page=single
Ist extrem lang der Fred, aber man findet darin (etwas verteilt) ganz viele Zuordnungen der Hex Codes zu Parametern des Heizsystems und viele entsprechend Beispiele.
Ich bin von Hause aus E-Techniker, allerdings mein Leben lang in der IT unterwegs, muss aber auch sagen, dass wenn man noch nie etwas mit CAN zu tun hatte, dass doch auf jeden Fall einen deutlichen Einarbeitungsaufwand erfordertHowever, der Waveshare RS485 CAN HAT liegt schon hier und ich hoffe in der Weihnachtspause dafür etwas Zeit zu finden.
Spannend bleibt dann aber auch zu schauen, ob sich über das noch zu liefernde Internetmodul (Bosch Prognose: Januar) und dem entsprechenden Adapter hier evtl. auch eine einfachere Lösung realisieren lässt.Ich klinke mich wieder ein, wenn ich hier etwas weiter bin
-
Hallo Pedder007,
schön einen Gleichgesinnten zu treffen.
Hoffentlich können wir uns gegenseitig weiterhelfen.
Ich habe Junkers (Bosch) mit einer Auflistung der Canbus-Adressen angeschrieben. Leider machen die Zuordnung und Umrechnung nicht öffentlich.
Eine Zuordnung habe ich bislang zwar für einige wenige Werte in den Trends aus Flot optisch herstellen können, aber keine passende plausible Umrechnung gefunden.
Die Can-Adressen im verlinkten Mikrocontrollerforum unterscheiden sich leider komplett von den Adressen meiner Heizung. Ansonsten hatte ich keine weiteren brauchbaren Infos im Internet gefunden.
Ich hoffe, dass die Adressen unserer beiden Heizung gleich sind. Einen Mitschnitt meiner Can-Adressen findest du weiter oben. .
Melde dich gern, wenn du soweit bist oder Fragen hast.
LG emblitz -
Hallo crycode,
kann dein Can-Bus Adapter die Hex-Werte direkt mittels einer Formel umrechnen und in das geparste Objekt/Datenpunkt schreiben ?
Ich möchte einen Hex-Wert mittels uint16be nach Dez umrechnen und dann in der folgenden Formel umrechnen. F4 ist dabei das Ergebnis der Wandlung durch den Parser von Hex nach Dez mit uint16be.=105,81916402087-(0,28577699398241F4)+(0,000356191341049951F4F4)-(0,00000020925659550495F4F4F4)
Eventl. funktioniert die Formel in der Custom-Einstellung des Parsers?
Ich weiß nur nicht was ich hier eintragen soll.Ich konnte zwischenzeitlich bereits einige Can-Bus Adressen WP-Funktionen zuordnen und bin mit anderen Wärmepumpenspezis in diesem Forum etwas weitergekommen.
https://www.haustechnikdialog.de/Forum/p/3453047
Die Wandlung der Dez-Werte aus dem Parser mit uint16be scheint sich gut mit der o.g. Formel z.B. bei der Vorlauftemperatur umrechnen zu lassen.
Die Formel stammt aus dem Fhem-Forum
https://forum.fhem.de/index.php/topic,47508.150.htmlLG emblitz