Difference between revisions of "M-Bus Wärmezähler"

From BITPlan Wiki
Jump to navigation Jump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Links =
 
= Links =
 
* https://m-bus.com/
 
* https://m-bus.com/
 +
* https://m-bus.de/
 +
* https://www.modbusdriver.com/modpoll.html
 +
* https://piers.rocks/2020/04/11/mbus-primary-and-secondary-addresses.html
 
* https://www.mikrocontroller.net/topic/438972
 
* https://www.mikrocontroller.net/topic/438972
 
* https://www.ebay.de/itm/313884760667
 
* https://www.ebay.de/itm/313884760667
 +
== Software ==
 +
=== libmbus ===
 +
* http://www.rscada.se/libmbus/
 +
==== install script for ubuntu ====
 +
e.g. copy to /usr/local/src/libmbus and run
 +
<source lang='bash'>
 +
#!/bin/bash
 +
# WF 2022-10-13
 +
 +
# libmbus install
 +
 +
#
 +
# install general libraries
 +
apt install libglib2.0-dev autoconf autotools-dev automake
 +
 +
# now install libmbus
 +
# see http://www.rscada.se/libmbus/
 +
version=0.8.0
 +
platform=amd64
 +
baseurl=http://www.rscada.se/public-dist
 +
for part in "1" "-dev"
 +
do
 +
  deb=libmbus${part}_${version}_${platform}.deb
 +
  if [ ! -f $deb ]
 +
  then
 +
    echo "downloading $deb"
 +
    wget $baseurl/$deb
 +
  else
 +
    echo "$deb already downloaded"
 +
  fi
 +
  sudo dpkg -i $deb
 +
done
 +
</source>
  
 
= Hichi =
 
= Hichi =
<source lang='bash'>
+
== Linux ==
 +
<source lang='bash' highlight='1,3'>
 +
lsusb
 
Bus 001 Device 006: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
 
Bus 001 Device 006: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
 +
/usr/bin/udevadm info --query=all --name=/dev/ttyUSB0
 +
P: /devices/pci0000:00/0000:00:15.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
 +
N: ttyUSB0
 +
L: 0
 +
S: serial/by-path/pci-0000:00:15.0-usb-0:2:1.0-port0
 +
S: serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0026-if00-port0
 +
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
 +
E: DEVNAME=/dev/ttyUSB0
 +
E: MAJOR=188
 +
E: MINOR=0
 +
E: SUBSYSTEM=tty
 +
E: USEC_INITIALIZED=9041897
 +
E: ID_BUS=usb
 +
E: ID_VENDOR_ID=10c4
 +
E: ID_MODEL_ID=ea60
 +
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
 +
E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
 +
E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI
 +
E: ID_VENDOR_FROM_DATABASE=Silicon Labs
 +
E: ID_MODEL_FROM_DATABASE=CP210x UART Bridge
 +
E: ID_VENDOR=Silicon_Labs
 +
E: ID_VENDOR_ENC=Silicon\x20Labs
 +
E: ID_MODEL=CP2102_USB_to_UART_Bridge_Controller
 +
E: ID_MODEL_ENC=CP2102\x20USB\x20to\x20UART\x20Bridge\x20Controller
 +
E: ID_REVISION=0100
 +
E: ID_SERIAL=Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0026
 +
E: ID_SERIAL_SHORT=0026
 +
E: ID_TYPE=generic
 +
E: ID_USB_INTERFACES=:ff0000:
 +
E: ID_USB_INTERFACE_NUM=00
 +
E: ID_USB_DRIVER=cp210x
 +
E: ID_PATH=pci-0000:00:15.0-usb-0:2:1.0
 +
E: ID_PATH_TAG=pci-0000_00_15_0-usb-0_2_1_0
 +
E: ID_MM_CANDIDATE=1
 +
E: DEVLINKS=/dev/serial/by-path/pci-0000:00:15.0-usb-0:2:1.0-port0 /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0026-if00-port0
 +
E: TAGS=:systemd:
 +
E: CURRENT_TAGS=:systemd:
 +
 +
</source>
 +
=== set baud rate ===
 +
<source lang='bash' highlight='1'>
 +
stty -F /dev/ttyUSB0 2400
 
</source>
 
</source>
 +
 +
=== Video ===
 
<youtube>0ZjDFD1Q_hM</youtube>
 
<youtube>0ZjDFD1Q_hM</youtube>
 +
== Mac ==
 +
<source lang='bash'>
 +
