RRFXMeter | B4X Programming Forum

B4X Programming Forum
  • Home
  • Products B4A B4i B4J B4R
  • Showcase
  • Store
  • Learn General Guides Video Tutorials Glossary
  • Teach
  • Blog
  • Forums #B4X Discord (unofficial) B4X Facebook Group B4X Github
  • New posts What's new New profile posts Latest activity
  • Members Current visitors New profile posts Search profile posts
Log in Register What's new
  • #B4X Discord (unofficial)
  • B4X Facebook Group
  • B4X Github
Menu Log in Register Install the app Install
  • Welcome to B4X forum! B4X is a set of simple and powerful cross platform RAD tools:
    • B4A (free) - Android development
    • B4J (free) - Desktop and Server development
    • B4i - iOS development
    • B4R (free) - Arduino, ESP8266 and ESP32 development
    All developers, with any skill level, are welcome to join the B4X community.
  • Home
  • Forums
  • B4R - Arduino, ESP8266 and ESP32
  • B4R Libraries
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. B4R LibraryrRFXMeter
  • Thread starter rwblinn
  • Start date Apr 10, 2022
  • Tags domoticz dzvents rfxcom rfxmeter rfxtrx433e
  • Similar Threads Similar Threads
  • Github repository Github repository
rRFXMeter is a B4XLib for sending RFXMeter value (ULong) from microcontroller, via 433Mhz Transmitter, to a RFXCOM RFXtrx433e device connected to Domoticz Home Automation System. The goal is to send sensor & actuator data from an Arduino Microcontroller to Domoticz Home Automation System by using a RFXCOM RFXtrx433e transceiver.
  • This project has started by finding a solution to read the flow temperature of a home heating device and log the value in Domoticz.
  • Create a fit-for-purpose solution for sending all kind of sensor & actuator data to be handled by a Domoticz single device acting as a dispatcher (router).
  • Explore 433Mhz communication between Microcontroller & Domoticz RFXtrx433e.
  • Arduino connected modules tested: 433Mhz Transmitter, DHT22 (Temperature & Humidity), Reed Switch (Contact), Thermosensor MAX6675 (Temperature), SlidePot (Dimmer).
  • Develop the solution with B4R & Domoticz dzVents Automation Events.
  • The solution has been developed for personal use only. Use at your own risk.
  • Posted also on the Domoticz Forum here.
