Hilfe für Addon benötigt

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

Moderator: Co-Administratoren

Matsch
Beiträge: 5424
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Hilfe für Addon benötigt

Beitrag von Matsch » 19.03.2021, 11:03

Für ein Selbstbauprojekt möchte ich einen Offsetwert in die Konfigurationsparameter aufnehmen. Ich habe inzwischen schon einige eigene Werte in das Geräte-AddOn eingebaut und das hat alles funktioniert.
Hier aber scheint die Besonderheit zu sein, dass ein Offset sowohl positive wie auch negative Werte haben kann - und das bekomme ich einfach nicht gebacken.

Was will ich?
Ich brauche einen Konfigurationswert, der die Werte -1.0 ... +1.0 annehmen kann und für den ich die Auflösung 0,1 festlege.
Somit werden auf dem Speicherplatz die Werte -10 ... +10 abgespeichert, Typ int8_t.

In der AddOn-xml habe ich folgenden Eintrag ergänzt:

Code: Alles auswählen

    <parameter id="Temperaturoffset">
      <logical type="float" min="-1.0" max="1.0" default="0.0" unit="°C" />
      <physical type="integer" signed="true" interface="config" list="0" index="36" size="1" />
      <conversion type="float_integer_scale" factor="10" />
    </parameter>
In der Praxis aber funktioniert diese Anweisung nicht.

- Wenn ich in der WebUI für diesen Parameter die Werte -0.9 ... 0.9 eingebe, wird die geänderte Konfiguration gar nicht erst übertragen, es wird sofort OK gemeldet. Wahrscheinlich deshalb, weil bei dieser Angabe intern weiter 0 gewertet wird. Das ist keine Änderung, also überträgt er gar nicht erst.

- Wenn ich 1.0 als Wert eingebe, wird dieser korrekt übertragen und anschließend auch so in der WebUI angezeigt. Im Gerät wurde der Wert ebenfalls korrekt auf 10 gesetzt.

- Wenn ich -1.0 eingebe, findet wiederum eine Übertragung statt und im Gerät steht korrekt -10 drin, aber in der WebUI wird +1.0 angezeigt

- Wenn ich den Wert im Gerät auf -2 setze (Offset = -0.2), dann wird in der WebUI "1.0" angezeigt! Möglicherweise wird der Wert ja als positiver Wert interpretiert und 0xFE ist dann halt >1 und es erfolgt die limitierte Anzeige 1.0
AddOn_Anzeige.jpg
AddOn_Anzeige.jpg (12.17 KiB) 602 mal betrachtet

Mir ist unklar:

- warum negative Werte wie positive Werte angezeigt werden
- warum Eingaben < 1, egal ob positiv oder negativ, immer als 0 gewertet werden

Es muß an der xml-Anweisung liegen, weil je bestimmte Wert wie 1 oder -1 korrekt übertragen werden.

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von jp112sdl » 19.03.2021, 11:07

Ich finde den Thread grad nicht... war hier schon mal Thema.

Entweder du nutzt einen signed integer und verwendest volle 4 Byte (size="4") oder du nutzt sint4_sintx => https://github.com/AskSinPP/asksinpp-we ... #L204-L208

VG,
Jérôme ☕️

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

Benutzeravatar
FUEL4EP
Beiträge: 586
Registriert: 01.11.2017, 17:26
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 76 Mal
Danksagung erhalten: 78 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von FUEL4EP » 19.03.2021, 11:15

Grüße

Ewald

Meine SmartHome Entwicklungen gibt es hier: FUEL4Ps Homeautomation Github Repository oder als ZIP
Das passende RaspberryMatic Addon ist hb-ep-devices-addon
Passende Platinen gib es hier: PCBs

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von jp112sdl » 19.03.2021, 11:21

Der Weg des geringeren Widerstands wäre wohl, die 4 Byte Variante zu wählen.