ioreg -p IOUSB -l -w 0 | grep -i uart
 +
    +-o CP2102 USB to UART Bridge Controller@14200000  <class AppleUSBDevice, id 0x10006716a, registered, matched, active, busy 0 (8 ms), retain 13>
 +
    |    "USB Product Name" = "CP2102 USB to UART Bridge Controller"
 +
    |    "kUSBProductString" = "CP2102 USB to UART Bridge Controller"
 +
</source>
 +
=== CP210x VCP Driver ===
 +
* https://www.silabs.com/documents/public/software/Mac_OSX_VCP_Driver.zip
 +
* download, unpack and install SiLabsUSBDriverDisk.dmg
 +
 
=  CF Utramaxx-mk =
 
=  CF Utramaxx-mk =
 +
<pdf>
 +
https://www.gavilar.nl/files/cf-ultramaxx-v-03-13.pdf
 +
</pdf>
 +
* https://emea.itron.com/products/cf-ultramaxx-v
 +
https://emea.itron.com/o/commerce-media/accounts/-1/images/3198895?download=false
 +
<pre>
 +
Standard Werkseinstellung:
 +
Primäradresse: 0
 +
Sekundäradresse: Zählernummer
 +
Baudrate: 2400 Baud
 +
</pre>
 +
 
https://www.itron.com/de/solutions/product-catalog/cf-ultramaxx-mk
 
https://www.itron.com/de/solutions/product-catalog/cf-ultramaxx-mk
 +
 +
* https://www.itron.com/-/media/feature/products/cf-ultramaxx-mk/images/cfultramaxxjpg.jpg
 +
* https://www.allmess.de/fileadmin/multimedia/alle_Dateien/MA/MA_18197-AE%20ULTRA%20MAXX_TS0522_KL.pdf
 +
= pyMeterBus =
 +
* https://github.com/ganehag/pyMeterBus
 +
 +
<source lang='bash' highlight='1,9-10'>
 +
git clone https://github.com/ganehag/pyMeterBus
 +
Cloning into 'pyMeterBus'...
 +
remote: Enumerating objects: 1219, done.
 +
remote: Counting objects: 100% (85/85), done.
 +
remote: Compressing objects: 100% (50/50), done.
 +
remote: Total 1219 (delta 34), reused 70 (delta 29), pack-reused 1134
 +
Receiving objects: 100% (1219/1219), 271.58 KiB | 757.00 KiB/s, done.
 +
Resolving deltas: 100% (750/750), done.
 +
cd pyMeterBus/
 +
pip3 install .
 +
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
 +
Processing /home/wf/source/python/pyMeterBus
 +
Collecting pyaml (from pyMeterBus==0.8.3)
 +
  Downloading https://files.pythonhosted.org/packages/6d/5a/5200ad18f321530b881f667c47d20026c3795dbbc200619c0330311b7907/pyaml-23.5.8-py3-none-any.whl
 +
Collecting pycryptodome (from pyMeterBus==0.8.3)
 +
  Downloading https://www.piwheels.org/simple/pycryptodome/pycryptodome-3.20.0-cp35-abi3-linux_armv7l.whl (2.0MB)
 +
    100% |████████████████████████████████| 2.0MB 198kB/s
 +
Requirement already satisfied: pyserial in /usr/lib/python3/dist-packages (from pyMeterBus==0.8.3) (3.4)
 +
Requirement already satisfied: simplejson in /usr/lib/python3/dist-packages (from pyMeterBus==0.8.3) (3.16.0)
 +
Requirement already satisfied: PyYAML in /usr/local/lib/python3.7/dist-packages (from pyaml->pyMeterBus==0.8.3) (5.1)
 +
Building wheels for collected packages: pyMeterBus
 +
  Running setup.py bdist_wheel for pyMeterBus ... done
 +
  Stored in directory: /tmp/pip-ephem-wheel-cache-ybm69ily/wheels/40/49/79/d2c9d6b919d406ea11affa578792c7729298e8c0ca25044c24
 +
Successfully built pyMeterBus
 +
Installing collected packages: pyaml, pycryptodome, pyMeterBus
 +
Successfully installed pyMeterBus-0.8.3 pyaml-23.5.8 pycryptodome-3.20.0
 +
</source>

Latest revision as of 07:54, 24 May 2024

Links

Software

libmbus

install script for ubuntu

e.g. copy to /usr/local/src/libmbus and run

#!/bin/bash
# WF 2022-10-13

# libmbus install

# 
# install general libraries 
apt install libglib2.0-dev autoconf autotools-dev automake

# now install libmbus
# see http://www.rscada.se/libmbus/
version=0.8.0
platform=amd64
baseurl=http://www.rscada.se/public-dist
for part in "1" "-dev" 
do
  deb=libmbus${part}_${version}_${platform}.deb
  if [ ! -f $deb ]
  then
    echo "downloading $deb"
    wget $baseurl/$deb
  else
    echo "$deb already downloaded"
  fi
  sudo dpkg -i $deb