1649582403154.png Solution The Arduino microcontroller sends RFXMeter messages to the Domoticz Home Automation System via a cheap 433Mhz transmitter. The Domoticz Home Automation System, running on a Raspberry Pi, has a RFXCOM RFXtrx433e Transceiver connected to an USB port. The RFXtrx433e transceiver receives the RFXMeter message and sends the message to Domoticz RFXMeter device (Hardware RFXCOM RFXtrx433e). A Domoticz Automation Event (dzVents) listens to RFXMeter device changes, converts the message data and updates associated Domoticz device(s) or any other action. The RFXMeter message data send is an unsigned long (ULong) value with range 0 - 16777215 (HEX FFFF, 3 Bytes from ULong data type). It is also possible to send data to various Domoticz RFXMeter devices and handle Automation Events accordingly. The RFXMeter device acts as a trigger to update other devices (or take any other action). The ULong value contains packed information used by the Automation Event dzVents. Example: A temperature & humidity module DHT22 is connected to an Arduino UNO. The measured temperature 19 C is sent to a Domoticz RFXMeter device with address 09 and assigned via dzVents to temperature device with IDX=375. The value sent is 1337519: 1 3 375 19 - 1=Leading Number (fixed), 3=Length IDX, 375=IDX, 19=Temperature. The dzVents script listens to device changes with IDX=384 (the RFXMeter), parses the RFXMeter sValue (ULong 1337519) for the device (IDX=375) and updates the device sValue (19). Snippet: return { on = { devices = { 384 } }, execute = function(domoticz, device) local idxlen = tonumber(string.sub(device.sValue, 2, 2)) -- 3 local idx = tonumber(string.sub(device.sValue, 3, 3 + idxlen - 1)) -- 375 local svalue = tonumber(string.sub(device.sValue, 3 + idxlen, -1)) -- 19 domoticz.devices(idx).setValues(0, svalue) end } The B4R development environment offers a variety of libraries for sensors & actuators. This allows to build modular solutions. Heads Up As mentioned, this is a fit-for-purpose solution and has limitations given by the ULong value (0 - 16777215) sent from the microsontroller. This means depending requirements, checks or workarounds needs to be developed accordingly. Data Flow Sensor > Microcontroller > 433Mhz Transmitter > RFXCOM RFXtrx433e > Domoticz Hardware RFXCOM RFXtrx433e > Domoticz RFXMeter device > Domoticz dzVents > Domoticz Virtual Sensor(s). Examples RFXMeter Data for Sensors & Actuators
  • Temperature: Value Range 0 to 100; Send as value 0 - 100; Domoticz takes the value without conversion.
  • Temperature: Value Range -10 to 10; Send as value 0 - 20; Domoticz converts with offset 10 (0=0-10=-10, 20=20-10=10).
  • Humidity: Value Range 0 - 100; Send as value 0 - 100; Domoticz takes the value without conversion.
  • Switch: Value Range 0 - 1; Send as value 0 (=Off) or 1 (=On); Domoticz takes the value without conversion.
  • Up-to 7 Switches: Value Range 1NNNNNNN with N holding switch N state 0-1; Send as 10101101 with 1 as leading for the ulong value; Domoticz converts the switches states and assigns to respective switch devices.
  • Device: Value Range depends on IDX & value; Send the value to a device with given IDX. Example: 127841 (1 2 78 41) - Leading 1 followed by IDX length 2 for the IDX 78 with value 41 (max 9999); Domoticz converts the value in IDX and value and assigns the value to the device with the IDX.
  • Dimmer: Value Range 0 - 100; Send the value to a device with given IDX. Example: 1338652 (1 3 386 52) - Leading 1 followed by IDX length 3 for the IDX 386 with value 52 (max 9999, but for the dimmer is 100); Domoticz converts the value in IDX and value and assigns the value to the device with the IDX.
  • More in progress...
