MQTT2 und Tasmota

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: MQTT2 und Tasmota

Beitrag von peter-pan »

...da bin ich dann auch ein bisschen ratlos.

Hier mal die Konfiguration meines TH16.

.things (Ausschnitt)

Code: Alles auswählen

//Gruppe TH10/16 Monitoring WiFi Smart Switch
    Thing topic TH1601 "Sonoff TH16 01" @ "MQTT2" {
    Channels:
        Type switch : power       "Power "               [ stateTopic="stat/th16_01/POWER", commandTopic="cmnd/th16_01/POWER" ]
        Type number : rssi        "WiFi Signal Strength" [ stateTopic="tele/th16_01/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version     "Firmware Version"     [ stateTopic="stat/th16_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable   "Reachable"            [ stateTopic="tele/th16_01/LWT", transformationPattern="MAP:reachable.map" ]
        Type number : temperature "Temperature"          [ stateTopic="tele/th16_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Temperature"]
        Type number : humidity    "Humidity"             [ stateTopic="tele/th16_01/SENSOR", transformationPattern="JSONPATH:$.AM2301.Humidity"]
        Type string : ssid        "WiFi"                 [ stateTopic="tele/th16_01/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type datetime : time      "Time"                 [ stateTopic="tele/th16_01/STATE", transformationPattern="JSONPATH:$.Time"]
        Type string : hardware    "Chip Set          "   [ stateTopic="stat/th16_01/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress "IP Address          "   [ stateTopic="stat/th16_01/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
    }
.items (Ausschnitt)

Code: Alles auswählen

//**********************************************************************************************************************************************************************************************************************
//Gruppe TH10/16 Sensoren
//**********************************************************************************************************************************************************************************************************************
//192.168.178.xxx                           Steckdosenleiste/Power Strip  TH16

Switch    Sonoff_PowerStrip_01          "Steckdosenleiste 1 [MAP(de.map):%s]"             <poweroutlet>           (EG_Kind1,gPlugSwitch,gSonoff)  { channel="mqtt:topic:hans:TH1601:power"}               
Number    Sonoff_PowerStrip_01_RSSI     "Steckdosenleiste 1 RSSI [%s]"                    <qualityofservice>      (EG_Kind1,gRSSI)                { channel="mqtt:topic:hans:TH1601:rssi" }               
String    Sonoff_PowerStrip_01_Version  "Steckdosenleiste 1 Version 63[%s]"               <sonoff_pow>            (gSonoffs,gVer)                 { channel="mqtt:topic:hans:TH1601:version" }            
Switch    Sonoff_PowerStrip_01_Unreach  "Steckdosenleiste 1 Erreichbarkeit [%s]"          <siren1>                (EG_Kind1,gLWT)                 { channel="mqtt:topic:hans:TH1601:reachable" }          
//        For Fun and Test                                                                                                                                  
String    Sonoff_PowerStrip_01_Hardware "Steckdosenleiste 1 Hardware 63[%s]"              <sonoff_pow>            (gSonoffs,gHard)                { channel="mqtt:topic:hans:TH1601:hardware" }            
String    Sonoff_PowerStrip_01_IPAddress "Steckdosenleiste 1 IP-Address [%s]"             <sonoff_pow>            (gSonoffs,gHard)                { channel="mqtt:topic:hans:TH1601:ipaddress" }            
Number    Sonoff_PowerStrip_01_Temp     "Steckdosenleiste 1 Temperatur[%.1f °C]"          <temperature>           (gSonoffs,EG_Kind1,gRtIstI)     { channel="mqtt:topic:hans:TH1601:temperature"}               
Number    Sonoff_PowerStrip_01_Hum      "Steckdosenleiste 1 Luftfeuchtigkeit[%.2f %%]"    <humidity>              (gSonoffs,EG_Kind1)             { channel="mqtt:topic:hans:TH1601:humidity" }               
String    Sonoff_PowerStrip_01_SSID     "Steckdosenleiste 1 Wlan [%s]"                    <chart>                 (gSonoffs)                      { channel="mqtt:topic:hans:TH1601:ssid" }            
DateTime  Sonoff_PowerStrip_01_Date     "Steckdosenleiste 1 Refresh [ %1$tH:%1$tM]"       <time>                  (gSonoffs)                      { channel="mqtt:topic:hans:TH1601:time" }          
//**********************************************************************************************************************************************************************************************************************
Ich habe allerdings die Standard-Notation für das Full-Topic im TH16 (%prefix%/%topic%/) und die Bridge/Thing-Notation für das .things-File.

Gerade fällt mir noch auf, dass ich das Mapping im Label mache und du keinen "Formatter ( [%s]) in deinem Label hast. Vielleicht probierst du das mit dem Formatter/Pattern (auch ohne Mapping) auch einmal aus.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12

Re: MQTT2 und Tasmota

Beitrag von djuscha »

udo1toni hat geschrieben: 29. Dez 2019 22:20 Das Mapping wird nicht nur nicht gebraucht, es ist auch verkehrt, denn eigentlich wird es klein geschrieben. ;)
Der Schaltbefehl geht ja aber wohl, also scheint die Schreibweise nicht so wichtig zu sein (untypisch für openHAB...).
Der Switch Status wird aber auf jeden Fall als Switch zurückgeliefert, nicht als String (das hab ich bei mir falsch drin gehabt, hab's oben angepasst).
mit zweimal Switch geht jetzt!
items

Code: Alles auswählen

 Switch Sonoffth16 "Licht Terasse"<lightbulb> (GR_Lichtdr,GR_Lichtdr1)  {channel="mqtt:topic:mosquitto:Sonoff3:switch",channel="mqtt:topic:mosquitto:Sonoff3:switchstatus"}

String Sonoffth16_WifiRssi "Licht Terasse RSSI [%d %%] "<network>  {channel="mqtt:topic:mosquitto:Sonoffth16:wifi-rssi"}

String Sonoffth16_DeviceState "Sonoffth16 State"<qualityofservice>   {channel="mqtt:topic:mosquitto:Sonoffth16:devicestate"}

Number Sonoffth16_Temperature "Temperature Terasse[%d °C]"  <temperature> { channel="mqtt:topic:mosquitto:Sonoffth16:temperature" }

Number Sonoffth16_Humidity    "Humidity Terasse [%d %%]"   <humidity> { channel="mqtt:topic:mosquitto:Sonoffth16:humidity" }


 
tings

Code: Alles auswählen

 Thing topic Sonoffth16  "Sonoffth16 Licht Terasse"(mqtt:broker:mosquitto)  @ "MQTT"  {

      Channels:
          
         Type switch : switch "Sonoffth16 Switch" 
          [stateTopic="Draussen/sonoffth16/stat/POWER",commandTopic="Draussen/sonoffth16/cmnd/POWER"]
          
          Type switch : switchstatus "Sonoffth16 Switch Status" 
          [stateTopic="Draussen/sonoffth16/tele/STATE",transformationPattern="JSONPATH:$.POWER"]
         
          Type string : wifi-rssi "Sonoffth16 RSSI" 
          [stateTopic="Draussen/sonoffth16/tele/STATE",transformationPattern="JSONPATH:$.Wifi.RSSI"]
          
          Type string : devicestate"Sonoffth16 State" 
          [stateTopic="Draussen/sonoffth16/tele/LWT"]

          Type number : temperature "Temperature SI7021 "     
          [stateTopic="Draussen/sonoffth16/tele/SENSOR", transformationPattern="JSONPATH:$.SI7021.Temperature"] 

          Type number : humidity    "Humidity"   
          [stateTopic="Draussen/sonoffth16/tele/SENSOR", transformationPattern="JSONPATH:$.SI7021.Humidity"]

           
Gerade fällt mir noch auf, dass ich das Mapping im Label mache und du keinen "Formatter ( [%s]) in deinem Label hast. Vielleicht probierst du das mit dem Formatter/Pattern (auch ohne Mapping) auch einmal aus.
hab ich nicht probiert.ist der Formatter [%s] für die Anzeige ON/OFF ?


Vielen Dank an euch !!!

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: MQTT2 und Tasmota

Beitrag von peter-pan »

..ich meine %s = String. Ich denke das ist so eine "Universalwaffe" :lol:

Wie du an meinen Items siehst, kannst du den für alles mögliche benutzen. Ich habe auch gesehen, dass du in deinen Things und Items oft String-Typen verwendest. Ich habe da z.T. auch "Number"-Items, z. B.: bei RSSI

Edit:
Bei mir sieht das Ganze dann so aus:
sonoffbulb.jpg
Ich muss allerdings dazu sagen, dass ich nur die Gruppe in der Sitemap eingebunden habe.

Hast du schon die Variante Default item oder Text item in deiner Sitemap probiert ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: MQTT2 und Tasmota

Beitrag von udo1toni »

djuscha hat geschrieben: 30. Dez 2019 12:15Ist der Formatter [%s] für die Anzeige ON/OFF ?
Wenn Du im Label hinten eckige Klammern hinzufügst, bestimmt der Inhalt der Klammern, wie (bzw. ob) der Status rechtsbündig ausgegeben wird.

%s bedeutet String, auf den Status wird ein .toString ausgeführt. Bei einem Switch landet also ON oder OFF in der Anzeige.
%d bedeutet Dezimalzahl (Menge ganzer Zahlen inklusive 0)
%% gibt das Prozentzeichen selbst aus.
%f bedeutet Fließkommazahl. Hier kannst Du (wie bei %d auch, aber da ist es unüblich) die Formatierung beeinflussen, Anzahl Vor- und Nachkommastellen
%.1f bedeutet Fließkomma mit einer Nachkommastelle
%2.1f bedeutet Fließkomma mit mindestens zwei Stellen vor und genau einer Stelle nach dem Komma (notfalls wird also vorne eine Stelle mit einem Leerzeichen ergänzt).
%+2.1f gibt zusätzlich bei positiven Werten ein Pluszeichen aus,
%,.2f gruppiert in Dreierpaketen, also 1234567,891011 wird zu 1.234.567,89 (zwei Nachkommastellen)
Ich habe allerdings bisher nur wenige Formatierungen ausprobiert, mag also sein, dass nur ein Teil funktioniert.

Wenn Du ein Item mit einem Channel verlinkst, kann es sein, dass eine Standardformatierung verwendet wird, wenn Du selbst keine andere Formatierung erzwingst. Das führt dann dazu, dass z.B. ON/OFF angezeigt wird, auch wenn man gar kein [%s] gesetzt hat. Abhilfe schafft dann ein [] im Label (womit der Formatierungsstring geleert wird).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
djuscha
Beiträge: 130
Registriert: 14. Mai 2016 00:12

Re: MQTT2 und Tasmota

Beitrag von djuscha »

peter-pan hat geschrieben: 30. Dez 2019 12:37
Hast du schon die Variante Default item oder Text item in deiner Sitemap probiert ?
benutze meistens Text item oder Switch item

Code: Alles auswählen

Wenn Du ein Item mit einem Channel verlinkst, kann es sein, dass eine Standardformatierung verwendet wird, wenn Du selbst keine andere Formatierung erzwingst. Das führt dann dazu, dass z.B. ON/OFF angezeigt wird, auch wenn man gar kein [%s] gesetzt hat. Abhilfe schafft dann ein [] im Label (womit der Formatierungsstring geleert wird).
Udo ..Super Erklärung!!!
Vielen Dank!

Antworten