HB-UNI-Sensor1 - Neuauflage

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

magnum1795
Beiträge: 83
Registriert: 13.05.2020, 17:56
System: Alternative CCU (RaspberryMatic etc.)
Hat sich bedankt: 14 Mal
Danksagung erhalten: 7 Mal

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von magnum1795 » 12.07.2020, 17:15

ivo-int hat geschrieben:
12.07.2020, 16:26
...
Ich bin der Meinung dass magnum1795 irgendwo einen Fehler gemacht hat. z.B. Device Serial und/oder Device ID nicht erhöht hat.
...
Gruss Ivo
Mhhh??? Eigentlich nicht. Ich habe auch auf 003 bei Serial und Device erhöht. Ich sehe aber das du ja nur eine .xml im customized_firmware drin hast. Die mit Original hast du ja wahrscheinlich nur umbenannt und diese sollte ja nicht benutzt werden. Oder hast du da noch was anders geändert?

Ich habe ja bereits eine hb-uni-sensor1.xml drin die ich geändert habe. Um nun den zweiten Sensor zu betreiben, habe ich eben so wie Tom vorgeschlagen hatte zusätzlich noch eine zweite hb-uni-sensor1 und diese dann hb-uni-sensor1_fw0x01.xml benannt. Dann im Sketch noch die Serial und Device auf 003 erhöht. RM wurde neu gestartet, zuvor aber noch den einen Sensor rausgelöscht so das nur noch einer drin ist. (Serial und Device 001)

Der zweite Unisensor wird nun aber nicht mehr angelernt. Habe es mehrmals probiert.

die erste .xml hat 0x13 drin, die zweite neu angelegte (hb-uni-sensor1_fw0x01.xml) dann 0x01 . Wurde auch beim flashen berücksichtigt und geändert. Also zweiter Sensor hat 0x01 und Serial und Device 003 drin, während der erste mit Device und Serial 001 die 0x13 hat.

PS: spielen eventuell die Rechte eine Rolle? Momentan haben sie 0600. Wäre es besser sie auf 0644 bzw. sogar auf 0755 zu setzen?
Dateianhänge
hb-uni-sensor1_fw0x01.xml.jpg
hb-uni-sensor1.xml.jpg
unisensor 14.jpg
unisensor 13.jpg
Zuletzt geändert von magnum1795 am 12.07.2020, 17:44, insgesamt 1-mal geändert.

ivo-int
Beiträge: 41
Registriert: 13.04.2020, 08:55
System: Alternative CCU (RaspberryMatic etc.)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von ivo-int » 12.07.2020, 17:36

Hallo magnum1795

Das ist korrekt, nur die XML mit der Bezeichnung hb-uni-sensor1 kann angelernt werden. Tom hat aber mehrere Versionen des hb-uni-sensor1_fw....
Der Grund ist, so wie ich es verstanden und gelesen habe, dass nach einem Homematic Update sowie auch Addon Update die bereits angelernten Geräte wieder korrekt eingebunden werden können.

Wenn du eine ältere Version neu anlernen möchtest dann musst du diese wieder in hb-uni-sensor1.xml umbenennen, Raspi neu starten. Dann kannst du auch die älteren Versionen wieder anlernen. Das ist aus meiner Sicht ja so gewollt und auch richtig. Normalerweise entsteht nicht gleich eine komplett anderes Gerät.

Aus diesem Grund wurden ja die Device Modelle vorhanden. Aber dieses Kapitel ist, wie Jerom geschrieben hat, etwas komplexer. Wenn ich etwas mehr Zeit habe beschäftige ich mich damit.

Im Moment kann ich aber mit den beiden Addons gut leben.

Gruss Ivo
Raspberrymatic auf einem Raspi 4 4GB mit 2 LAN Gateways,
43 RF Geräte, 6 IP Geräte und 21 Cuxd Geräte
hm_pdetect, E-Mail, XML-API, JB HB Devices, CUx-Daemon, CCU-Historian auf einem separaten Raspi

jp112sdl
Beiträge: 5766
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 245 Mal
Danksagung erhalten: 495 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von jp112sdl » 12.07.2020, 17:49

magnum1795 hat geschrieben:
12.07.2020, 17:15
PS: spielen eventuell die Rechte eine Rolle? Momentan haben sie 0600. Wäre es besser sie auf 0644 bzw. sogar auf 0755 zu setzen?
644 ist eigentlich default, auch bei den originalen Files.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

jp112sdl
Beiträge: 5766
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 245 Mal
Danksagung erhalten: 495 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von jp112sdl » 12.07.2020, 17:54

