Seite 1 von 2

Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 19. Sep 2022 19:41
von elbombo
Hallo zusammen,
ich habe meine OH von 3.2 auf 3.3 upgedated. Im UI werden auf einmal keine Einheiten mehr angezeigt.
Die gelb markierten Einträge habe ich erst später hinzugefügt, werden aber auch ignoriert.
Habe ich irgend etwas übersehen?

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 19. Sep 2022 21:49
von peter-pan
Kann es sein, dass es sich bei deinem Thing um ein Tasmota geflashtes Gerät handelt ? Soweit mir bekannt ist werden dadurch keine UoM-Items verknüpft.

Ich könnte mir vorstellen, dass du die Einheit im Item angeben musst (Meta-Daten - StateDescription).

Eventuell wäre auch noch hilfreich zu wissen, was du genau unter UI verstehst. Meinst du da bestimmte Widgets? Vielleicht gibt es hier auch noch einen Ansatzpunkt " .state vs .displayState"

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 19. Sep 2022 21:55
von elbombo
Richtig, es sind Tasmota Geräte
Die Anzeige der Einheiten W KWh .... usw. funktionierten in der 3.2 einwandfrei
Nach Update auf 3.3 gingen sämtliche Dimensionen (der Tasmota Things) verloren.
(Anzeige im Basic UI und in der App. Auch an den Items hängen keine Dimensions mehr)

Ich habe jetzt auf meiner TestVM, auf der noch 3.2 läuft, das letzte Backup vor dem Upgrade eingespielt. Und da ist wieder alles in Butter

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 19. Sep 2022 22:38
von udo1toni
formatBeforePublish wirkt in Senderichtung (dort brauchst Du definitiv keine Einheit) Du könntest versuchen, die Einheit über eine stateTransformation zu ergänzen, aber eigentlich sollte das automatisch gehen (dafür gibt es ja das Feld unit).

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 19. Sep 2022 22:41
von peter-pan
Also ich habe auch Tasmotas, aber die hab ich alle in Text-Files angelegt. In den Things habe keinerlei Formatangaben(Formatters,Patterns, Suffixe, etc.) gemacht.
Beispiel:

