LED Stripe mit Tamota mit Openhab 3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
elbombo
Beiträge: 39
Registriert: 21. Okt 2018 19:14
Answers: 0

LED Stripe mit Tamota mit Openhab 3

Beitrag von elbombo »

Hallo zusammen,
bei meiner Migration von Openhab 2.3 auf Openhab 3.1 bin ich auf den nächsten Stolperstein gestoßen.

Das Item ist in OH2 wie folgt konfiguriert:

Code: Alles auswählen

Color  	Color_MagicHome1 	"Color Bungalow [%s]" 	[ "Lighting" ]	 	{ mqtt="<[localbroker:stat/ledstripe1/HSBColor:state:JSONPATH($.HSBColor)], >[localbroker:cmnd/ledstripe1/HSBColor:command:*:default]" }
Switch 	Switch_MagicHome1_Power "LED Bungalow [%s]" 	[ "Switchable" ]	{ mqtt="<[localbroker:stat/ledstripe1/POWER:state:default], >[localbroker:cmnd/ledstripe1/POWER:command:*:default]" }
Dimmer 	Dimmer_MagicHome1 	"LED Dimmer Bungalow 	[%.0f %%]" 		{ mqtt="<[localbroker:stat/ledstripe1/Dimmer:state:JSONPATH($.Dimmer)], >[localbroker:cmnd/ledstripe1/DIMMER:command:*:default]"}
Wie kann ich das Ganze auf Openhab 3 übersetzten ?

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

Re: LED Stripe mit Tamota mit Openhab 3

Beitrag von udo1toni »

Das ist ja noch mqtt1...

Schritt 1: Du musst eine Bridge für den Broker anlegen. Das hast Du vorher in der Datei /etc/openhab2/services/mqtt.cfg gemacht. Dein Broker war dann unter dem Namen localbroker in der Itemdefinition verwendbar.
Schritt 2: Jedes Item enthält gewöhnlich die Konfiguration für ein oder zwei Topics, wobei dann das eine Topic nur lesend und das andere Topic nur schreibend verwendet wird. Beide Topics bilden gemeinsdam eine Eigenschaft eines Geräts ab, also z.B. die Helligkeit oder auch den Farbwert als HSB.

Ich schreibe es hier mal in *.things Notation auf:

Code: Alles auswählen

Bridge mqtt:broker:localbroker "Mosquitto" [
    host="localhost",
    port=1883,
    clientID="openHAB3",
    lwtTopic="openHAB3/system/LWT",
    lwtMessage="Offline"
 ] {
     Thing topic color1 "MagicHome 1" {
        Channels:
            Type colorHSB : color "Position" [ stateTopic="stat/ledstripe1/HSBColor", 
                                             commandTopic="cmnd/ledstripe1/HSBColor", 
                                      stateTransformation="JSONPATH:$.HSBColor" ]
            Type switch : switch "Position"  [ stateTopic="stat/ledstripe1/POWER", 
                                             commandTopic="cmnd/ledstripe1/POWER" ]
            Type dimmer : dimmer "Position"  [ stateTopic="stat/ledstripe1/Dimmer", 
                                             commandTopic="cmnd/ledstripe1/DIMMER", 
                                      stateTransformation="JSONPATH:$.Dimmer" ]
      }
}
Dabei ist die Formatierung egal, Du könntest also auch stateTopic, commandTopic und stateTransformation in einer Zeile schreiben.

Dieses Thing hat nun drei Channel, die Du den Items zuordnen kannst:

Code: Alles auswählen

Color  Color_MagicHome1        "Color Bungalow [%s]" [ "Lighting" ]   { channel="mqtt:topic:localbroker:color1:color" }
Switch Switch_MagicHome1_Power "LED Bungalow [%s]"   [ "Switchable" ] { channel="mqtt:topic:localbroker:color1:switch" }
Dimmer Dimmer_MagicHome1       "LED Dimmer Bungalow [%.0f %%]"        { channel="mqtt:topic:localbroker:color1:dimmer" }
Das war es schon.

Wie Deine Bridge exakt konfiguriert sein muss, kannst Du aus Deiner mqtt.cfg ersehen. Alternativ kannst Du die Bridge aund auch das Thing direkt über die UI anlegen. Oder Du legst die Bridge über die UI an und schreibst Dir die exakten Namen der Parameter auf, die Du verwendest (in der Code-Ansicht). Diese Namen verwendest Du dann entsprechend in der *.things Datei. Die UI-Bridge löschst Du natürlich wieder...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