magnum1795 hat geschrieben:
12.07.2020, 17:15
Also zweiter Sensor hat 0x01 und Serial und Device 003 drin, während der erste mit Device und Serial 001 die 0x13 hat.
magnum1795 hat geschrieben:
12.07.2020, 17:15
(Serial und Device 001)
magnum1795 hat geschrieben:
12.07.2020, 17:15
Ich habe auch auf 003 bei Serial und Device erhöht.
Ich kann nun gar nicht mehr folgen

Kannst du mal die deviceInfo Blöcke von beiden Geräten (in Code-Tags :wink: ) posten?
Also so:

Code: Alles auswählen

const struct DeviceInfo PROGMEM devinfo = {
    { 0xA5, 0xA5, 0x01 },        // Device ID
    "UNISENS001",                // Device Serial
    { 0xF1, 0x03 },              // Device Model
    0x13,                        //Firmware Version
    as::DeviceType::THSensor,    // Device Type
    { 0x01, 0x01 }               // Info Bytes
};

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

magnum1795
Beiträge: 83
Registriert: 13.05.2020, 17:56
System: Alternative CCU (RaspberryMatic etc.)
Hat sich bedankt: 14 Mal
Danksagung erhalten: 7 Mal

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von magnum1795 » 12.07.2020, 18:06

ivo-int hat geschrieben:
12.07.2020, 17:36
Hallo magnum1795

Das ist korrekt, nur die XML mit der Bezeichnung hb-uni-sensor1 kann angelernt werden. Tom hat aber mehrere Versionen des hb-uni-sensor1_fw....
Der Grund ist, so wie ich es verstanden und gelesen habe, dass nach einem Homematic Update sowie auch Addon Update die bereits angelernten Geräte wieder korrekt eingebunden werden können.

Wenn du eine ältere Version neu anlernen möchtest dann musst du diese wieder in hb-uni-sensor1.xml umbenennen, Raspi neu starten. Dann kannst du auch die älteren Versionen wieder anlernen. Das ist aus meiner Sicht ja so gewollt und auch richtig. Normalerweise entsteht nicht gleich eine komplett anderes Gerät.

Aus diesem Grund wurden ja die Device Modelle vorhanden. Aber dieses Kapitel ist, wie Jerom geschrieben hat, etwas komplexer. Wenn ich etwas mehr Zeit habe beschäftige ich mich damit.

Im Moment kann ich aber mit den beiden Addons gut leben.

Gruss Ivo
Mhhh??? das ist aber blöd, aber Einleuchtend. Wenn ich jetzt also den Zweiten Sensor anlernen möchte, müsste ich also die Datei wieder umbennen in hb-uni-sensor1.xml und die erste dann auch wie du das Original noch anhängen. Damit sollte ich ja den zweiten anlernen können.