done

Hichi

Linux

lsusb
Bus 001 Device 006: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
 /usr/bin/udevadm info --query=all --name=/dev/ttyUSB0
P: /devices/pci0000:00/0000:00:15.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
L: 0
S: serial/by-path/pci-0000:00:15.0-usb-0:2:1.0-port0
S: serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0026-if00-port0
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
E: DEVNAME=/dev/ttyUSB0
E: MAJOR=188
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=9041897
E: ID_BUS=usb
E: ID_VENDOR_ID=10c4
E: ID_MODEL_ID=ea60
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI
E: ID_VENDOR_FROM_DATABASE=Silicon Labs
E: ID_MODEL_FROM_DATABASE=CP210x UART Bridge
E: ID_VENDOR=Silicon_Labs
E: ID_VENDOR_ENC=Silicon\x20Labs
E: ID_MODEL=CP2102_USB_to_UART_Bridge_Controller
E: ID_MODEL_ENC=CP2102\x20USB\x20to\x20UART\x20Bridge\x20Controller
E: ID_REVISION=0100
E: ID_SERIAL=Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0026
E: ID_SERIAL_SHORT=0026
E: ID_TYPE=generic
E: ID_USB_INTERFACES=:ff0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=cp210x
E: ID_PATH=pci-0000:00:15.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_15_0-usb-0_2_1_0
E: ID_MM_CANDIDATE=1
E: DEVLINKS=/dev/serial/by-path/pci-0000:00:15.0-usb-0:2:1.0-port0 /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0026-if00-port0
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:

set baud rate

stty -F /dev/ttyUSB0 2400

Video

Mac

ioreg -p IOUSB -l -w 0 | grep -i uart
    +-o CP2102 USB to UART Bridge Controller@14200000  <class AppleUSBDevice, id 0x10006716a, registered, matched, active, busy 0 (8 ms), retain 13>
    |     "USB Product Name" = "CP2102 USB to UART Bridge Controller"
    |     "kUSBProductString" = "CP2102 USB to UART Bridge Controller"

CP210x VCP Driver

CF Utramaxx-mk

load PDF

https://emea.itron.com/o/commerce-media/accounts/-1/images/3198895?download=false

Standard Werkseinstellung:
Primäradresse: 0
Sekundäradresse: Zählernummer
Baudrate: 2400 Baud

https://www.itron.com/de/solutions/product-catalog/cf-ultramaxx-mk

pyMeterBus

git clone https://github.com/ganehag/pyMeterBus
Cloning into 'pyMeterBus'...
remote: Enumerating objects: 1219, done.
remote: Counting objects: 100% (85/85), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 1219 (delta 34), reused 70 (delta 29), pack-reused 1134
Receiving objects: 100% (1219/1219), 271.58 KiB | 757.00 KiB/s, done.
Resolving deltas: 100% (750/750), done.
cd pyMeterBus/
pip3 install .
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /home/wf/source/python/pyMeterBus
Collecting pyaml (from pyMeterBus==0.8.3)
  Downloading https://files.pythonhosted.org/packages/6d/5a/5200ad18f321530b881f667c47d20026c3795dbbc200619c0330311b7907/pyaml-23.5.8-py3-none-any.whl
Collecting pycryptodome (from pyMeterBus==0.8.3)
  Downloading https://www.piwheels.org/simple/pycryptodome/pycryptodome-3.20.0-cp35-abi3-linux_armv7l.whl (2.0MB)
    100% |████████████████████████████████| 2.0MB 198kB/s 
Requirement already satisfied: pyserial in /usr/lib/python3/dist-packages (from pyMeterBus==0.8.3) (3.4)
Requirement already satisfied: simplejson in /usr/lib/python3/dist-packages (from pyMeterBus==0.8.3) (3.16.0)
Requirement already satisfied: PyYAML in /usr/local/lib/python3.7/dist-packages (from pyaml->pyMeterBus==0.8.3) (5.1)
Building wheels for collected packages: pyMeterBus
  Running setup.py bdist_wheel for pyMeterBus ... done
  Stored in directory: /tmp/pip-ephem-wheel-cache-ybm69ily/wheels/40/49/79/d2c9d6b919d406ea11affa578792c7729298e8c0ca25044c24
Successfully built pyMeterBus
Installing collected packages: pyaml, pycryptodome, pyMeterBus
Successfully installed pyMeterBus-0.8.3 pyaml-23.5.8 pycryptodome-3.20.0