Device Name des Tasmota device durch OH4 auslesen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09
Answers: 0

Device Name des Tasmota device durch OH4 auslesen

Beitrag von madmike »

Hallo zusammen,

ich möchte gerne den Namen des Tasmota devices unter OH 4 anzeigen lassen um eine klare Zuordnung zu haben.
wie muss ich das Thing bzw das Item anlegen damit der Device Name angezeigt wird ?
Meine Versuche führten bisher zu keinem Erfolg:

Code: Alles auswählen

Thing topic Balkon-Dirk       "Balkonkraftwerk" @ "MQTT" {
      Channels:
        Type switch : ch1         "Einspeisung"               [ stateTopic="stat/Balkonkraftwerk_Dirk/POWER", commandTopic="cmnd/Balkonkraftwerk_Dirk/POWER"]
        Type number : voltage     "Spannung"                  [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number : rssi        "Signalstärke"              [ stateTopic="tele/Balkonkraftwerk_Dirk/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type number : current     "Strom"                     [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number : powerload   "erzeugte Leistung"         [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"] 
        Type number : total       "heutige Leistung"          [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"] 
        Type number : totalyest   "gestrige Leistung"         [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]   
        Type string : reachable   "Verfügbarkeit"             [ stateTopic="tele/Balkonkraftwerk_Dirk/LWT"]     
        Type string : value       "Name"                      [ stateTopic="stat/Balkonkraftwerk_Dirk/Result"]     
        
und als Item hatte ich das:

Code: Alles auswählen



String BaKrDiName                   "Gerätename"                       <solarplant>                                { channel="mqtt:topic:OH4mqtt:Balkon-Dirk:devicename"}
Als Anzeige bekomme ich immer nur online

vielen Dank für Eure Unterstützung
und Grüsse aus dem Pott
madmike

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

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von peter-pan »

Welchen Namen meinst du denn genau ?
Auszug aus MQTT:

Code: Alles auswählen

"DeviceName":"gosund7","FriendlyName":["Gosund7"],"Topic":"gosundsp111_07"
Ein Thing von mir sieht so aus:

Code: Alles auswählen

Thing mqtt:topic:bridgename:sp11104 "Gosund SP111 04"  (mqtt:broker:mybridge)     @ "MQTT2" [
         availabilityTopic="tele/gosundsp111_04/LWT",
         payloadNotAvailable="Offline",
         payloadAvailable= "Online"
      ]{
    Channels:
        Type switch : power     "Power "                 [ stateTopic="stat/gosundsp111_04/POWER", commandTopic="cmnd/gosundsp111_04/POWER" ]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/gosundsp111_04/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version   "Firmware Version    "   [ stateTopic="stat/gosundsp111_04/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable "Reachable"              [ stateTopic="tele/gosundsp111_04/LWT", on="Online", off="Offline" ]
        Type string : hardware  "Chip Set            "   [ stateTopic="stat/gosundsp111_04/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress "IP Address          "   [ stateTopic="stat/gosundsp111_04/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
        Type number : powerload "Power load"             [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
        Type number : voltage   "Line voltage"           [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number : current   "Line current"           [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number : total     "Total energy "          [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total"]
        Type number : totalday  "Total energy today"     [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
        Type number : totalyest "Total energy yesterday" [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
        Type string : ssid      "WiFi"                   [ stateTopic="tele/gosundsp111_04/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type datetime : time    "Time"                   [ stateTopic="tele/gosundsp111_04/STATE", transformationPattern="JSONPATH:$.Time"]
        Type string : grouptop  "Group Topic"            [ stateTopic="stat/gosundsp111_04/STATUS1", transformationPattern="JSONPATH:$.StatusPRM.GroupTopic"]
    }
Bitte nicht am Thing-Header aufhalten. Ich habe Bridge und Things getrennt.

Es werden nicht alle Einträge automatisch gefüllt. Ich benutze dazu eine Regel, die ich per Cron bzw. Astro-Binding oder bei Bedarf manuell aufrufe und die dann die Felder füllt (Channels).
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von madmike »

Hallo peter-pan,

vielen Dank für Deine Antwort. Ich möchte gerne den Device Name auslesen. Das ist der Name den du siehst wenn du per Web-Interface auf das Tasmota Gerät zugreifst, dann steht als erstes um welches Sonoff Gerät es sich handelt z.B POW230D oder Basic und darunter seht der Device Name z.B Balkonkraftwerk Dirk. Es ist der Name, den du unter sonstige Konfiguration als vorletztes eingeben kannst.
Vielen lieben Dank für deine Mühe
madmike

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

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von udo1toni »

Das ist der FriendlyName, der in der Antwort auf die Anfrage status enthalten ist. Du müsstest also im Zweifel die Ausgabe antriggern.
Der Channel dafür sähe so aus:

Code: Alles auswählen

Type string : statusjson "Status JSON" [ stateTopic="stat/Balkonkraftwerk_Dirk/STATUS" ] // enthält das gesamte json, falls noch andere Infos gebraucht werden
Type string : devicename "Name" [ stateTopic="stat/Balkonkraftwerk_Dirk/STATUS", transformationPattern="JSONPATH:$.Status.FriendlyName[0]" ]
Und der passende Trigger käme z.B. durch eine Rule:

Code: Alles auswählen

val mqttActions = getActions("mqtt","mqtt:broker:OH4mqtt")
mqttActions.publishMQTT("cmnd/Balkonkraftwerk_Dirk/STATUS","", false)
Den Code musst Du im Grunde nur einmalig zum Systemstart ausführen, es sei denn, Du passt den Namen an.
Wie man sehen kann, ist FriendlyName ein Array, man kann also mehrere Namen eintragen, das wird hier natürlich nicht berücksichtigt, openHAB nimmt den ersten Namen im Array ([0])
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von madmike »

Hallo Udo2toni,

danke dafür werde ich ausprobieren
LG
madmike

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von madmike »

Hallo zusammen irgendwie klappt es nicht wahrscheinlich ein Denkfehler von mir ich sende euch mal meine Einträge mit Bitte um Kritik :o

rule:

Code: Alles auswählen

rule "Tasmota Name"

when
    val mqttActions = getActions("mqtt","mqtt:broker:OH4mqtt")

then 
    
    mqttActions.publishMQTT("cmnd/Balkonkraftwerk_Dirk/STATUS","", false)

end
Thing:

Code: Alles auswählen

 Thing topic Balkon-Dirk       "Balkonkraftwerk" @ "MQTT" {
      Channels:
        Type switch : ch1         "Einspeisung"               [ stateTopic="stat/Balkonkraftwerk_Dirk/POWER", commandTopic="cmnd/Balkonkraftwerk_Dirk/POWER"]
        Type number : voltage     "Spannung"                  [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number : rssi        "Signalstärke"              [ stateTopic="tele/Balkonkraftwerk_Dirk/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type number : current     "Strom"                     [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number : powerload   "erzeugte Leistung"         [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"] 
        Type number : total       "heutige Leistung"          [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"] 
        Type number : totalyest   "gestrige Leistung"         [ stateTopic="tele/Balkonkraftwerk_Dirk/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]   
        Type string : reachable   "Verfügbarkeit"             [ stateTopic="tele/Balkonkraftwerk_Dirk/LWT"]     
        //Type string : value       "Name"                      [ stateTopic="stat/Balkonkraftwerk_Dirk/Result"]  
        Type string : statusjson  "Status JSON"               [ stateTopic="stat/Balkonkraftwerk_Dirk/STATUS" ] // enthält das gesamte json, falls noch andere Infos gebraucht werden
        Type string : devicename  "Name"                      [ stateTopic="stat/Balkonkraftwerk_Dirk/STATUS", transformationPattern="JSONPATH:$.Status.FriendlyName[0]" ]
item:

Code: Alles auswählen

String BaKrDiName                   "Gerätename"                       <solarplant>                                { channel="mqtt:topic:OH4mqtt:Balkon-Dirk:devicename"}
Bei der Rule wird gemeckert das der Wert val nicht erwartet wird.
Danke für Eure unendliche Geduld und Mühe
madmike

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

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von udo1toni »

Na, was soll das denn für eine Rule sein?

Korrekt:

Code: Alles auswählen

rule "Tasmota Name"
when
    System started // alternativ auch ein anderer gültiger Trigger
then 
    val mqttActions = getActions("mqtt","mqtt:broker:OH4mqtt")
    mqttActions.publishMQTT("cmnd/Balkonkraftwerk_Dirk/STATUS","", false)
end
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von madmike »

Hallo Udo1toni,

Asche auf mein Haupt, du hast völlig Recht Rule geändert und im Thing habe ich anstatt friendlyName DeviceName eingesetzt.
Läuft perfekt vielen Dank an Dich und peter-pan für Eure Unterstützung
Problem gelöst !!
mfg
und schönes Wochenende
madmike

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

Re: Device Name des Tasmota device durch OH4 auslesen

Beitrag von peter-pan »

Wie bereits schon gesagt und auch von Udo mit einigen Beispielen unterlegt, gibt es Möglichkeiten die von dir gewünschten Werte zu ermitteln. Dazu brauchst du natürlich ein Thing mit den entsprechenden Channels und die passenden Items dazu. Und zu guter Letzt noch eine Rule, die dir die Werte aus deinem "Device herauskitzelt".
Ich kann dir "nur" zeigen, wie ich das mache. Es gibt natürlich auch noch andere, wahrscheinlich auch bessere Möglichkeiten, aber ich versuch's mal mit meinem SetUp, am Beispiel einer Schaltsteckdose mit Verbrauchszähler.
.things (für dich interessant, die letzten 3 Channels)

Code: Alles auswählen

Thing mqtt:topic:danny:sp11104 "Gosund SP111 04"  (mqtt:broker:danny )     @ "MQTT2" [
         availabilityTopic="tele/gosundsp111_04/LWT",
         payloadNotAvailable="Offline",
         payloadAvailable= "Online"
      ]{
    Channels:
        Type switch   : power      "Power "                 [ stateTopic="stat/gosundsp111_04/POWER", commandTopic="cmnd/gosundsp111_04/POWER" ]
        Type number   : rssi       "WiFi Signal Strength"   [ stateTopic="tele/gosundsp111_04/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string   : version    "Firmware Version    "   [ stateTopic="stat/gosundsp111_04/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch   : reachable  "Reachable"              [ stateTopic="tele/gosundsp111_04/LWT", on="Online", off="Offline" ]
        Type string   : hardware   "Chip Set            "   [ stateTopic="stat/gosundsp111_04/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string   : ipaddress  "IP Address          "   [ stateTopic="stat/gosundsp111_04/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
        Type number   : powerload  "Power load"             [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
        Type number   : voltage    "Line voltage"           [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
        Type number   : current    "Line current"           [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
        Type number   : total      "Total energy "          [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total"]
        Type number   : totalday   "Total energy today"     [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
        Type number   : totalyest  "Total energy yesterday" [ stateTopic="tele/gosundsp111_04/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
        Type string   : ssid       "WiFi"                   [ stateTopic="tele/gosundsp111_04/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type datetime : time       "Time"                   [ stateTopic="tele/gosundsp111_04/STATE", transformationPattern="JSONPATH:$.Time"]
        Type string   : grouptop   "Group Topic"            [ stateTopic="stat/gosundsp111_04/STATUS1", transformationPattern="JSONPATH:$.StatusPRM.GroupTopic"]
        Type string   : devicename "Device Name"            [ stateTopic="stat/gosundsp111_04/STATUS", transformationPattern="JSONPATH:$.Status.DeviceName"]
        Type string   : friendly   "Friendly Name 0"        [ stateTopic="stat/gosundsp111_04/STATUS", transformationPattern="JSONPATH:$.Status.FriendlyName[0]"]
        Type string   : topic      "topic"                  [ stateTopic="stat/gosundsp111_04/STATUS", transformationPattern="JSONPATH:$.Status.Topic"]

    }
.items (wieder die letzten drei Items)

Code: Alles auswählen

//192.168.178.xx                                   GoS_04                                                                                                                                             
Group                       gSP111_04             "GoS_04 EchoP"                                      <gosundsp111>           (gEG_Essen)                          ["PowerOutlet"]
Switch                      SP111_04              "GoS 04 Switch EchoP [MAP(de.map):%s]"              <light>                 (gSP111_04,gT_OnOff)                ["Switch"]                                  { channel="mqtt:topic:danny:sp11104:power"}        
Number:Dimensionless        SP111_04_RSSI         "GoS 04 Switch EchoP RSSI [%.1f]"                   <qualityofservice>      (gSP111_04,gRSSI)                   ["Point"]                                   { channel="mqtt:topic:danny:sp11104:rssi" }         
String                      SP111_04_Version      "GoS 04 Switch EchoP Version 70[%s]"                <gosundsp111>           (gSP111_04,gVer)                    ["Point"]                                   { channel="mqtt:topic:danny:sp11104:version" }       
Switch                      SP111_04_Unreach      "GoS 04 Switch EchoP Erreichbarkeit [%s]"           <siren1>                (gSP111_04,gLWT)                    ["Point"]                                   { channel="mqtt:topic:danny:sp11104:reachable" }     
String                      SP111_04_Hardware     "GoS 04 Switch EchoP Hardware 70[%s]"               <gosundsp111>           (gSP111_04,gHard)                   ["Point"]                                   { channel="mqtt:topic:danny:sp11104:hardware" }       
String                      SP111_04_IPAddress    "GoS 04 Switch EchoP IP-Address [%s]"               <gosundsp111>           (gSP111_04,gIpAd)                   ["Point"]                                   { channel="mqtt:topic:danny:sp11104:ipaddress" }       
Number:Energy               SP111_04_Verb         "GoS 04 Verbrauch Total EchoP[%.2f kWh]"            <gosundsp111>           (gSP111_04)                         ["Power"]                                   { channel="mqtt:topic:danny:sp11104:total" }   
Number:Energy               SP111_04_VerbHeute    "GoS 04 Verbrauch Heute EchoP[%.2f kWh]"            <gosundsp111>           (gSP111_04)                         ["Power"]                                   { channel="mqtt:topic:danny:sp11104:totalday" }   
Number:Energy               SP111_04_VerbGestern  "GoS 04 Verbrauch Gestern EchoP[%.2f kWh]"          <gosundsp111>           (gSP111_04)                         ["Power"]                                   { channel="mqtt:topic:danny:sp11104:totalyest" }   
Number:ElectricCurrent      SP111_04_Strom        "GoS 04 Stromaufnahme EchoP [%.2f A]"               <gosundsp111>           (gSP111_04)                         ["Current"]                                 { channel="mqtt:topic:danny:sp11104:current" }  
Number:ElectricPotential    SP111_04_Spannung     "GoS 04 Spannung EchoP[%.1f V]"                     <gosundsp111>           (gSP111_04)                         ["Voltage"]                                 { channel="mqtt:topic:danny:sp11104:voltage" }    
Number:Power                SP111_04_Leistung     "GoS 04 Leistung EchoP[%.2f W]"                     <gosundsp111>           (gSP111_04)                         ["Power"]                                   { channel="mqtt:topic:danny:sp11104:powerload" }  
String                      SP111_04_SSID         "GoS 04 Wlan EchoP [%s]"                            <gosundsp111>           (gSP111_04,gSSId)                   ["Status"]                                  { channel="mqtt:topic:danny:sp11104:ssid" }         
DateTime                    SP111_04_Date         "GoS 04 Refresh EchoP [%1$tH:%1$tM]"                <gosundsp111>           (gSP111_04)                         ["Status","Timestamp"]                      { channel="mqtt:topic:danny:sp11104:time" }         
String                      SP111_04_GroupTopic   "GoS 04 Group Topic EchoP [%s]"                     <gosundsp111>           (gSP111_04,gGrTop)                  ["Point"]                                   { channel="mqtt:topic:danny:sp11104:grouptop" }            
String                      SP111_04_DeviceName   "GoS 04 Device Name [%s]"                           <gosundsp111>           (gSP111_04)                         ["Point"]                                   { channel="mqtt:topic:danny:sp11104:devicename" }            
String                      SP111_04_Friendly     "GoS 04 Friendly Name 0 [%s]"                       <gosundsp111>           (gSP111_04)                         ["Point"]                                   { channel="mqtt:topic:danny:sp11104:friendly" }            
String                      SP111_04_Topic        "GoS 04 Topic Name [%s]"                            <gosundsp111>           (gSP111_04)                         ["Point"]                                   { channel="mqtt:topic:danny:sp11104:topic" }            
Jetzt brauchst du noch eine Regel, mit der die nicht automatisch per "Telemetrie" ausgegrabenen Werte in die entsprechenden Items gebracht werden.

.rules (nicht erschrecken ;) )

Code: Alles auswählen

//  ++++++++++++++++++ Globale Variablen/Konstaten +++++++++++++++++++++++++++++++++++
val tasmota_device_ids = newArrayList("sonoffs", "tasmotas", "tasmosens", "tasmoesp32")
// val tasmota_device_ids = newArrayList("sonoffs")

val rulename = "Tasmota_Info"
var Timer tSonoffFirmware = null
//  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rule "Tasmota_info"
when
     Item Tasmota_State_Refresh changed to ON
      or Channel 'astro:sun:local:night#event' triggered START 

then
    var String firmware = (Current_FW_Available.state.toString).replace("v","")
    logInfo(rulename, "Tasmota Refresh static Values : " + firmware )

    // is it an event based Trigger?
    if (triggeringItemName !== null) {
        // now you can do your stuff like logInfo
        logInfo(rulename, "Rule fired manually by  : " + triggeringItemName + " previousState: " + previousState)
       // or this :
       if (tSonoffFirmware !== null) {
          logInfo(rulename,"Timer wird gecancelled: " + tSonoffFirmware)
          tSonoffFirmware.cancel
       }
        logInfo(rulename,"Timer wird initialisiert")
        tSonoffFirmware = createTimer(now.plusSeconds(15), [ |
               Tasmota_State_Refresh.postUpdate(OFF)                                            
           if (Tasmota_State_Refresh.state == ON) {                                             
               logInfo(rulename,"Switch ausgeschaltet " + Tasmota_State_Refresh.state.toString)
               // or whatever stuff you want ;)
           }
           tSonoffFirmware = null
        ])
    }
         // is it a channel based Trigger ? 
    else if (receivedEvent !== null) {
        // now you can do stuff like logInfo
        logInfo(rulename, "Rule fired by Channel: {} {}", receivedEvent.toString, triggeringChannel )
        // and of course a lot of other stuff if you/I want ;)
   }
    val actionsBroker = getActions("mqtt","mqtt:broker:danny")                                   
    for (String device_id : tasmota_device_ids) {
          actionsBroker.publishMQTT( "cmnd/" + device_id + "/status", "0")                 // alle
//          actionsBroker.publishMQTT( "cmnd/" + device_id + "/status", "2")               // status 2
//          actionsBroker.publishMQTT( "cmnd/" + device_id + "/timezone", "99")            // timezone 99
//          actionsBroker.publishMQTT( "cmnd/" + device_id + "/altitude", "502")           // altitude 502 meter
//          actionsBroker.publishMQTT( "cmnd/" + device_id + "/MqttHost", "oh3ssd")        // mqtt2 - Ändern des Mqtt-Host per Name ("oh3ssd") oder IP-Adresse ("192.168.178.xx")

          logInfo(rulename, "Tasmota Maintenance: {} - actionsBroker -Konstnate : {} - tasmota_device_ids : {}",device_id, actionsBroker, tasmota_device_ids)
    }
    logInfo(rulename, "Tasmota Refresh Items static Informations : end")
end
Es sind einige Erläuterungen und auch Beispiele für weitere Verwendungsmöglichkeiten beschrieben, die kannst du ja rauslöschen. Als "Device Array" verwende ich meine "Group-Topics". Dadurch werden alle Geräte der Gruppe auf einen Rutsch angesprochen und die entsprechen Informationen an die Geräte bzw. Items weitergeleitet; je nachdem was du in deinen Things/Items definiert hast. Der Publish erfolgt dann mit dem PayLoad "status 0".

Getriggert wird die Rule entweder durch das Astro-Binding (bei mir) oder wahlweise per Dummy-Schalter.
Dummy -Switch

Code: Alles auswählen

Switch    Tasmota_State_Refresh         "manueller Tasmota Item-Status Aktualisierung [MAP(div.map):%s]"           (gTasmo)
Screenshot Steckdose:
2024-04-12_232233.jpg
Beispiel-Widget für manuellen Schalter
manueller Start.jpg
Yaml-Code Widget

Code: Alles auswählen

component: oh-label-card
config:
  action: toggle
  actionCommand: ON
  actionCommandAlt: OFF
  actionItem: Tasmota_State_Refresh
  background: linear-gradient(to top right,#B0E0E6 20%,#1E90FF 30%,#FFC0CB 60%)
  icon: oh:arendst
  iconSize: 50
  item: Tasmota_State_Refresh
  label: "='MQTT-Status aktualisieren.:  ' + items.Tasmota_State_Refresh.displayState"
Ich hoffe, das hilft dir weiter.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Antworten