Guten Morgen.
habe nun mal versucht wie Tom geschrieben hat.
TomMajor hat geschrieben: ↑12.07.2020, 00:13
Leg einen neuen hb-uni-sensor1_fw0x01.xml an, mache dort den ...const_value="0x01" Eintrag und im Arduino sketch natürlich auch die Firmware 01 setzen.
dann diese xml unter /customized_firmware ablegen und RM neustarten. Vielleicht geht es so auf Anhieb, vlt. nicht.
Neue xml für RM zu entwickeln ist viel Trial and Error nach meinen Erfahrungen.
Also neue hb-uni-sensor1_fw0x01.xml angelegt und hier den kompletten Inhalt von der "alten" hb-uni-sensor1.xml reinkopiert. Nun noch diesesn Eintrag (und nur diesen, nichts anderes verändert) <parameter index="9.0" size="1.0" cond_op="E" const_value="0x13" /> in
<parameter index="9.0" size="1.0" cond_op="E" const_value="0x01" />
abgeändert und abgespeichert mit den neuen Namen hb-uni-sensor1_fw0x01.xml. Jetzt noch RM neugestartet. In der Zeit den Sensor neu geflasht. im Sketch habe ich nur aus der 0x13 eine 0x01 gemacht. Mehr nicht.
....
const struct DeviceInfo PROGMEM devinfo = {
cDEVICE_ID, // Device ID
cDEVICE_SERIAL, // Device Serial
{ 0xF1, 0x03 }, // Device Model
// Firmware Version
// die CCU Addon xml Datei ist mit der Zeile <parameter index="9.0" size="1.0" cond_op="E" const_value="0x13" />
// fest an diese Firmware Version gebunden! cond_op: E Equal, GE Greater or Equal
// bei Änderungen von Payload, message layout, Datenpunkt-Typen usw. muss die Version an beiden Stellen hochgezogen werden!
0x01,
as::DeviceType::THSensor, // Device Type
{ 0x01, 0x01 } // Info Bytes
.....
Sollte doch erstmal soweit Richtig sein, oder?
IM RM habe ich alle HB-Uni-Sensoren abgelernt bzw.rausgelöscht und neu gestartet. Jetzt wieder versucht den Sensor neu anzulernen. Klappt aber irgendwie nicht, läßt sich einfach nicht mehr anlernen.
Also alles wieder Rückgängig gemacht und alten IST Zustand wieder hergestellt. Sensor ließ sich nun wieder problemlos anlernen.
Nun habe ich mal versucht den Vorschlag von jp112sdl umzusetzen.
In der .xml habe ich dazu einen weiteren Channel hinzugefügt
Code: Alles auswählen
<?xml version="1.0" encoding="iso-8859-1"?>
<device version="2" rx_modes="CONFIG,WAKEUP,LAZY_CONFIG" cyclic_timeout="45000">
<supported_types>
<type name="HB-UNI-Sensor1" id="HB-UNI-Sensor1" updatable="true">
<parameter index="9.0" size="1.0" cond_op="E" const_value="0x13" />
<parameter index="10.0" size="2.0" const_value="0xF103" />
</type>
</supported_types>
<paramset type="MASTER" id="hm_uni_sen_dev_master">
<parameter id="DEVICE_LED_MODE">
<logical type="option">
<option id="OFF" />
<option id="ON" default="true" />
</logical>
<physical type="integer" interface="config" list="0" index="5.6" size="0.2" />
<conversion type="integer_integer_map">
<value_map device_value="0x00" parameter_value="0" />
<value_map device_value="0x01" parameter_value="1" />
</conversion>
</parameter>
<parameter id="LOW_BAT_LIMIT">
<logical type="float" min="0.9" max="5.0" default="2.2" unit="V" />
<physical type="integer" interface="config" list="0" index="18" size="1" />
<conversion type="float_integer_scale" factor="10" />
</parameter>
<parameter id="TRANSMIT_DEV_TRY_MAX">
<logical type="integer" min="1" max="10" default="6" />
<physical type="integer" interface="config" list="0" index="20" size="1" />
</parameter>
<parameter id="Sendeintervall">
<logical type="integer" min="60" max="43200" default="600" unit="s" />
<physical type="integer" interface="config" list="0" index="32" size="2" />
</parameter>
<parameter id="Hoehe ueber NN">
<logical type="integer" min="0" max="10000" default="0" unit="m" />
<physical type="integer" interface="config" list="0" index="34" size="2" />
</parameter>
</paramset>
<channels>
<channel index="0" type="MAINTENANCE" ui_flags="internal" class="maintenance" count="1">
<paramset type="MASTER" id="maint_ch_master" />
<paramset type="VALUES" id="maint_ch_values">
<parameter id="UNREACH" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="UNREACH" />
</parameter>
<parameter id="STICKY_UNREACH" operations="read,write,event" ui_flags="service,sticky">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="STICKY_UNREACH" />
</parameter>
<parameter id="CONFIG_PENDING" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="CONFIG_PENDING" />
</parameter>
<parameter id="LOWBAT" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="LOWBAT" />
</parameter>
<parameter id="RSSI_DEVICE" operations="read,event">
<logical type="integer" />
<physical type="integer" interface="internal" value_id="RSSI_DEVICE" />
</parameter>
<parameter id="RSSI_PEER" operations="read,event">
<logical type="integer" />
<physical type="integer" interface="internal" value_id="RSSI_PEER" />
</parameter>
<parameter id="DEVICE_IN_BOOTLOADER" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="DEVICE_IN_BOOTLOADER" />
</parameter>
<parameter id="UPDATE_PENDING" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="UPDATE_PENDING" />
</parameter>
</paramset>
</channel>
<channel index="1" type="WEATHER" autoregister="true">
<link_roles>
<source name="WEATHER_TH" />
</link_roles>
<paramset type="MASTER" id="HB-UNI-Sensor1_master" />
<paramset type="VALUES" id="HB-UNI-Sensor1_values">
<parameter id="TEMPERATURE" operations="read,event">
<logical type="float" min="-50.0" max="120.0" unit="°C" />
<physical type="integer" interface="command" value_id="TEMPERATURE">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="10.0" />
<description>
<field id="AutoconfRoles" value="WEATHER" />
</description>
</parameter>
<parameter id="AIR_PRESSURE" operations="read,event">
<logical type="float" min="500.0" max="1100.0" unit="hPa" />
<physical type="integer" interface="command" value_id="AIR_PRESSURE">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="10.0" />
<description>
<field id="AutoconfRoles" value="WEATHER" />
</description>
</parameter>
<parameter id="HUMIDITY" operations="read,event">
<logical type="integer" min="0" max="100" unit="%" />
<physical type="integer" interface="command" value_id="HUMIDITY">
<event frame="WEATHER_EVENT" />
</physical>
<description>
<field id="AutoconfRoles" value="WEATHER" />
</description>
</parameter>
<parameter id="LUX" operations="read,event">
<logical type="float" min="0.00" max="200000.00" unit="Lux" />
<physical type="integer" interface="command" value_id="LUX" no_init="true">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="100.0" />
</parameter>
<parameter id="Wassertemperatur" operations="read,event">
<logical type="float" min="-50.0" max="120.0" unit="°C" />
<physical type="integer" interface="command" value_id="Wassertemperatur" no_init="true">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="10.0" />
<description>
<field id="AutoconfRoles" value="WEATHER" />
</description>
</parameter>
<parameter id="OPERATING_VOLTAGE" operations="read,event">
<logical type="float" min="0.5" max="5.5" unit="V" />
<physical type="integer" interface="command" value_id="OPERATING_VOLTAGE">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="1000.0" />
</parameter>
</paramset>
<paramset type="LINK" id="HB-UNI-Sensor1_link"></paramset>
</channel>
<channel index="2" type="WEATHER" count="1">
<paramset type="MASTER" id="HB-UNI-Sensor1_master" />
<paramset type="VALUES" id="HB-UNI-Sensor1_values">
<parameter id="TEMPERATURE" operations="read,event">
<logical type="float" min="-50.0" max="120.0" unit="°C" />
<physical type="integer" interface="command" value_id="TEMPERATURE">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="10.0" />
<description>
<field id="AutoconfRoles" value="WEATHER" />
</description>
</parameter>
</channel>
</channels>
<frames>
<frame id="WEATHER_EVENT" direction="from_device" event="true" fixed_channel="1" type="0x70">
<parameter type="integer" signed="true" index="9" size="1.7" param="TEMPERATURE" />
<parameter type="integer" index="11" size="2.0" param="AIR_PRESSURE" />
<parameter type="integer" index="13" size="1.0" param="HUMIDITY" />
<parameter type="integer" index="14" size="4.0" param="LUX" />
<parameter type="integer" signed="true" index="18" size="2.0" param="Wassertemperatur" />
<parameter type="integer" index="20" size="2.0" param="OPERATING_VOLTAGE" />
</frame>
<frame id="MEASURE_EVENT" direction="from_device" event="true" type="0x70" channel_field="17.0:0.6">
<parameter type="integer" signed="true" index="22.0" size="2.0" param="TEMPERATURE"/>
</frames>
<paramset_defs></paramset_defs>
</device>
.......
<channel index="2" type="WEATHER" count="1">
<paramset type="MASTER" id="HB-UNI-Sensor1_master" />
<paramset type="VALUES" id="HB-UNI-Sensor1_values">
<parameter id="TEMPERATURE" operations="read,event">
<logical type="float" min="-50.0" max="120.0" unit="°C" />
<physical type="integer" interface="command" value_id="TEMPERATURE">
<event frame="WEATHER_EVENT" />
</physical>
<conversion type="float_integer_scale" factor="10.0" />
<description>
<field id="AutoconfRoles" value="WEATHER" />
</description>
</parameter>
</channel>
</channels>
<frames>
<frame id="WEATHER_EVENT" direction="from_device" event="true" fixed_channel="1" type="0x70">
<parameter type="integer" signed="true" index="9" size="1.7" param="TEMPERATURE" />
<parameter type="integer" index="11" size="2.0" param="AIR_PRESSURE" />
<parameter type="integer" index="13" size="1.0" param="HUMIDITY" />
<parameter type="integer" index="14" size="4.0" param="LUX" />
<parameter type="integer" signed="true" index="18" size="2.0" param="Wassertemperatur" />
<parameter type="integer" index="20" size="2.0" param="OPERATING_VOLTAGE" />
</frame>
<frame id="MEASURE_EVENT" direction="from_device" event="true" type="0x70" channel_field="17.0:0.6">
<parameter type="integer" signed="true" index="22.0" size="2.0" param="TEMPERATURE"/>
</frames>
........
RM wieder neu gestartet (HB-UNI-Sensor vorher auch wieder gelöscht) und versucht neu anzulernen.
Aber auch mit dieser .xml läßt sich der Sensor nicht mehr anlernen.
Bin nun wieder komplett auf den alten IST Zustand und jetzt geht es erstmal wieder. Steht zwar nun bei beiden Wassertemperatur drin.
Ich bin einfach zu blöd dazu die .xml zu bearbeiten. Sorry Euch beiden danke ich dennoch für Eure Hilfestellung , TomMajor und jpl112sdl
Vielleicht findet sich ja mal jemand der eine funktionierende Originale .xml Datei von TomMajor mit einen zusätzlichen Channel, ähnlich wie bei jp112sdl seiner hb-uni-sen-lev-us_ge_v1_2 Datei bereitstellt.
Das wäre natürlich dann das NonPlusUltra. Vielen Dank nochmals und noch einen schönen Sonntag.
PS: das Dumme ist bei mir nur, ich habe mein Büro/Hobbyraum wo der PC steht im Keller. Den RM habe ich aber draußen unter den Carport im Schaltschrank verbaut. Die Werte sind also dementsprechend schlecht, weit unter -90 dBm etc.