Frage ist aber jetzt, wie verhält es sich wenn es ein Update gibt? Da ist ja im customized_firmware ja jetzt die eigentliche Originale (die zuvor umbenannt wurde in hb-uni-sensor1 Original.xml und die für den zweiten Sensor hb-uni-sensor1.xml drin. Wass passiert dann? Werden beide wieder beim update zurückgespielt? Dann sollte es ja wieder nicht funktionieren da es eine hb-uni-sensor1 original.xml ja nicht gibt.

Fragen über Fragen. mal sehn was Tom dazu sagt.

Am liebsten wäre mir dann schon mit dem zweiten Channel. Das bekomme ich aber so alleine leider nicht ohne Hilfe hin.

@jp112sdl
hattest du dir mal die .xml angeschaut wo ich den zweiten Channel eingefügt habe? Wäre das so Richtig und was müsste ich im Sketch dann noch ändern?
Vielen dank schonmal


erster Sensor

Code: Alles auswählen

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!
    0x13,
zweiter Sensor

Code: Alles auswählen

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
und in der Device_Examples.h einmal das für den ersten Sensor

Code: Alles auswählen

#define cDEVICE_ID      { 0xA5, 0xA5, 0x01 }
#define cDEVICE_SERIAL  "UNISENS001"
und für den zweiten Sensor das hier

Code: Alles auswählen

#define cDEVICE_ID      { 0xA5, 0xA5, 0x03 }
#define cDEVICE_SERIAL  "UNISENS003"

jp112sdl
Beiträge: 5766
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 245 Mal
Danksagung erhalten: 495 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von jp112sdl » 12.07.2020, 18:25

Was mir grad noch einfällt:
- Nach jeder Änderung an den XML Dateien, startest du die CCU neu?
- Leerzeichen in Dateinamen sind immer unschön. Keine Ahnung, ob der RFD das nimmt

Ansonsten sieht die device Info erstmal ok aus.
magnum1795 hat geschrieben:
12.07.2020, 18:06
hattest du dir mal die .xml angeschaut wo ich den zweiten Channel eingefügt habe? Wäre das so Richtig und was müsste ich im Sketch dann noch ändern?
Bin momentan immer nur kurz am Laptop und hab keine Zeit für Details.
Sorry. Kann grad nur grobe Hinweise geben.
TomMajor hat geschrieben:
12.07.2020, 13:58
ich kann mal versuchen meinen Vorschlag mit zweitem Gerät / Firmware 01 usw. bei Gelegenheit selber zu testen wo da das Problem dort liegt.
Nur zeitlich wann genau kann ich euch momentan nichts versprechen.
Warte mal auf Tom.
Ich will ihm da auch nicht zu viel in seinem Projekt dazwischen funken.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

magnum1795
Beiträge: 83
Registriert: 13.05.2020, 17:56
System: Alternative CCU (RaspberryMatic etc.)
Hat sich bedankt: 14 Mal
Danksagung erhalten: 7 Mal

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von magnum1795 » 12.07.2020, 18:34

jp112sdl hat geschrieben:
12.07.2020, 18:25
Was mir grad noch einfällt:
- Nach jeder Änderung an den XML Dateien, startest du die CCU neu?
- Leerzeichen in Dateinamen sind immer unschön. Keine Ahnung, ob der RFD das nimmt

Ansonsten sieht die device Info erstmal ok aus.

...
ja, immer neustart des RM durchgeführt. Leerzeichen? ist ja eigentlich nur in der custmized_firmware für die erste, Originale .xml. Diese wird ja nicht verwendet, sondern die hb-uni-sensor1.xml
ivo hatte ja was geschrieben das man nur die hb-uni-sensor1.xml anlernen kann. Und da ich ja bereits eine geänderte hb-uni-sensor1.xml habe, wurde diese nun nochmal umbenannt und Original hinten angehängt. Somit ist dann zum anlernen nur noch die hb-uni-sensor1.xml relevant.

oder welche Leerzeichen meinst du? Könnte ja , wenn es wichtig ist die erste hb-uni-sensor1 Original ja in hb-uni-sensor1_original.xml umbenennen.

Habe es mal umbenannt und Rechte auf 644 gesetzt. :P Aber noch nicht neugestartet etc.


PS: danke ivo konnte ich jetzt zwar den Zweiten Sensor mit 0x01 anlernen, aber es gibt nun wieder das nächste Problen. Bei beiden wird jetzt nicht mehr die Temperatur vom DS18B20 angezeigt. :(
am Sketch wurde ja nichts verändert.
Dateianhänge
uni sensor 1-10.jpg
uni sensor 1-9.jpg
uni sensor 1-8.jpg
unisensor 15.jpg

jp112sdl
Beiträge: 5766
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 245 Mal
Danksagung erhalten: 495 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von jp112sdl » 12.07.2020, 22:15

Pack mal in die XML noch
in die <frames>...</frames>

Code: Alles auswählen

   <frame id="MEASURE_EVENT" direction="from_device" event="true" type="0x70" channel_field="18.0:0.6">
      <parameter type="integer" signed="true" index="19.0" size="2.0" param="TEMPERATURE" />
   </frame>
   
und über </channels>:

Code: Alles auswählen

    <channel index="2" type="WEATHER" count="1">
      <link_roles>
        <source name="WEATHER_T" />
      </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" no_init="true">
            <event frame="MEASURE_EVENT" />
          </physical>
          <conversion type="float_integer_scale" factor="10.0" />
          <description>
            <field id="AutoconfRoles" value="WEATHER" />
          </description>
        </parameter>
      </paramset>
      <paramset type="LINK" id="HB-UNI-Sensor1_link"></paramset>
    </channel>
Der ganze Block mit <parameter id="Saunatemperatur" operations="read,event">...</parameter> kann dann aus dem channel index="1" raus.


Im Sketch packst du noch die Information für channel_field vor die Temperatur:

Code: Alles auswählen

    pload[7] = 0x42;
    pload[8] = (temp1 >> 8) & 0xff;
    pload[9] = temp1 & 0xff;
Dann solltest du einen 2. Kanal sehen.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

magnum1795
Beiträge: 83
Registriert: 13.05.2020, 17:56
System: Alternative CCU (RaspberryMatic etc.)
Hat sich bedankt: 14 Mal
Danksagung erhalten: 7 Mal

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von magnum1795 » 13.07.2020, 08:26

@ Jerom
vielen Dank. Nun klappt´s und es und es wird ein zweiter Kanal mit angezeigt. Alles Bestens. :D

PS: Die Servicemeldung ist von einen nicht angeschlossenen Sensor. Also alles bestens. :P

Kleiner Nachtrag noch. Im Sketch muss noch etwas geändert werden.

.....
class SensChannelDevice : public MultiChannelDevice<Hal, WeatherChannel, 1, SensorList0> {
public:
typedef MultiChannelDevice<Hal, WeatherChannel, 1, SensorList0> TSDevice;
SensChannelDevice(const DeviceInfo& info, uint16_t addr)
: TSDevice(info, addr)
......

muss in
.....
class SensChannelDevice : public MultiChannelDevice<Hal, WeatherChannel, 2, SensorList0> {
public:
typedef MultiChannelDevice<Hal, WeatherChannel, 2, SensorList0> TSDevice;
SensChannelDevice(const DeviceInfo& info, uint16_t addr)
: TSDevice(info, addr)
.....

geändert werden sonst klappt es auch nicht.

PSS: Für alle die es eventuell auch interessiert, hänge ich hier mal die Dateien mit an. Im .zip File sind der Sketch inkl.den Unterordnern und die geänderte hb-uni-sensor1.xml Datei die nach /usr/local/addons/hb-tm-devices-addon/customized_firmware reinkopiert werden müssen (nur die hb-uni-sensor1.xml und eventuell die readme.txt Sollte schon eine drin sein, dann rauslöschen bzw. umbenennen und diese einfügen.) Anschließend muss unbedingt der RM komplett neu gestartet werden, sonst werden die Änderungen nicht übernommen. Im Sketch im cfg Ordner muss bei Bedarf noch die Device_Example.h angepasst werden. Hier darauf achten das bei mehreren Sensoren des gleichen Typ´s (HB-UNI-SENSOR1) immer die

// Definition von Device ID und Device Serial
// Bei mehreren Geräten des gleichen Typs (HB-UNI-Sensor1) muss Device ID und Device Serial unterschiedlich sein!
#define cDEVICE_ID { 0xA5, 0xA5, 0x01 }
#define cDEVICE_SERIAL "UNISENS001"

angepasst wird. Es darf niemals zwei gleiche Device_ID und Device_Serial geben. Bei Bedarf also ändern in

// Definition von Device ID und Device Serial
// Bei mehreren Geräten des gleichen Typs (HB-UNI-Sensor1) muss Device ID und Device Serial unterschiedlich sein!
#define cDEVICE_ID { 0xA5, 0xA5, 0x02 }
#define cDEVICE_SERIAL "UNISENS002"

usw. Die einzelnen Kanäle können dann in der CCU nach eigenen Belieben umbenannt werden


Mein besonderer Dank geht an:

@TomMajor für die sehr gute Vorlage und natürlich auch an
@jp112sdl für seine "Anpassungen"

ACHTUNG!!! wurde nochmals leicht geändert. FW ist 0x20. Telegram wird nun nur noch einmal übertragen. Vielen Dank an jp112sdl

PSSS: Für alle die es eventuell nachbauen möchten, habe ich noch ein passendes Gehäuse konstruiert und als .stl angehängt. :P
Als Platine habe ich diese von Ronny verwendet > https://github.com/ronnythomas/HB-UNI-230V Ich versuche meist, wenn es möglich ist, eine mit Netzteil zu verwenden. Batterien eigentlich nur wenn absolut kein Netzanschluss in der Nähe ist. :lol:
Sensoren sind einmal BME280, einmal Max44009 und ein DS18B20
Die Öffnung im Deckel ist für den Max44009 Sensor.
Ins Gehäuse habe ich links und rechts jeweils eine Öffnung für eine Kabelverschraubung PG7 3-6mm angebracht. Die Platine wird unten nur eingeclipst. Den Deckel habe ich zum Verschrauben gemacht, könnte bei Bedarf aber auch so ändern das er dann auch nur geklipst wird. Ich mag es lieber mit Schrauben.
Dateianhänge
BB-UNI-SENSOR1.zip
(136.21 KiB) 4-mal heruntergeladen
IMG_20200707_132946.jpg
3.jpg
2.jpg
1.jpg
HB-UNI-SENSOR1-Jerome.rar
(76.27 KiB) 5-mal heruntergeladen
uni sensor 1-13.jpg
uni sensor 1-12.jpg
uni sensor 1-11.jpg

TomMajor
Beiträge: 1078
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 64 Mal
Danksagung erhalten: 189 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1 - Neuauflage

Beitrag von TomMajor » 13.07.2020, 17:28

freut mich das die Channel Variante bei dir jetzt auch funktioniert.
ich werde wie gesagt bei Gelegenheit die FW01 Variante (ohne extra Channel) selber noch mal testen.

Und hier ist übrigens der link mit harveys Arbeiten damals zu der Channel-Erweiterung auf github
https://github.com/TomMajor/SmartHome/issues/29
Viele Grüße,
Tom

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“