{"id":1191,"date":"2016-04-07T12:32:26","date_gmt":"2016-04-07T12:32:26","guid":{"rendered":"http:\/\/www.horter.de\/blog\/?p=1191"},"modified":"2023-01-13T15:34:08","modified_gmt":"2023-01-13T15:34:08","slug":"i2c-funksender-am-raspberry","status":"publish","type":"post","link":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/","title":{"rendered":"I2C-Funksender am Raspberry"},"content":{"rendered":"<p>diesen Beispielcode hat mir Steffen G. freundlicherweise zur Verf\u00fcgung gestellt.<\/p>\n<p>Mit dem Code k\u00f6nnen bis zu 160 Funksteckdosen geschaltet werden.<\/p>\n<p>Das Modul h\u00e4ngt \u00fcber einen\u00a0I2C-Repeater am Raspberry-PI<\/p>\n<div id=\"attachment_1213\" style=\"width: 605px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/raspberry-funksender\/\" rel=\"attachment wp-att-1213\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1213\" class=\"wp-image-1213 size-full\" src=\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png\" alt=\"433MHz Funksender am Raspberry-PI\" width=\"595\" height=\"495\" srcset=\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png 595w, https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender-300x250.png 300w\" sizes=\"auto, (max-width: 595px) 100vw, 595px\" \/><\/a><p id=\"caption-attachment-1213\" class=\"wp-caption-text\">433-MHz Funksender am Raspberry-PI<\/p><\/div>\n<p>&nbsp;<\/p>\n<h1>Funksteckdosen mit Python schalten<\/h1>\n<div>\n<div>\n<div>\n<div>\n<div>\n<div>\n<div>\n<div>\n<blockquote><p><em>Hallo Herr Horter,<br \/>\n<\/em><em>ich habe f\u00fcr das I2HFS-Modul ein kleines Python-Skipt geschrieben, welches sie gern im Blog mit ver\u00f6ffentlichen k\u00f6nnen.<br \/>\n<\/em><em>Das Skript hei\u00dft &#8222;i2hfs.py&#8220;.<\/em><\/p><\/blockquote>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3><strong><u>Download:<\/u><\/strong><\/h3>\n<a  data-e-Disable-Page-Transition=\"true\" class=\"download-link\" title=\"\" href=\"https:\/\/www.horter.de\/blog\/download\/1195\/?tmstv=1781857499\" rel=\"nofollow\" id=\"download-link-1195\" data-redirect=\"false\" >\n\tPython-Code f\u00fcr Funksender\t(6066 Downloads\t)\n<\/a>\n\n<\/div>\n<p>&nbsp;<\/p>\n<h3><u><b>Usage:<\/b><\/u><\/h3>\n<p>==============================<wbr \/><br \/>\nHorter I2HFS I2C-433 MHz Modul<br \/>\n==============================<wbr \/><\/p>\n<p>Usage: .\/i2hfs.py -a [ADDRESS] -p [PROTOCOL] -s [SYSCODE] -v [VALUE]<\/p>\n<p>-h\u00a0\u00a0\u00a0 &#8211;help=\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 show Usage<br \/>\n-a\u00a0\u00a0\u00a0 &#8211;address=\u00a0\u00a0\u00a0 \u00a0 I2C-ADDRESS as Integer<br \/>\n-p\u00a0\u00a0\u00a0 &#8211;protocol=\u00a0\u00a0\u00a0 \u00a0 Protocol as Integer [1-15]<br \/>\n-s\u00a0\u00a0\u00a0 &#8211;syscode=\u00a0\u00a0\u00a0\u00a0 Systemcode as Integer-Bitmask [0-31]<br \/>\n-v\u00a0\u00a0\u00a0 &#8211;value=\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Value as Integer-Bitmask [0-255]<\/p>\n<\/div>\n<p>Es m\u00fcssen alle vier Parameter angegeben werden.<\/p>\n<\/div>\n<p>Die I2C-Adresse muss als Integer angegeben werden, also 8 statt 0x08.<\/p>\n<\/div>\n<p>Als Protokoll ist nur &#8222;1&#8220; im Moment zul\u00e4ssig.<\/p>\n<\/div>\n<p>Der Systemcode und der Value sind ebenfalls als Integer anzugeben. Diese Werte symbolisieren eine Bitmaske.<\/p>\n<h3><u><b>Hinweis:<\/b><\/u><\/h3>\n<\/div>\n<div>Das Skript geht davon aus, dass der I2C-Bus 2 verwendet wird (BananaPi).<\/div>\n<div>\n<p>Beim Raspberry Pi muss im Skript der Bus auf 1 gesetzt werden.<\/p>\n<p># create I2C-instance<br \/>\nI2HFS = smbus.SMBus(2)<\/p>\n<\/div>\n<div>\n<h3><u><b>Beispiel:<\/b><\/u><\/h3>\n<p><b><i>.\/i2hfs.py -a8 -p1 -s12 -v3<\/i><\/b><\/p>\n<p><b>Adresse<\/b>:\u00a0\u00a0\u00a0 0x08<br \/>\n<b>Protokoll:<\/b>\u00a0\u00a0 1<br \/>\n<b>Systemcode:<\/b> DIP-Schalter\u00a03 und\u00a04 sind an, also<br \/>\n2^0 low = 0<br \/>\n2^1 low = 0<br \/>\n2^2 high = 4<br \/>\n2^3 high = 8<br \/>\n2^4 low = 0<\/p>\n<\/div>\n<div>\n<p>Bytes: [ 15 0 0 15 15 ]<\/p>\n<p><b>Value: <\/b>Steckdosen mit Adresse 1 und 2 sollen geschaltet werden, also<\/p>\n<\/div>\n<div>2^0 high = 1<\/div>\n<div>2^1 high = 2<\/div>\n<div>2^2 low = 0<br \/>\n2^3 low = 0<br \/>\n2^4 low = 0<br \/>\n2^5 low = 0<br \/>\n2^6 low = 0<br \/>\n2^7 low = 0Bytes: [ 129 130 3 4 5 6 7 8 ]<\/div>\n<div>Mit dem Skript k\u00f6nnen theoretisch 8 Verbraucher (Funksteckdosen) mit Protokoll 1 und gleichem Systemcode gleichzeitig geschalten werden.<\/div>\n<div>Dies wird \u00fcber den Parameter -v, der als Integer-Bitmaske anzugeben ist, realisiert.<\/div>\n<div>Da die Pollin-Dosen nur 5 DIP-Schalter f\u00fcr die Adressierung haben, k\u00f6nnen also gleichzeitig anstatt der m\u00f6glichen 8 nur 5 Dosen geschaltet werden.<\/div>\n<div><\/div>\n<div>Maximal k\u00f6nnen von den Pollindosen 1 x 32 x 5 = 160 Dosen angesteuert werden.<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<h2>Python Beispielcode i2hfs.py<\/h2>\n<div><\/div>\n<pre style=\"color: #000000;\"><span style=\"color: #696969;\">#!\/usr\/bin\/python<\/span>\r\n\r\n<span style=\"color: #800000; font-weight: bold;\">from<\/span> __future__ <span style=\"color: #800000; font-weight: bold;\">import<\/span> print_function\r\n<span style=\"color: #800000; font-weight: bold;\">import<\/span> smbus\r\n<span style=\"color: #800000; font-weight: bold;\">import<\/span> sys\r\n<span style=\"color: #800000; font-weight: bold;\">import<\/span> time\r\n<span style=\"color: #800000; font-weight: bold;\">import<\/span> getopt\r\n\r\nADDRESS <span style=\"color: #808030;\">=<\/span> <span style=\"color: #0000e6;\">''<\/span>\t<span style=\"color: #696969;\"># I2C-address as integer [8-31]<\/span>\r\nPROTOCOL <span style=\"color: #808030;\">=<\/span> <span style=\"color: #0000e6;\">''<\/span>\t<span style=\"color: #696969;\"># protocol as integer [1-15]<\/span>\r\nSYSCODE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #0000e6;\">''<\/span>\t<span style=\"color: #696969;\"># system-code as integer-bitmask<\/span>\r\nVALUE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #0000e6;\">''<\/span>\t\t<span style=\"color: #696969;\"># value as integer-bitmask<\/span>\r\n\r\n<span style=\"color: #800000; font-weight: bold;\">def<\/span> usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">==============================\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"Horter I2HFS I2C-433 MHz Modul\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"==============================<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">'Usage: '<\/span><span style=\"color: #44aadd;\">+<\/span>sys<span style=\"color: #808030;\">.<\/span>argv<span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #44aadd;\">+<\/span><span style=\"color: #0000e6;\">' -a [ADDRESS] -p [PROTOCOL] -s [SYSCODE] -v [VALUE]'<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #0f69ff;\">\\r<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-h<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">--help<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">show Usage\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-a<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">--address=<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">M<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">I2C-ADDRESS as Integer\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-p<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">--protocol=<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">M<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">Protocol as Integer [1-15]\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-s<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">--syscode=<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">M<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">Systemcode as Integer-Bitmask [0-31]\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-v<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">--value=<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">M<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">Value as Integer-Bitmask [0-255]<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n<span style=\"color: #800000; font-weight: bold;\">def<\/span> protocol_01<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>  \r\n  <span style=\"color: #696969;\"># create I2C-instance<\/span>\r\n  I2HFS <span style=\"color: #808030;\">=<\/span> smbus<span style=\"color: #808030;\">.<\/span>SMBus<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span>\r\n  \r\n  <span style=\"color: #696969;\"># write protocol ############################################################<\/span>\r\n  REGISTER <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0x02<\/span>\r\n  DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #808030;\">[<\/span> PROTOCOL<span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">0x01<\/span> <span style=\"color: #808030;\">]<\/span>\r\n  I2HFS<span style=\"color: #808030;\">.<\/span>write_i2c_block_data<span style=\"color: #808030;\">(<\/span>ADDRESS<span style=\"color: #808030;\">,<\/span> REGISTER<span style=\"color: #808030;\">,<\/span> DATA<span style=\"color: #808030;\">)<\/span>\r\n\r\n  time<span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008000;\">0.05<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n  <span style=\"color: #696969;\"># write systemcode ##########################################################<\/span>\r\n  REGISTER <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0x00<\/span>\r\n  DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #808030;\">[<\/span> <span style=\"color: #008c00;\">15<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">15<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">15<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">15<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">15<\/span> <span style=\"color: #808030;\">]<\/span>\r\n  \r\n  V_STRING <span style=\"color: #808030;\">=<\/span> bin<span style=\"color: #808030;\">(<\/span>SYSCODE<span style=\"color: #808030;\">)<\/span>\t<span style=\"color: #696969;\"># e.g 0b1010<\/span>\r\n  V <span style=\"color: #808030;\">=<\/span> V_STRING<span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">:<\/span><span style=\"color: #808030;\">]<\/span>\t\t\t<span style=\"color: #696969;\"># e.g 1010<\/span>\r\n\r\n  i <span style=\"color: #808030;\">=<\/span> <span style=\"color: #400000;\">len<\/span><span style=\"color: #808030;\">(<\/span>V<span style=\"color: #808030;\">)<\/span> <span style=\"color: #44aadd;\">-<\/span> <span style=\"color: #008c00;\">1<\/span>\r\n  n <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">while<\/span> i <span style=\"color: #44aadd;\">&gt;=<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">:<\/span>\r\n    BIT <span style=\"color: #808030;\">=<\/span> V<span style=\"color: #808030;\">[<\/span>i<span style=\"color: #808030;\">:<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">:<\/span><span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">]<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">if<\/span> BIT <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">\"1\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n      DATA<span style=\"color: #808030;\">[<\/span>n<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0<\/span>\r\n\r\n    i <span style=\"color: #808030;\">=<\/span> i <span style=\"color: #44aadd;\">-<\/span> <span style=\"color: #008c00;\">1<\/span>\r\n    n <span style=\"color: #808030;\">=<\/span> n <span style=\"color: #44aadd;\">+<\/span> <span style=\"color: #008c00;\">1<\/span>\r\n\t\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">SYSTEMCODE=<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">,<\/span>DATA<span style=\"color: #808030;\">)<\/span>\r\n\r\n  I2HFS<span style=\"color: #808030;\">.<\/span>write_i2c_block_data<span style=\"color: #808030;\">(<\/span>ADDRESS<span style=\"color: #808030;\">,<\/span> REGISTER<span style=\"color: #808030;\">,<\/span> DATA<span style=\"color: #808030;\">)<\/span>\r\n\r\n  time<span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008000;\">0.05<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n  <span style=\"color: #696969;\"># write value ###############################################################<\/span>\r\n  DATA <span style=\"color: #808030;\">=<\/span> <span style=\"color: #808030;\">[<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">3<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">4<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">5<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">6<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">7<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">8<\/span> <span style=\"color: #808030;\">]<\/span>\r\n\r\n  V_STRING <span style=\"color: #808030;\">=<\/span> bin<span style=\"color: #808030;\">(<\/span>VALUE<span style=\"color: #808030;\">)<\/span>\t\t<span style=\"color: #696969;\"># e.g. 0b1010<\/span>\r\n  V <span style=\"color: #808030;\">=<\/span> V_STRING<span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">:<\/span><span style=\"color: #808030;\">]<\/span>\t\t\t<span style=\"color: #696969;\"># e.g. 1010<\/span>\r\n\r\n  i <span style=\"color: #808030;\">=<\/span> <span style=\"color: #400000;\">len<\/span><span style=\"color: #808030;\">(<\/span>V<span style=\"color: #808030;\">)<\/span> <span style=\"color: #44aadd;\">-<\/span> <span style=\"color: #008c00;\">1<\/span>\r\n  n <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">while<\/span> i <span style=\"color: #44aadd;\">&gt;=<\/span> <span style=\"color: #008c00;\">0<\/span><span style=\"color: #808030;\">:<\/span>\r\n    BIT <span style=\"color: #808030;\">=<\/span> V<span style=\"color: #808030;\">[<\/span>i<span style=\"color: #808030;\">:<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">:<\/span><span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">]<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">if<\/span> BIT <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">\"1\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n      DATA<span style=\"color: #808030;\">[<\/span>n<span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">=<\/span> n <span style=\"color: #44aadd;\">+<\/span> <span style=\"color: #008c00;\">1<\/span> <span style=\"color: #44aadd;\">+<\/span> <span style=\"color: #008c00;\">128<\/span>\r\n\r\n    i <span style=\"color: #808030;\">=<\/span> i <span style=\"color: #44aadd;\">-<\/span> <span style=\"color: #008c00;\">1<\/span>\r\n    n <span style=\"color: #808030;\">=<\/span> n <span style=\"color: #44aadd;\">+<\/span> <span style=\"color: #008c00;\">1<\/span>\r\n\t\r\n  <span style=\"color: #800000; font-weight: bold;\">print<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"VALUE=<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0f69ff;\">\\t<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">,<\/span>DATA<span style=\"color: #808030;\">,<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n  <span style=\"color: #696969;\"># check if module is sending<\/span>\r\n  REGISTER <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0x02<\/span>\r\n  STATUS <span style=\"color: #808030;\">=<\/span> I2HFS<span style=\"color: #808030;\">.<\/span>read_i2c_block_data<span style=\"color: #808030;\">(<\/span>ADDRESS<span style=\"color: #808030;\">,<\/span> REGISTER<span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">8<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">while<\/span> STATUS<span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">]<\/span> <span style=\"color: #44aadd;\">!=<\/span> <span style=\"color: #008c00;\">15<\/span><span style=\"color: #808030;\">:<\/span>\t<span style=\"color: #696969;\"># also 0xAC = 172 = ACtive<\/span>\r\n    time<span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008000;\">0.01<\/span><span style=\"color: #808030;\">)<\/span>\r\n    STATUS <span style=\"color: #808030;\">=<\/span> I2HFS<span style=\"color: #808030;\">.<\/span>read_i2c_block_data<span style=\"color: #808030;\">(<\/span>ADDRESS<span style=\"color: #808030;\">,<\/span> REGISTER<span style=\"color: #808030;\">,<\/span> <span style=\"color: #008c00;\">8<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n  time<span style=\"color: #808030;\">.<\/span>sleep<span style=\"color: #808030;\">(<\/span><span style=\"color: #008000;\">0.05<\/span><span style=\"color: #808030;\">)<\/span>\r\n  \r\n  <span style=\"color: #696969;\"># write value only if module is not sending<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">if<\/span> STATUS<span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">]<\/span> <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #008c00;\">15<\/span><span style=\"color: #808030;\">:<\/span>\t\t<span style=\"color: #696969;\"># also 0x0F = 15 = OFF<\/span>\r\n    REGISTER <span style=\"color: #808030;\">=<\/span> <span style=\"color: #008c00;\">0x01<\/span>\r\n    I2HFS<span style=\"color: #808030;\">.<\/span>write_i2c_block_data<span style=\"color: #808030;\">(<\/span>ADDRESS<span style=\"color: #808030;\">,<\/span> REGISTER<span style=\"color: #808030;\">,<\/span> DATA<span style=\"color: #808030;\">)<\/span>\r\n  \r\n<span style=\"color: #800000; font-weight: bold;\">def<\/span> main<span style=\"color: #808030;\">(<\/span>argv<span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>\r\n\r\n  <span style=\"color: #800000; font-weight: bold;\">global<\/span> ADDRESS\r\n  <span style=\"color: #800000; font-weight: bold;\">global<\/span> PROTOCOL\r\n  <span style=\"color: #800000; font-weight: bold;\">global<\/span> SYSCODE\r\n  <span style=\"color: #800000; font-weight: bold;\">global<\/span> VALUE\r\n  \r\n  <span style=\"color: #800000; font-weight: bold;\">try<\/span><span style=\"color: #808030;\">:<\/span>\r\n    opts<span style=\"color: #808030;\">,<\/span> args <span style=\"color: #808030;\">=<\/span> getopt<span style=\"color: #808030;\">.<\/span>getopt<span style=\"color: #808030;\">(<\/span>argv<span style=\"color: #808030;\">,<\/span><span style=\"color: #0000e6;\">\"ha:p:s:v:\"<\/span><span style=\"color: #808030;\">,<\/span><span style=\"color: #808030;\">[<\/span><span style=\"color: #0000e6;\">\"address=\"<\/span><span style=\"color: #808030;\">,<\/span><span style=\"color: #0000e6;\">\"protocol=\"<\/span><span style=\"color: #808030;\">,<\/span><span style=\"color: #0000e6;\">\"syscode=\"<\/span><span style=\"color: #808030;\">,<\/span><span style=\"color: #0000e6;\">\"value=\"<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">except<\/span> getopt<span style=\"color: #808030;\">.<\/span>GetoptError<span style=\"color: #808030;\">:<\/span>\r\n    usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n    sys<span style=\"color: #808030;\">.<\/span>exit<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">for<\/span> opt<span style=\"color: #808030;\">,<\/span> arg <span style=\"color: #800000; font-weight: bold;\">in<\/span> opts<span style=\"color: #808030;\">:<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">if<\/span> opt <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">'-h'<\/span><span style=\"color: #808030;\">:<\/span>\r\n      usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n      sys<span style=\"color: #808030;\">.<\/span>exit<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">elif<\/span> opt <span style=\"color: #800000; font-weight: bold;\">in<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-a\"<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #0000e6;\">\"--address\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>\r\n      ADDRESS <span style=\"color: #808030;\">=<\/span> <span style=\"color: #400000;\">int<\/span><span style=\"color: #808030;\">(<\/span>arg<span style=\"color: #808030;\">)<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">elif<\/span> opt <span style=\"color: #800000; font-weight: bold;\">in<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-p\"<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #0000e6;\">\"--protocol\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>\r\n      PROTOCOL <span style=\"color: #808030;\">=<\/span> <span style=\"color: #400000;\">int<\/span><span style=\"color: #808030;\">(<\/span>arg<span style=\"color: #808030;\">)<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">elif<\/span> opt <span style=\"color: #800000; font-weight: bold;\">in<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-s\"<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #0000e6;\">\"--syscode\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>\r\n      SYSCODE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #400000;\">int<\/span><span style=\"color: #808030;\">(<\/span>arg<span style=\"color: #808030;\">)<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">elif<\/span> opt <span style=\"color: #800000; font-weight: bold;\">in<\/span> <span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"-v\"<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #0000e6;\">\"--value\"<\/span><span style=\"color: #808030;\">)<\/span><span style=\"color: #808030;\">:<\/span>\r\n      VALUE <span style=\"color: #808030;\">=<\/span> <span style=\"color: #400000;\">int<\/span><span style=\"color: #808030;\">(<\/span>arg<span style=\"color: #808030;\">)<\/span>\r\n\r\n  <span style=\"color: #800000; font-weight: bold;\">if<\/span> ADDRESS <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">''<\/span><span style=\"color: #808030;\">:<\/span>\r\n    usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n    sys<span style=\"color: #808030;\">.<\/span>exit<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n  <span style=\"color: #800000; font-weight: bold;\">if<\/span> VALUE <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">''<\/span><span style=\"color: #808030;\">:<\/span>\r\n    usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n    sys<span style=\"color: #808030;\">.<\/span>exit<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span>\r\n\t\r\n  <span style=\"color: #800000; font-weight: bold;\">if<\/span> SYSCODE <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">''<\/span><span style=\"color: #808030;\">:<\/span>\r\n    usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n    sys<span style=\"color: #808030;\">.<\/span>exit<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span>\r\n\t\r\n  <span style=\"color: #800000; font-weight: bold;\">if<\/span> PROTOCOL <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">''<\/span><span style=\"color: #808030;\">:<\/span>\r\n    usage<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n    sys<span style=\"color: #808030;\">.<\/span>exit<span style=\"color: #808030;\">(<\/span><span style=\"color: #008c00;\">2<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">elif<\/span> PROTOCOL <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">:<\/span>\r\n    protocol_01<span style=\"color: #808030;\">(<\/span><span style=\"color: #808030;\">)<\/span>\r\n  <span style=\"color: #800000; font-weight: bold;\">else<\/span><span style=\"color: #808030;\">:<\/span>\r\n    <span style=\"color: #800000; font-weight: bold;\">print<\/span><span style=\"color: #808030;\">(<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">Protocol\"<\/span><span style=\"color: #808030;\">,<\/span>PROTOCOL<span style=\"color: #808030;\">,<\/span><span style=\"color: #0000e6;\">\"not available!<\/span><span style=\"color: #0f69ff;\">\\n<\/span><span style=\"color: #0000e6;\">\"<\/span><span style=\"color: #808030;\">)<\/span>\r\n\r\n<span style=\"color: #800000; font-weight: bold;\">if<\/span> <span style=\"color: #074726;\">__name__<\/span> <span style=\"color: #44aadd;\">==<\/span> <span style=\"color: #0000e6;\">\"__main__\"<\/span><span style=\"color: #808030;\">:<\/span>\r\n  main<span style=\"color: #808030;\">(<\/span>sys<span style=\"color: #808030;\">.<\/span>argv<span style=\"color: #808030;\">[<\/span><span style=\"color: #008c00;\">1<\/span><span style=\"color: #808030;\">:<\/span><span style=\"color: #808030;\">]<\/span><span style=\"color: #808030;\">)<\/span>\r\n<\/pre>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>diesen Beispielcode hat mir Steffen G. freundlicherweise zur Verf\u00fcgung gestellt. Mit dem Code k\u00f6nnen bis zu 160 Funksteckdosen geschaltet werden. Das Modul h\u00e4ngt \u00fcber einen\u00a0I2C-Repeater am Raspberry-PI &nbsp; Funksteckdosen mit Python schalten Hallo Herr Horter, ich habe f\u00fcr das I2HFS-Modul&#8230; <a class=\"continue-reading-link\" href=\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\">mehr lesen<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[255],"tags":[103,160,111,149,105,161,66,158,159],"class_list":["post-1191","post","type-post","status-publish","format-standard","hentry","category-raspberry-pi","tag-433-mhz","tag-ansteuern","tag-funksender","tag-funksteckdosen","tag-funksteckdosen-set","tag-python","tag-raspberri-pi","tag-steckdosen","tag-steckdusen-schalten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>I2C-Funksender am Raspberry - Horter &amp; Kalb Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"I2C-Funksender am Raspberry - Horter &amp; Kalb Blog\" \/>\n<meta property=\"og:description\" content=\"diesen Beispielcode hat mir Steffen G. freundlicherweise zur Verf\u00fcgung gestellt. Mit dem Code k\u00f6nnen bis zu 160 Funksteckdosen geschaltet werden. Das Modul h\u00e4ngt \u00fcber einen\u00a0I2C-Repeater am Raspberry-PI &nbsp; Funksteckdosen mit Python schalten Hallo Herr Horter, ich habe f\u00fcr das I2HFS-Modul... mehr lesen\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\" \/>\n<meta property=\"og:site_name\" content=\"Horter &amp; Kalb Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-07T12:32:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T15:34:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png\" \/>\n\t<meta property=\"og:image:width\" content=\"595\" \/>\n\t<meta property=\"og:image:height\" content=\"495\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"JH\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"JH\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\"},\"author\":{\"name\":\"JH\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2\"},\"headline\":\"I2C-Funksender am Raspberry\",\"datePublished\":\"2016-04-07T12:32:26+00:00\",\"dateModified\":\"2023-01-13T15:34:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\"},\"wordCount\":315,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png\",\"keywords\":[\"433 MHz\",\"ansteuern\",\"Funksender\",\"Funksteckdosen\",\"Funksteckdosen Set\",\"Python\",\"Raspberri PI\",\"Steckdosen\",\"Steckdusen schalten\"],\"articleSection\":[\"Raspberry PI\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\",\"url\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\",\"name\":\"I2C-Funksender am Raspberry - Horter &amp; Kalb Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png\",\"datePublished\":\"2016-04-07T12:32:26+00:00\",\"dateModified\":\"2023-01-13T15:34:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage\",\"url\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png\",\"contentUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png\",\"width\":595,\"height\":495,\"caption\":\"433MHz Funksender am Raspberry-PI\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\/\/www.horter.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"I2C-Funksender am Raspberry\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.horter.de\/blog\/#website\",\"url\":\"https:\/\/www.horter.de\/blog\/\",\"name\":\"Horter & Kalb Blog\",\"description\":\"SPS, I2C und mehr\",\"publisher\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.horter.de\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.horter.de\/blog\/#organization\",\"name\":\"Horter & Kalb Blog\",\"url\":\"https:\/\/www.horter.de\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png\",\"contentUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png\",\"width\":400,\"height\":400,\"caption\":\"Horter & Kalb Blog\"},\"image\":{\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2\",\"name\":\"JH\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.horter.de\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg\",\"contentUrl\":\"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg\",\"caption\":\"JH\"},\"url\":\"https:\/\/www.horter.de\/blog\/author\/j-horter\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"I2C-Funksender am Raspberry - Horter &amp; Kalb Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/","og_locale":"de_DE","og_type":"article","og_title":"I2C-Funksender am Raspberry - Horter &amp; Kalb Blog","og_description":"diesen Beispielcode hat mir Steffen G. freundlicherweise zur Verf\u00fcgung gestellt. Mit dem Code k\u00f6nnen bis zu 160 Funksteckdosen geschaltet werden. Das Modul h\u00e4ngt \u00fcber einen\u00a0I2C-Repeater am Raspberry-PI &nbsp; Funksteckdosen mit Python schalten Hallo Herr Horter, ich habe f\u00fcr das I2HFS-Modul... mehr lesen","og_url":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/","og_site_name":"Horter &amp; Kalb Blog","article_published_time":"2016-04-07T12:32:26+00:00","article_modified_time":"2023-01-13T15:34:08+00:00","og_image":[{"width":595,"height":495,"url":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png","type":"image\/png"}],"author":"JH","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"JH","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#article","isPartOf":{"@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/"},"author":{"name":"JH","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2"},"headline":"I2C-Funksender am Raspberry","datePublished":"2016-04-07T12:32:26+00:00","dateModified":"2023-01-13T15:34:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/"},"wordCount":315,"commentCount":1,"publisher":{"@id":"https:\/\/www.horter.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage"},"thumbnailUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png","keywords":["433 MHz","ansteuern","Funksender","Funksteckdosen","Funksteckdosen Set","Python","Raspberri PI","Steckdosen","Steckdusen schalten"],"articleSection":["Raspberry PI"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/","url":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/","name":"I2C-Funksender am Raspberry - Horter &amp; Kalb Blog","isPartOf":{"@id":"https:\/\/www.horter.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage"},"image":{"@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage"},"thumbnailUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png","datePublished":"2016-04-07T12:32:26+00:00","dateModified":"2023-01-13T15:34:08+00:00","breadcrumb":{"@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#primaryimage","url":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png","contentUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2016\/04\/Raspberry-Funksender.png","width":595,"height":495,"caption":"433MHz Funksender am Raspberry-PI"},{"@type":"BreadcrumbList","@id":"https:\/\/www.horter.de\/blog\/i2c-funksender-am-raspberry\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/www.horter.de\/blog\/"},{"@type":"ListItem","position":2,"name":"I2C-Funksender am Raspberry"}]},{"@type":"WebSite","@id":"https:\/\/www.horter.de\/blog\/#website","url":"https:\/\/www.horter.de\/blog\/","name":"Horter & Kalb Blog","description":"SPS, I2C und mehr","publisher":{"@id":"https:\/\/www.horter.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.horter.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.horter.de\/blog\/#organization","name":"Horter & Kalb Blog","url":"https:\/\/www.horter.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png","contentUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2026\/01\/hoka_Icon_400x400.png","width":400,"height":400,"caption":"Horter & Kalb Blog"},"image":{"@id":"https:\/\/www.horter.de\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/person\/a8a4c3c5d3167dce7c7d31df6088b5d2","name":"JH","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.horter.de\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg","contentUrl":"https:\/\/www.horter.de\/blog\/wp-content\/uploads\/2015\/07\/jhfb.jpg","caption":"JH"},"url":"https:\/\/www.horter.de\/blog\/author\/j-horter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts\/1191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/comments?post=1191"}],"version-history":[{"count":20,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts\/1191\/revisions"}],"predecessor-version":[{"id":1217,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/posts\/1191\/revisions\/1217"}],"wp:attachment":[{"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/media?parent=1191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/categories?post=1191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.horter.de\/blog\/wp-json\/wp\/v2\/tags?post=1191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}