elbombo
Beiträge: 39
Registriert: 21. Okt 2018 19:14
Answers: 0

Re: LED Stripe mit Tamota mit Openhab 3

Beitrag von elbombo »

Vielen Dank für dein Feedback. Wie ich sehe, arbeitest du auch lieber mit den Konfigurationsdateien. ;) Das fehlt mir echt bei der OH3... Immer alles schön bunt zusammenklicken, ohne genau zu wissen was unter der Haube passiert, ist eine ganz schöne Umstellung für mich.
Trotz alledem habe ich mir das Ding mal nach bestem Wissen und Gewissen zusammengeklickt.

Code: Alles auswählen

UID: mqtt:topic:localbroker:LED-Leiste
label: LED-Leiste
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:localbroker
channels:
  - id: Power_LED_Leiste_1
    channelTypeUID: mqtt:switch
    label: Power LED Leiste 1
    description: ""
    configuration:
      commandTopic: cmnd/ledstripe1/POWER
      stateTopic: stat/ledstripe1/POWER
  - id: Color_LED_Leiste_1
    channelTypeUID: mqtt:color
    label: Color_LED_Leiste_1
    description: ""
    configuration:
      commandTopic: cmnd/ledstripe1/HSBColor
      colorMode: HSB
      stateTopic: stat/ledstripe1/HSBColor
      transformationPattern: JSONPATH:$.HSBColor
  - id: Dimmer_LED_Leiste_1
    channelTypeUID: mqtt:dimmer
    label: Dimmer LED Leiste 1
    description: ""
    configuration:
      commandTopic: cmnd/ledstripe1/DIMMER
      stateTopic: stat/ledstripe1/Dimmer
      transformationPattern: JSONPATH:$.Dimmer

Farbe, Dimmer und Power kann ich jetzt steuern, aber (noch) fehlt die "Rückmeldung". Wenn ich über die App auf dem Handy die Werte verändere wird mir das nicht auf BasicUI angezeigt. Vermutlich stimmt es was mit der Incomming JsonPath Transformation nicht.
Deine Codeschnipsel werde ich auf jeden Fall einmal testen.

elbombo
Beiträge: 39
Registriert: 21. Okt 2018 19:14
Answers: 0

Re: LED Stripe mit Tamota mit Openhab 3

Beitrag von elbombo »

Einen Fehler habe ich noch gefunden in der Incomming Transformation.... klappt aber immer noch nicht... aber damit kann ich erstmal leben... Ging bei meiner OH2 auch nicht ;)

Der Controller postet jedenfalls diesen Json-String:

Code: Alles auswählen

{"POWER":"ON","Dimmer":92,"Color":"235,153,0","HSBColor":"39,100,92","Channel":[92,60,0]}

Code: Alles auswählen

UID: mqtt:topic:localbroker:LED-Leiste
label: LED-Leiste
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:localbroker
channels:
  - id: Power_LED_Leiste_1
    channelTypeUID: mqtt:switch
    label: Power LED Leiste 1
    description: ""
    configuration:
      commandTopic: cmnd/ledstripe1/POWER
      stateTopic: stat/ledstripe1/POWER
  - id: Color_LED_Leiste_1
    channelTypeUID: mqtt:color
    label: Color_LED_Leiste_1
    description: ""
    configuration:
      commandTopic: cmnd/ledstripe1/HSBColor
      colorMode: HSB
      stateTopic: stat/ledstripe1/RESULT
      transformationPattern: JSONPATH:$.HSBColor
  - id: Dimmer_LED_Leiste_1
    channelTypeUID: mqtt:dimmer
    label: Dimmer LED Leiste 1
    description: ""
    configuration:
      commandTopic: cmnd/ledstripe1/DIMMER
      stateTopic: stat/ledstripe1/RESULT
      transformationPattern: JSONPATH:$.Dimmer



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

Re: LED Stripe mit Tamota mit Openhab 3

Beitrag von udo1toni »

Du hast JSONPATH auch installiert?
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

elbombo
Beiträge: 39
Registriert: 21. Okt 2018 19:14
Answers: 0

Re: LED Stripe mit Tamota mit Openhab 3

Beitrag von elbombo »

Na klar doch ;) Deine Codeschnipsel habe ich getestet, und wie erwartet laufen diese natürlich.

Antworten