MQTT Topic senden rule oder nicht?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

MQTT Topic senden rule oder nicht?

Beitrag von djuscha »

Ich möchte über MQTT meine GyverLampe einschalten und ausschalten. Dazu muss ich auf den Topic

Code: Alles auswählen

LedLamp/LedLamp_00295919/cmnd

entweder P_ON oder PN_OFF senden .Über MQTT Explorer geht das.
Das möchte ich jetzt über Openhab machen
ist es zwingend das ich das über Rules mache oder würde das nur über Konfiguration von Thing und Ithem gehen
Über rules hab ich das hinbekommen

Code: Alles auswählen

val actions = getActions("mqtt","mqtt:broker:mosquitto")

rule "Gyver Lampe"
when
 Item AqaraTastSH1 received update double
    then
        if(LampSS.state == "P_OFF")actions.publishMQTT("LedLamp/LedLamp_00295919/cmnd","P_ON")
    else  actions.publishMQTT("LedLamp/LedLamp_00295919/cmnd","P_OFF")

end

Code: Alles auswählen

Thing topic LedLamp  "GyverLamp"(mqtt:broker:mosquitto)  @ "MQTT"  {

      Channels:
          
          Type string : devicestate"GyverLamp State" 
          [stateTopic="LedLamp/LedLamp_00295919/state"]
  
          Type string : switch"Schalter"            
            [commandTopic="LedLamp/LedLamp_00295919/cmnd", on="P_ON" , off="P_OFF" ,stateTopic="LedLamp/LedLamp_00295919/cmnd"]
 
          
}

Code: Alles auswählen

String	Lamp	"Gyver Lampe State"     {channel="mqtt:topic:mosquitto:LedLamp:devicestate"}
Switch  LampS   "Gyver Lampe "          {channel="mqtt:topic:mosquitto:LedLamp:switch"}
String  LampSS  "Gyver Lampe "          {channel="mqtt:topic:mosquitto:LedLamp:switch"}
aber über den Switch LampS "Gyver Lampe " geht das nicht.

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

MQTT Topic senden rule oder nicht?

Beitrag von udo1toni »

Du musst als Type switch nehmen, ebenso als Itemtyp.

Außerdem ist switch im Thing ein Schlüsselwort. NIEMALS Schlüsselworte als Namen verwenden!

Gesendet von iPad mit Tapatalk
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: MQTT Topic senden rule oder nicht?

Beitrag von djuscha »

meinst du das so

Code: Alles auswählen

Thing topic LedLamp  "GyverLamp"(mqtt:broker:mosquitto)  @ "MQTT"  {
      Channels:
          Type string : devicestate"GyverLamp State" 
          [stateTopic="LedLamp/LedLamp_00295919/state"]
          Type switch: switch"Schalter"            
           [commandTopic="LedLamp/LedLamp_00295919/cmnd", on="P_ON" , off="P_OFF" ,stateTopic="LedLamp/LedLamp_00295919/cmnd"
          
das ist doch Switch Item Switch LampS ?

Code: Alles auswählen

String	Lamp	"Gyver Lampe State"     {channel="mqtt:topic:mosquitto:LedLamp:devicestate"}
Switch  LampS   "Gyver Lampe "          {channel="mqtt:topic:mosquitto:LedLamp:switch"}
Switch  LampSS  "Gyver Lampe "          {channel="mqtt:topic:mosquitto:LedLamp:switch"}
Außerdem ist switch im Thing ein Schlüsselwort. NIEMALS Schlüsselworte als Namen verwenden!
das verstehe ich nicht :?

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

Re: MQTT Topic senden rule oder nicht?

Beitrag von udo1toni »

Wie gesagt, das Schlüsselwort switch ist reserviert. Das DARFST Du nicht für andere Dinge verwenden!
Thing:

Code: Alles auswählen

Thing topic LedLamp  "GyverLamp"(mqtt:broker:mosquitto)  @ "MQTT"  {
    Channels:
    Type string : devicestate "GyverLamp State" [ stateTopic="LedLamp/LedLamp_00295919/state"]
    Type switch : sw "Schalter"                        [ commandTopic="LedLamp/LedLamp_00295919/cmnd", on="P_ON" , off="P_OFF" ]
}
Items:

Code: Alles auswählen

String  Lamp "Gyver Lampe State" {channel="mqtt:topic:mosquitto:LedLamp:devicestate"}
Switch LampS "Gyver Lampe"       {channel="mqtt:topic:mosquitto:LedLamp:sw"}
Je nachdem, was da als Status zurückgeliefert wird, kannst Du auch auf das 2. Item verzichten. aber dazu müsstest Du schon vollständige Infos liefern ;)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: MQTT Topic senden rule oder nicht?

Beitrag von djuscha »

Ups das hatte ich bei allen Sonoffs so drin

Code: Alles auswählen

Type switch: switch"Schalter"  
und es ging , hatte auch keine Fehlermeldungen :roll:
hab jetzt überall geändert auf swit

Code: Alles auswählen

Type switch: swit"Schalter"
gibt es noch andere Schlüsselworte die reserviert sind?

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

Re: MQTT Topic senden rule oder nicht?

Beitrag von udo1toni »

ALLE Schlüsselwörter sind reserviert. Das ist ein Teil der Bedeutung des Wortes "Schlüsselwort" im Kontext der IT ;)

Itemtypen (Switch, String, Number, Rollershutter, Contact usw.), die Addonbezeichnungen der installierten OH1 Addons (z.B. http, ntp, weather usw.), das Wort "channel"... Thing-Schlüsselworte (Bridge, Thing, Type, switch, rollershutter, contact) und natürlich alle Befehle und Begriffe in den Rules (rule, when, then, end, Item, Member, of, changed, if, else, Timer, Boolean, Integer, int ...) Die Liste ist sehr lang, aber eigentlich sollte da jeder selbst drauf kommen können, dass man ein Wort, welches eine spezielle Bedeutung hat, nicht einfach für eine andere Bedeutung verwenden darf.
Um nicht in Versuchung zu geraten, sollte man grundsätzlich auch darauf verzichten, eine anDerE SchReibWeise zu verwenden, nur, weil damit dieses Verbot umgangen wird...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: MQTT Topic senden rule oder nicht?

Beitrag von djuscha »

Vielen Dank!

Antworten