Why RFXMeter? An RFXMeter is a remote RF sensor transmitting encoded data from electric power, water, gas, or other metering devices. Domoticz supports RFXMeter devices connected to the hardware RFXCOM - RFXtrx433 USB 433.92MHz Transceiver. The Domoticz device type is RFXCOM with subtype RFXMeter counter. The device supports the types Energy, Gas, Water, Counter, Energy Generated and Time. The type counter is selected which supports type unsigned long (4 Bytes) from which 3 bytes are used (see next). The ULong value holds the sensor or actuator data. B4R Code Module RFXMeter The B4R solution has a B4R code module RFXMeter to send the device address, value. The code module is based on the function RFXMeter from the X10RF-Arduino open source project. If packed in a B4X Library, then the B4XLib contains the code module RFXMeter which does not need to be declared in Process_Globals. Methods Init the RFXMeter RF433 transmitter and LED. tx_pin - Signal pin of the RF433 Transmitter led_pin - Signal pin of the LED indicating data is send (0=disabled) B4X: Initialize(tx_pin As Byte, led_pin As Byte) Send value to the RFXtrx433e device. The address parameter enables to send to a dedicated Domoticz RFXMeter device. addr - Address of the RFXMeter device used as ID in Domoticz. Example: 0x09 (Domoticz ID: 09F9). value - Long range 0 - 16777215. B4X: SendValue(addr As Byte, value As ULong) Send a command to the RFXtrx433e device. data - array as byte with max length 6, i.e. data=09F98EE40501 for an address=9, value=364260. B4X: SendCommand(data() As Byte) Send an array of bytes to the RFXMeter. addr - Address of the RFXMeter device used as ID in Domoticz. Example: 0x09 (Domoticz ID: 09F9). data - Array of bytes. Example: array as Byte(1, 2, 3). B4X: SendBytes(addr As Byte, data() As Byte) Send an array of max 7 bits (value 0 or 1) to the RFXMeter. The ULong value is max 7 bits + leading 1 = 8 Bits (like 11111111). The bits can hold the state of switches, lamps, security devices. addr - Address of the RFXMeter device used as ID in Domoticz. Example: 0x09 (Domoticz ID: 09F9). data - Array of bits. Example: Sending 5 Switches with state packed in the ULong value of 111010 (with leading 1) = Array as Byte(1,1,0,1,0). B4X: SendBits(addr As Byte, bits() As Byte) Send value (ULong) to the Domoticz RFXMeter device which is used to set value of a Domoticz device with given IDX. RESTRICTION: The longer the IDX number length, the smaller the device value to stay with max number length of 8. For larger values use method Send instead. addr - Address of the RFXMeter device used as ID in Domoticz. Example: 0x09 (Domoticz ID: 09F9). idx - IDX of the Domoticz target device. This is not the RFXMeter device but the Virtual Sensor like Temperature device. value - Device value The value sent to Domoticz has following pattern: 1 = 1 - allways for leading the value. 2 = IDXLEN - Length of the IDX. Example: IDX 78 has length 2. 3 to 3 + IDXLEN - 1 = IDX of the target device. Example: 78 3 + IDXLEN to length value = Value. Example: 41. The max value is 9999. Examples: 127841 (1 2 78 41) - Leading 1 with IDX length 2 for IDX 78 with value 41 (max value 9999). Total length of the value sent is 6 (max 8). 13123999 (1 3 123 999) - Leading 1 with IDX length 3 for IDX 123 with value 999 (max value 999). Total length of the value sent is 8 (max 8). 13123499 (1 4 1234 99) - Leading 1 with IDX length 4 for IDX 1234 with value 99 (max value 99). Total length of the value sent is 8 (max 8). B4X: SendValueToIDX(addr As Byte, idx As Int, value As ULong) Note The library contains in addition some experimental methods which are worked upon. These are not listed here. Fields MAX_VALUE = 16777215 (as ULong) Max value transmitted. The max value are the first 3 bytes of the ULong value: HEX=FFFFFF, DEC=16777215. MAX_BITS = 24 (as Byte) Max number of bits transmitted. The max value is 24 bits (3 bytes of the ULong value: 11111111 11111111 11111111). MAX_BYTES = 3 (as Byte) Max number of bytes transmitted. The max value is ULong 3 Bytes FFFFFF. MAX_NUMBERS = 8 (as Byte) Max number of numbers transmitted is 8. The number needs to be kept below max value 16777215. Example bit pattern 11111111 for switch states. SIGN_POS = 1 (as Byte) Positive sign used for example for temperature device SIGN_NEG = 2 (as Byte) Negative sign used for example for temperature device Repeats = 5 (as Byte) Number of send command repeats. The recommended value is 5 repeats. Logging = False (as Boolean) Set logging to the serial line. Example Logging to the B4R IDE: B4X: RFXMeter: Send address=9, value=16807 RFXMeter: Send Address Bytes 0,1=09F9 RFXMeter: Send Value Bytes 4,2,3=0041A7 RFXMeter: Send Packet Type&Parity Byte 5=08 RFXMeter: SendCommand data=09F941A70008 Hard-/Software
  • Hardware: Arduino UNO, cheap 433Mhz Transmitter communicating to the RFXCOM RFXtrx433e USB 433.92MHz Transceiver (Firmware Ext2/1025).
  • B4R Library rRFXMeter and program examples developed with [B4R](https://www.b4x.com/b4r.html) v3.9.
  • Communication tested with [Domoticz Home Automation System](https://domoticz.com/) 2022.1 running on a Raspberry Pi 3B+ with Raspberry Pi OS (5.10.103-v7+ #1529).
1649582429520.png Files rRFXMeter.zip archive contains the class and B4R sample projects. Install The library file rRFXMeter.b4xlib is installed in the B4R additional libraries folder. From the zip archive, copy the content of the library folder, to the B4R additional libraries folder keeping the folder structure. B4X: <path to b4r additional libraries folder>\rRFXMeter.b4xlib For B4R program examples, lookup folder Examples. The B4XLib contains the code module RFXMeter which does not need to be declared in (for example) Process_Globals. Wiring B4X: 433Mhz Transmitter = Arduino UNO VCC = 5v Signal = #7 GND = GND Domoticz Configuration The RFXMeter has to be added to the Domoticz devices. This can be done by adding new hardware in the Domoticz GUI: GUI > Setup > Settings > Hardware/Devices option Allow for 5 Minutes. When running the Arduino program, the device is added with the address set to the Domoticz hardware RFXCOM - RFXtrx433 USB 433.92MHz Transceiver (Version: Ext2/1025, Name: RFXtrx433e). Example new RFXMeter with IDX set by Domoticz, address 09F9, hardware RFXtrx433e: B4X: IDX=384, Hardware=RFXtrx433e, ID=09F9, Unit=0, Name=RFXMETER, Type=RFXMeter, SubType=RFXMeter counter, Data=NNNN The device has the initial name Unknown and from type Counter. Lookup the GUI > Tab Utility > Device Unknow to change the properties via Edit. The name changed to RFXMeter. To hide the device from the GUI tabs (like Utility), set the the name to $RFXMeter. Depending requirements, several RFXMeter devices can be defined - ensure each has a unique address. Examples The first examples simulate a device which value is sent to Domoticz and handled by an Automation Event dzVents. In addition, a DHT22 Temperature & Humidity module example is given. More examples in the folder Examples, like Reed Switch, Thermosensor MAX6675. Example Basic (Simulation) This basic example sends a random generated value from an Arduino UNO to the Domoticz RFXMeter device (as created previous). Additional Libraries: rRFXMeter (rRFXMeter.b4xlib) B4R Code: Sub Process_Globals Public serialLine As Serial Private RFXMeter_Address As Byte = 0x09 'Address of the Domoticz RFXMeter used for the Send method (multiple addresses can be used) Private TX_PINNR As Byte = 7 '433 Mhz transmitter data pin Private LED_PINNR As Byte = 13 'LED to indicate data is transmitted Private Timer_Test As Timer End Sub Private Sub AppStart serialLine.Initialize(115200) RFXMeter.Initialize(TX_PINNR, LED_PINNR) RFXMeter.Logging = True Timer_Test.Initialize("Timer_Test_Tick", 15000) Timer_Test.Enabled = True Timer_Test_Tick End Sub Sub Timer_Test_Tick 'Generate a random ULong value between 0 and MAX_VALUE - 1 and assign to a Domoticz RFXMeter device (Example): 'IDX=384, Hardware=RFXtrx433e, ID=09F9, Unit=0, Name=RFXMETER, Type=RFXMeter, SubType=RFXMeter counter, Data=NNNNNN 'Example: RFXMeter with address=9, value=14307615 is converted to SendCommand: data=09F9511FDA01 (length=6 bytes) Dim value As ULong = Rnd(0, RFXMeter.MAX_VALUE - 1) 'Send the value to the Domoticz RFXMeter device with the given address. RFXMeter.SendValue(RFXMeter_Address, value) Log("***") End Sub Domoticz Automation Event dzVents The script listens to device changes with IDX=384. If changed, by receiving a new value from the Arduino, the value is converted from sValue to a number. This number can used for next actions, like updating a device or trigger an alarm. Domoticz dzVents Script: -- RFXMeterBasic.dzVents local rfxmeter = 384 return { on = { devices = { rfxmeter } }, logging = { level = domoticz.LOG_DEBUG, marker = 'RFXMETER', }, execute = function(domoticz, device) -- Example: device.sValue=11345 domoticz.log(("%s: %s"):format(device.name, device.sValue)) -- Convert the sValue from string to number local value = tonumber(device.sValue) domoticz.log(("Value=%.f"):format(value)) end } Example RFXMeter to Voltage (Simulation) On the Arduino UNO, generate a random value between 0 - 12000, send to the Domoticz RFXMeter device (IDX=384) and assign the value to a virtual sensor type Voltage (IDX=385) via an Automation Event dzVents. B4R Code: Sub Process_Globals Public serialLine As Serial Private Timer_Test As Timer End Sub Private Sub AppStart serialLine.Initialize(115200) RFXMeter.Initialize(7, 13) Timer_Test.Initialize("Timer_Test_Tick", 30000) Timer_Test.Enabled = True Timer_Test_Tick End Sub Sub Timer_Test_Tick 'Generate a random value between 0 and 12000, i.e. 6864 assigned to a Voltage device in Domoticz with data 6.864V. Dim value As Long = Rnd(0, 12001) Log("Sending Voltage=", value) RFXMeter.SendValue(0x09, value) End Sub Domoticz Automation Event dzVents The script listens to device changes with IDX=384 and updates a Voltage device with IDX=385. Domoticz dzVents Script: local rfxmeter = 384 local rfxmetervoltage = 385 return { on = { devices = { rfxmeter } }, logging = { level = domoticz.LOG_DEBUG, marker = 'RFXMETER', }, execute = function(domoticz, device) domoticz.log(("%s: %s"):format(device.name, device.sValue)) -- Convert the sValue from string to number local value = tonumber(device.sValue) -- Convert the Voltage value (mV) for the virtual sensor Voltage value (V) value = value * 0.001 -- Update the Voltage device domoticz.devices(rfxmetervoltage).updateVoltage(value) domoticz.log(("Voltage=%.2f"):format(value)) end } Domoticz Log B4X: dzVents: Info: Handling events for: "RFXMETER", value: "7712" dzVents: Info: RFXMETER: ------ Start internal script: RFXMeter: Device: "RFXMETER (RFXtrx433e)", Index: 384 dzVents: Info: RFXMETER: RFXMETER: 7712 dzVents: Debug: RFXMETER: Processing device-adapter for RFXVoltage: Voltage device adapter dzVents: Info: RFXMETER: Voltage=7.71 dzVents: Info: RFXMETER: ------ Finished RFXMeter Example RFXMeter to IDX (Simulation) Sent the RFXMeter value to a Domoticz device with given IDX. B4R Code: Sub Process_Globals Public serialLine As Serial Private RFXMeter_Address As Byte = 0x09 'Address of the Domoticz RFXMeter used for the Send method (multiple addresses can be used) Private TX_PINNR As Byte = 7 '433 Mhz transmitter data pin Private LED_PINNR As Byte = 13 'LED to indicate data is transmitted Private Timer_Test As Timer End Sub Private Sub AppStart serialLine.Initialize(115200) RFXMeter.Initialize(TX_PINNR , LED_PINNR) RFXMeter.Logging = True Timer_Test.Initialize("Timer_Test_Tick", 15000) Timer_Test.Enabled = True Timer_Test_Tick End Sub Sub Timer_Test_Tick 'Generate RFXMeter value for Domoticz Humidity device IDX=385 and value between 0 - 100%. Dim value As ULong = Rnd(0, 101) 'Sent the value RFXMeter.SendValueToIDX(RFXMeter_Address, 385, value) End Sub Domoticz Automation Event dzVents Domoticz dzVents Script: local rfxmeter = 384 local rfxmetertemphum = 385 return { on = { devices = { rfxmeter } }, logging = { level = domoticz.LOG_DEBUG, marker = 'RFXMETERHUMIDITY385', }, execute = function(domoticz, device) -- Convert the value to a given idx and update the device sValue -- 385, VirtualSensors, 141D1, 1, RFXHumidity, Humidity, LaCrosse TX3, Humidity 50 % -- Method string.sub extracts a piece of the string s, from the i-th to the j-th character inclusive. In Lua, the first character of a string has index 1 -- The humidity device is updated via HTTP: Processing device-adapter for RFXHumidity: Humidty device adapter -- RFXMETER: OpenURL: url = http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=385&nvalue=81&svalue=0&parsetrigger=false -- Get the length of the idx at pos 2 local idxlen = tonumber(string.sub(device.sValue, 2, 2)) -- Get the idx starting at pos 3 of the sValue local idx = tonumber(string.sub(device.sValue, 3, 3 + idxlen - 1)) -- The humidity is set as nValue. If the device is a Temp+Humidity then the temperature is set as sValue. local nvalue = tonumber(string.sub(device.sValue, 3 + idxlen, -1)) domoticz.log(("IDX %d=%d"):format(idx, nvalue)) -- Update the device if idx not 0. The humidity status is not updated but set to 0 (=normal) if (idx ~= 0) then domoticz.devices(idx).setValues(nvalue, 0) domoticz.log(("%d: nValue=%d, sValue=%s"):format(idx, domoticz.devices(idx).nValue, domoticz.devices(idx).sValue)) end end } Example DHT22 Sensor The Arduino sends dht22 sensor data (temperature, humidity) via the 433Mhz Transmitter to the RFXCOM RFXtrx433e connected via USB with the Raspberry Pi running Domoticz. The data is received by a RFXMeter device, parsed into temperature & humidity values and a Temp+humidity device is updated. B4R Code: Sub Process_Globals Public serialLine As Serial 'RFXMeter & 433 TX Module Private RFX_DEVADDR As Byte = 0x09 'RFXMeter address which is used as Domoticz ID Private RFX_PINTX As Byte = 7 'Transmi pin Private RFX_PINLED As Byte = 13 'Internal Arduino UNO LED 'DHT22 Module Private dht22 As DHTEx 'Lib rDHTEx Private DHT22_PINNR As UInt = 0x08 'DHT22 signal connected pin#8 Private humidity As Float Private temperature As Float 'Timer for data sampling Private timerDataSampling As Timer Private DATASAMPLING_INTERVAL As ULong = 60000 End Sub Private Sub AppStart serialLine.Initialize(115200) RFXMeter.Initialize(RFX_PINTX, RFX_PINLED) RFXMeter.Logging = False dht22.Initialize timerDataSampling.Initialize("TimerDataSampling_Tick", DATASAMPLING_INTERVAL) timerDataSampling.Enabled = True TimerDataSampling_Tick End Sub Sub TimerDataSampling_Tick If Not(ReadDHT22) Then timerDataSampling.Enabled = False End If End Sub 'Read data from the DHT22 sensor, check the read result and sent the data (without digits) to Domoticz. Private Sub ReadDHT22 As Boolean Dim result As Boolean Dim readReturn As Int = dht22.Read22(DHT22_PINNR) If readReturn == dht22.READ_OK Then temperature = dht22.GetTemperature humidity = dht22.GetHumidity 'Temperature =18 C, Humidity = 45 %RH Log("DHT22 Temperature =", NumberFormat(temperature,0,0) , " C", ", Humidity = ", NumberFormat(humidity,0,0), " %RH") 'Correct the temperature for neg values as can only sent positive values Dim temperaturesign As Byte = RFXMeter.SIGN_POS If temperature < 0 Then temperaturesign = RFXMeter.SIGN_NEG temperature = temperature * -1 End If RFXMeter.SendBytes(RFX_DEVADDR, Array As Byte(temperaturesign, temperature , humidity)) result = True Else 'ERROR Reading DHT22 Module (code=-2). Note: -2 is timeout (see RFXMeter defines) Log("[ERROR] Can not read the DHT22 Module (code=", readReturn, ").") result = False End If Return result End Sub Domoticz Automation Event dzVents Domoticz dzVents Script: -- IDX of the devices used. local IDX_RFXMETER = 384 local IDX_TEMPHUM = 385 -- Convert a number to N ints. -- value - number to convert (integer or long). Float is not handled. -- nrbytes - number of bytes to convert from the value. -- Return table with N ints entries. local function convert_to_ints(value, nrbytes) local result = {} for i = 0, nrbytes - 1 do -- Convert the byte to a number (int) and assign to the table (note the table index starts with 1 and not 0) result[i+1] = math.floor((value / (2 ^ (i * 8))) % (2 ^ 8)) -- result[i+1] = (value >> (i * 8)) & 0xFF end return result end return { on = { devices = { IDX_RFXMETER } }, logging = { level = domoticz.LOG_DEBUG, marker = 'RFXMETERDHT22', }, -- Listen to RFXMeter device changes execute = function(domoticz, device) -- Example: device.sValue=131889 holds 3 bytes as HEX value=020331: -- HEX 02=temperature sign neg, HEX 03=temperature 3Celsius, converted to -3C because sign is 2 (1 is pos value), HEX 31=humidity 49% domoticz.log(("%s: %s"):format(device.name, device.sValue)) -- Convert the sValue from string to number local value = tonumber(device.sValue) -- domoticz.log(("Value=%.f"):format(value)) -- Convert the RFXMeter value in a table with 3 ints local data = convert_to_ints(value, 3) domoticz.log(data) local sign = tonumber(data[3]) local temperature = tonumber(data[2]) if (sign == 2) then temperature = temperature * -1 end local humidity = data[1] -- dzVents: Info: RFXMETER: s=2, t=-3, h=49 domoticz.log(("s=%d, t=%d, h=%d"):format(sign, temperature, humidity)) -- Assign the values to a Domoticz device -- Note: status is not used: domoticz.HUM_NORMAL, HUM_COMFORTABLE, HUM_DRY, HUM_WET or HUM_COMPUTE. domoticz.devices(IDX_TEMPHUM).updateTempHum(temperature, humidity) -- status end } Hints
  • Hide the RFXMeter from the Domoticz tabs: Put $ in from of the device name, i.e. $RFXMETER instead RFXMETER.
  • For tests delete device history: http://domoticz-ip/json.htm?type=co...idx=382&fromdate=2022-01-01&todate=2022-12-01
  • When using multiple Domoticz devices connected to the same RFXMeter device, ensure to select the right device in the Automation Event(s) dzVents or define multiple RFXMeter devices assigned to virtual sensors. This to avoid data clashed when RFXMeter device is updated.
ToDo
  • Add more sensor & actuator examples
  • Consider receiving 433Mhz signals to trigger actuators or change settings like timer intervals.
Acknowledgements
  • Anywhere Software for providing B4R (and of course the whole B4X suite).
  • X10RF Open Source Projects X10RF & X10RF-Arduino.
  • RFXCOM for providing the hardware RFXtrx433e and manuals.
Licence GNU General Public License v3.0. Developed for personal use only.

Attachments

  • rRFXMeter-100.zip 83.6 KB · Views: 464
Last edited: Jul 22, 2022 Click to expand... rwblinn Written by

rwblinn

Well-Known Member From Germany Licensed User Longtime User
  • Messages 1,166
  • Reaction score 2,439
  • Points 163
You must log in or register to reply here.

Similar Threads

rwblinn
  • Article
B4R Library rAdafruitPWMServoDriver
  • rwblinn
  • Oct 4, 2025
  • B4R Libraries
Replies 0 Views 375 Oct 4, 2025 rwblinn rwblinn rwblinn
  • Article
B4R Library rIRRemoteEx
  • rwblinn
  • May 6, 2025
  • B4R Libraries
Replies 3 Views 2K Jun 6, 2025 thetrueman T rwblinn
  • Article
B4R Library rLovyanGFXEx ESP32
  • rwblinn
  • Apr 13, 2025
  • B4R Libraries
Replies 1 Views 4K Jun 8, 2025 rwblinn rwblinn rwblinn
  • Article
B4R Library rBLEBeacon ESP32
  • rwblinn
  • Feb 11, 2025
  • B4R Libraries
Replies 1 Views 2K Feb 18, 2025 rwblinn rwblinn hatzisn
  • Article
B4R Library rSPI
  • hatzisn
  • Feb 2, 2021
  • B4R Libraries
2 Replies 37 Views 12K Jan 21, 2022 hatzisn hatzisn Share: Facebook Twitter Reddit Pinterest Tumblr WhatsApp Email Share Link
  • Home
  • Forums
  • B4R - Arduino, ESP8266 and ESP32
  • B4R Libraries
  • This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register. By continuing to use this site, you are consenting to our use of cookies. Accept Learn more…
Top

Tag » Arduino X10rf.h