Sonst müsstest du für die Anzeige in der WebUI eine eigene Config-Seite implementieren, da sint4_sintx nur ganzzahlige Werte kann und du den Dezimalwert selbst anzeigerichtig bauen müsstest.
Es sei denn, es stört nicht, dass die Angabe in Zehntel erfolgt, wie Ewald es gemacht hat ("0.1 K")

VG,
Jérôme ☕️

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

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von jp112sdl » 19.03.2021, 11:29

Eine weitere Idee wäre noch, eine Combobox zu verwenden (wie z.B. beim Heizkörperthermostat), die die Offsets in 0,1er Schritten beinhaltet
Bei 21 Auswahlmöglichkeiten noch überschaubar

VG,
Jérôme ☕️

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

Matsch
Beiträge: 5424
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: Hilfe für Addon benötigt

Beitrag von Matsch » 19.03.2021, 11:32

Mein Gott, seid ihr schnell!!

Nach erster Sichtung habe ich folgende Erkenntnisse gewonnen (bitte korrigiert, wenn was falsch ist):

- Wenn ich wie beabsichtigt, die Eingabe als gebrochene Dezimalzahl machen will, muß ich 4 bytes im Gerät verwenden
- Wenn ich mit nur einem Byte auskommen, dann muß ich die Konvertiertung sint4_sintx nutzen, kann dann aber keinen Scale-Faktor verwenden, muß also die Anzeige in -10 ... 10 machen

Benutzeravatar
FUEL4EP
Beiträge: 586
Registriert: 01.11.2017, 17:26
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 76 Mal
Danksagung erhalten: 78 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von FUEL4EP » 19.03.2021, 11:39

Der Vorteil des sint4_sintx Ansatz ist, dass er auch mit dem immer noch vorliegenden RaspberryMatic Fehler ProofAndSetValue (#1178) funktioniert, da nur ganzzahlige Offsetwerte im WebUI eingegeben werden müssen.

Der 4-Byte Ansatz funktioniert wegen ProofAndSetValue (#1178) zur Zeit nicht. Hoffentlich aber in der nächsten RaspberryMatic Version wieder.
- Wenn ich mit nur einem Byte auskommen, dann muß ich die Konvertiertung sint4_sintx nutzen, kann dann aber keinen Scale-Faktor verwenden, muß also die Anzeige in -10 ... 10 machen
Beim HB-UNI-Sensor-THPD-BME280_master muss für einem Offset von z.B. 3.9 im WebUI 39 eingetragen werden, also x10. Das muss dann nur korrekt im Sketch verarbeitet werden.
Zuletzt geändert von FUEL4EP am 19.03.2021, 11:44, insgesamt 1-mal geändert.
Grüße

Ewald

Meine SmartHome Entwicklungen gibt es hier: FUEL4Ps Homeautomation Github Repository oder als ZIP
Das passende RaspberryMatic Addon ist hb-ep-devices-addon
Passende Platinen gib es hier: PCBs

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von jp112sdl » 19.03.2021, 11:41

Ich wollt dann noch mal kurz Werbung für die Combobox machen... :mrgreen:
https://github.com/jp112sdl/JP-HB-Devic ... l#L99-L118

VG,
Jérôme ☕️

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

Matsch
Beiträge: 5424
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: Hilfe für Addon benötigt

Beitrag von Matsch » 19.03.2021, 13:18

jp112sdl hat geschrieben:
19.03.2021, 11:41
Ich wollt dann noch mal kurz Werbung für die Combobox machen... :mrgreen:
https://github.com/jp112sdl/JP-HB-Devic ... l#L99-L118
Ja Spitze! Jetzt liegt der Ball bei mir. Ich werde ein bißchen brauchen, mir alle Varianten anzusehen und auszuprobieren. Besten Dank schon mal.

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Hilfe für Addon benötigt

Beitrag von jp112sdl » 19.03.2021, 13:33

Noch kurz wie es dann aussieht:
Bildschirmfoto 2021-03-19 um 13.33.06.png

VG,
Jérôme ☕️

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

Antworten

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