Code: Alles auswählen

    Thing mqtt:topic:claudi:esp_amica01 "ESP8266 Amica Nr 01" (mqtt:broker:claudi )     @ "MQTT2" {
    Channels:
        Type switch : reachable   "Amica01 Reachable"     [ stateTopic="tele/amica_01/LWT", transformationPattern="MAP:reachable.map" ] // on="Online",off="Offline"
        Type number : temp        "Amica01 Temp. DHT22"   [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Temperature"]
        Type number : hum         "Amica01 Hum.  DHT22"   [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Humidity"]
        Type number : dew         "Amica01 Tau.  DHT22"   [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.DewPoint"]
        Type number : dist        "Amica01 Abstand SR04"  [ stateTopic="tele/amica_01/SENSOR", transformationPattern="JSONPATH:$.SR04.Distance"]

        Type number : rssi        "Amica01 WiFi Signal "   [ stateTopic="tele/amica_01/STATE",   transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version     "Amica01 Fw Version"    [ stateTopic="stat/amica_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type string : hardware    "Amica Chip Set"        [ stateTopic="stat/amica_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress   "Amica IP Address"      [ stateTopic="stat/amica_01/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
        Type string : grouptop    "Group Topic        "   [ stateTopic="stat/amica_01/STATUS1", transformationPattern="JSONPATH:$.StatusPRM.GroupTopic"]
        Type number : temp1       "Temp. BME280"          [ stateTopic="tele/amica_01/SENSOR",  transformationPattern="JSONPATH:$.BME280.Temperature"]
        Type number : hum1        "Hum.  BME280"          [ stateTopic="tele/amica_01/SENSOR",  transformationPattern="JSONPATH:$.BME280.Humidity"]
        Type number : dew1        "Tau.  BME280"          [ stateTopic="tele/amica_01/SENSOR",  transformationPattern="JSONPATH:$.BME280.DewPoint"]
        Type number : pres1       "Pres. BME280"          [ stateTopic="tele/amica_01/SENSOR",  transformationPattern="JSONPATH:$.BME280.Pressure"]
        Type number : seapres1    "Sea-Pres. BME280"      [ stateTopic="tele/amica_01/SENSOR",  transformationPattern="JSONPATH:$.BME280.SeaPressure"]
 
    }
Diese werden, dann als Yaml-File so dargestellt:

Code: Alles auswählen

UID: mqtt:topic:claudi:esp_amica01
label: ESP8266 Amica Nr 01
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:claudi
location: MQTT2
channels:
  - id: reachable
    channelTypeUID: mqtt:switch
    label: Amica01 Reachable
    description: null
    configuration:
      retained: false
      postCommand: false
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/LWT
      transformationPattern: MAP:reachable.map
  - id: temp
    channelTypeUID: mqtt:number
    label: Amica01 Temp. DHT22
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.AM2301.Temperature
  - id: hum
    channelTypeUID: mqtt:number
    label: Amica01 Hum.  DHT22
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.AM2301.Humidity
  - id: dew
    channelTypeUID: mqtt:number
    label: Amica01 Tau.  DHT22
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.AM2301.DewPoint
  - id: dist
    channelTypeUID: mqtt:number
    label: Amica01 Abstand SR04
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.SR04.Distance
  - id: rssi
    channelTypeUID: mqtt:number
    label: "Amica01 WiFi Signal "
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/STATE
      transformationPattern: JSONPATH:$.Wifi.RSSI
  - id: version
    channelTypeUID: mqtt:string
    label: Amica01 Fw Version
    description: null
    configuration:
      retained: false
      postCommand: false
      formatBeforePublish: "%s"
      stateTopic: stat/amica_01/STATUS2
      transformationPattern: JSONPATH:$.StatusFWR.Version
  - id: hardware
    channelTypeUID: mqtt:string
    label: Amica Chip Set
    description: null
    configuration:
      retained: false
      postCommand: false
      formatBeforePublish: "%s"
      stateTopic: stat/amica_01/STATUS2
      transformationPattern: JSONPATH:$.StatusFWR.Hardware
  - id: ipaddress
    channelTypeUID: mqtt:string
    label: Amica IP Address
    description: null
    configuration:
      retained: false
      postCommand: false
      formatBeforePublish: "%s"
      stateTopic: stat/amica_01/STATUS5
      transformationPattern: JSONPATH:$.StatusNET.IPAddress
  - id: grouptop
    channelTypeUID: mqtt:string
    label: "Group Topic        "
    description: null
    configuration:
      retained: false
      postCommand: false
      formatBeforePublish: "%s"
      stateTopic: stat/amica_01/STATUS1
      transformationPattern: JSONPATH:$.StatusPRM.GroupTopic
  - id: temp1
    channelTypeUID: mqtt:number
    label: Temp. BME280
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.BME280.Temperature
  - id: hum1
    channelTypeUID: mqtt:number
    label: Hum.  BME280
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.BME280.Humidity
  - id: dew1
    channelTypeUID: mqtt:number
    label: Tau.  BME280
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.BME280.DewPoint
  - id: pres1
    channelTypeUID: mqtt:number
    label: Pres. BME280
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.BME280.Pressure
  - id: seapres1
    channelTypeUID: mqtt:number
    label: Sea-Pres. BME280
    description: null
    configuration:
      retained: false
      postCommand: false
      step: 1
      formatBeforePublish: "%s"
      stateTopic: tele/amica_01/SENSOR
      transformationPattern: JSONPATH:$.BME280.SeaPressure
Wie du siehst, hat das System den Parameter formatBeforePublish: "%s" selbst ergänzt. Und wenn ich die Doku richtig verstehe, wird auch nur "%s" als Formatter unterstützt.

Hast du mal einen "Restart" gemacht (sudo systemctl restart openhab) ? Im Moment kann ich mir nicht erklären, warum es plötzlich nicht mehr gehen sollte.

Die Formatierungen finden bei mir im Item statt:
Beispiel:

Code: Alles auswählen

Group     gAmica_01                   "ESP8266 - Amica 1 Microprozessor"                       <sonoff_pow>            (gEG_Buero)                          ["Receiver"]
Switch    esp_amica_01_Unreach        "ESP Amica 1  LWT-Ereichbarkeit [%s]"                    <siren1>                (gAmica_01,gLWT)                     ["Point"]                                   { channel="mqtt:topic:claudi:esp_amica01:reachable"}         // persisted in mapDB
Number    esp_amica_01_temp           "ESP Amica 1 DHT22 Temperatur[%.2f °C]"                  <temperature>           (gAmica_01,gRtIstI)                  ["Temperature","Measurement"]               { channel="mqtt:topic:claudi:esp_amica01:temp", influxdb="temperature" [floor="gEG_Buero"]}               
Number    esp_amica_01_hum            "ESP Amica 1 DHT22 Luftfeuchtigkeit[%.1f %%]"            <humidity>              (gAmica_01)                          ["Humidity", "Measurement"]                 { channel="mqtt:topic:claudi:esp_amica01:hum", influxdb="humidity" [floor="gEG_Buero"]}               
Number    esp_amica_01_dew            "ESP Amica 1 DHT22 Taupunkt[%.1f °C]"                    <temperature>           (gAmica_01)                          ["Control","Temperature"]                   { channel="mqtt:topic:claudi:esp_amica01:dew"}               
Number    esp_amica_01_dist           "ESP Amica 1 Abstand[%.0f cm]"                           <temperature>           (gAmica_01)                          ["Control","Measurement"]                   { channel="mqtt:topic:claudi:esp_amica01:dist", influxdb="distance" [floor="gEG_Buero"]}               
String    esp_amica_01_Version        "ESP Amica 1 Version [%s]"                               <sonoff_pow>            (gAmica_01,gVer)                     ["Point"]                                   { channel="mqtt:topic:claudi:esp_amica01:version" }            
String    esp_amica_01_Hardware       "ESP Amica 1 Hardware [%s]"                              <sonoff_pow>            (gAmica_01,gHard)                    ["Point"]                                   { channel="mqtt:topic:claudi:esp_amica01:hardware" }            
String    esp_amica_01_IPAddress      "ESP Amica 1 IP-Address [%s]"                            <sonoff_pow>            (gAmica_01,gIpAd)                    ["Point"]                                   { channel="mqtt:topic:claudi:esp_amica01:ipaddress" }            
String    esp_amica_01_GroupTopic     "ESP Amica 1 Group Topic [%s]"                           <sonoff_pow>            (gAmica_01,gGrTop)                   ["Point"]                                   { channel="mqtt:topic:claudi:esp_amica01:grouptop" }            
Number    esp_amica_01_RSSI           "ESP Amica 1 RSSI [%s]"                                 <qualityofservice>      (gAmica_01,gRSSI)                    ["Status"]                                  { channel="mqtt:topic:claudi:esp_amica01:rssi" }         
Number    esp_amica_01_temp1          "ESP Amica  BME280 Temperatur[%.1f °C]"                  <temperature>           (gAmica_01,gRtIstI)                  ["Temperature","Measurement"]               { channel="mqtt:topic:claudi:esp_amica01:temp1"}               
Number    esp_amica_01_hum1           "ESP Amica  BME280 Luftfeuchtigkeit[%.1f %%]"            <humidity>              (gAmica_01)                          ["Humidity", "Measurement"]                 { channel="mqtt:topic:claudi:esp_amica01:hum1"}               
Number    esp_amica_01_dew1           "ESP Amica  BME280 Taupunkt[%.1f °C]"                    <temperature>           (gAmica_01 )                         ["Control","Temperature"]                   { channel="mqtt:topic:claudi:esp_amica01:dew1"}               
Number    esp_amica_01_pres1          "ESP Amica  BME280 Luftdruck[%.1f hPa]"                  <pressure64>            (gAmica_01)                          ["Pressure", "Measurement"]                 { channel="mqtt:topic:claudi:esp_amica01:pres1"}               
Number    esp_amica_01_seapres1       "ESP Amica  BME280 Luftdruck Meereshöhe[%.1f hPa]"       <pressuregauge>         (gAmica_01)                          ["Pressure", "Measurement"]                 { channel="mqtt:topic:claudi:esp_amica01:seapres1"}
Diese Formatierungen müsstest du eigentlich auch in deinen Items gemacht haben. Allerdings sind diese nicht in der Items-Übersicht zu sehen.
items.jpg
Erst in der Item-Detail werden diese angezeigt
detail.jpg
Das gilt allerdings nicht für Items mit UoM (Unit of Measurement). Diese werden auch in der Übersicht bereits mit der Einheit angezeigt.

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 19. Sep 2022 22:49
von peter-pan
Hab gerade gesehen, dass Udo schon geantwortet hat und auch gesehen, dass es einen Parameter Unit im Thing gibt, das war mir so gar nicht bewusst. ich muss aber auch gestehen, dass ich schon lange kein MQTT-Thing angelegt habe und diesen Parameter entweder übersehen habe oder dass es ihn "damals" noch nicht gab. (Asche über mein Haupt)

Ich werde das aber demnächst mal testen.

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 20. Sep 2022 09:09
von elbombo
ich nehme nochmal ein Thing/Item an dem ich nach dem Upgrade noch nicht "gebastelt" habe:

Code: Alles auswählen

UID: mqtt:topic:localbroker:TempSensor
label: TempSensor
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:localbroker
channels:
  - id: TempSensor
    channelTypeUID: mqtt:number
    label: TemüSensor
    description: ""
    configuration:
      stateTopic: tele/temptest/SENSOR
      transformationPattern: JSONPATH:$.DS18B20.Temperature
      unit: °C
genau die Config hat unter Version 3.2 funktioniert aber unter 3.3 nicht mehr.

Im BasicUI fehlt die Einheit ebenfalls

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 20. Sep 2022 09:15
von elbombo
udo1toni hat geschrieben: 19. Sep 2022 22:38 formatBeforePublish wirkt in Senderichtung (dort brauchst Du definitiv keine Einheit) Du könntest versuchen, die Einheit über eine stateTransformation zu ergänzen, aber eigentlich sollte das automatisch gehen (dafür gibt es ja das Feld unit).
Vielen Dank, das war nur mein verzweifelter Versuch, die Einheiten irgendwie wieder sichtbar zu machen.

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 20. Sep 2022 09:24
von elbombo
@peter-pan
Das Anlegen der Things/Items als Text hatte ich auch kurzzeitig beim Umstieg auf 3.x im Kopf. Das hätte mir jede Menge Arbeit erspart. Letztendlich habe ich mich doch entschieden alles neu über das UI anzulegen. Mit 93 Things und 199 Items war das richtig Arbeit.
Ein Neustart war auch meine erste Idee.... aber leider keine Änderung.
Gestern habe ich extra meine OH 3.2 wiederbelebt und das letzte funktionierende Backup eingespielt.
Jetzt habe ich den direkten Vergleich: siehe weiter oben.

Re: Upgrade auf Version 3.3 und keine Einheiten mehr

Verfasst: 20. Sep 2022 13:46
von udo1toni
unit: Das ist irgendwann mit dazu gekommen, das gab es zu Beginn (unter OH2.x) jedenfalls nicht.

Wenn Du UoM nutzt, muss das ITem auch vom Typ UoM sein, also in diesem Fall Number:Temperature, nicht einfach Number. Du musst dazu den Item Typ entsprechend setzen, Tagging reicht hier nicht.