Seite 1 von 1

alexa="ModeController.mode" Multi Channel

Verfasst: 23. Jul 2024 11:19
von Nordlicht77
Hallo

Ich habe Problem mit meiner config und ich weiss grade nicht weiter
das Problem ist wenn ich es über Alexa steuer möchte das er alle Channel von stufe 1 bis 3 updaten tut

Code: Alles auswählen

2024-07-23 11:03:06.700 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Wohnzimmer_Luefter_Speed_Modus' received command POWER4

2024-07-23 11:03:06.701 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Wohnzimmer_Luefter_Speed_Modus' predicted to become POWER4

2024-07-23 11:03:06.704 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Wohnzimmer_Luefter_Speed_Modus' changed from POWER5 to POWER4

2024-07-23 11:03:06.775 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Wohnzimmer_Luefter_Speed_Modus' changed from POWER4 to POWER3

2024-07-23 11:03:06.777 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Wohnzimmer_Luefter_Speed_Modus' changed from POWER3 to POWER5
wenn ich an gerät schalte schaltet er nur ein

Code: Alles auswählen

2024-07-23 11:06:46.188 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Wohnzimmer_Luefter_Speed_Modus' changed from POWER4 to POWER5
In Tasmota
Power1 An / Aus
Power2 oscillation an / aus
Power3 stufe 1 an / aus
Power4 stufe 2 an / aus
Power5 stufe 3 an / aus

Ich weiss nicht ob es die möglichkeit in Tasmota gibt Power3 - Power 5 zu gruppieren das es ein mqtt channel hat zum Beispiel fanstufe

Thing

Code: Alles auswählen

Thing mqtt:topic:brokerhome:wohnzimmer_luefter_99B1F4 "Wohnzimmerlüfter" (mqtt:broker:brokerhomes) @ "Wohnzimmer" {
           Channels:
                  Type switch : power          [ stateTopic="stat/wohnzimmer_luefter_99B1F4/POWER1",   transformationPattern="JS:spc_timestamp.js", commandTopic="cmnd/wohnzimmer_luefter_99B1F4/POWER1",on="ON",off="OFF"]
                  Type switch : oscillation    [ stateTopic="stat/wohnzimmer_luefter_99B1F4/POWER2",   transformationPattern="JS:spc_timestamp.js", commandTopic="cmnd/wohnzimmer_luefter_99B1F4/POWER2",on="ON",off="OFF"]
                  Type string : stufe1         [ stateTopic="stat/wohnzimmer_luefter_99B1F4/RESULT",   transformationPattern="JS:spc_timestamp.js", commandTopic="cmnd/wohnzimmer_luefter_99B1F4/POWER3",transformationPattern="JS:luefter.js"] 
				  Type string : stufe2         [ stateTopic="stat/wohnzimmer_luefter_99B1F4/RESULT",   transformationPattern="JS:spc_timestamp.js", commandTopic="cmnd/wohnzimmer_luefter_99B1F4/POWER4",transformationPattern="JS:luefter.js"]
                  Type string : stufe3         [ stateTopic="stat/wohnzimmer_luefter_99B1F4/RESULT",   transformationPattern="JS:spc_timestamp.js", commandTopic="cmnd/wohnzimmer_luefter_99B1F4/POWER5",transformationPattern="JS:luefter.js"]
Item

Code: Alles auswählen


Group       GrFan                                       "Wohnzimmerlüfter"                                                                                              { alexa="Endpoint.Fan"}
Switch      Wohnzimmer_Luefter_Power                    "Wohnzimmerluefte Power"                                                  (GrFan)                               { channel="mqtt:topic:brokerhome:wohnzimmer_luefter_99B1F4:power"      , alexa="PowerController.powerState"}
Switch      Wohnzimmer_Luefter_Stufe_Bewegung           "wohnzimmerlüfter Bewegung"                                               (GrFan)                               { channel="mqtt:topic:brokerhome:wohnzimmer_luefter_99B1F4:oscillation", alexa="ToggleController.toggleState" [friendlyNames="@Setting.Oscillate,Rotate",local="de-DE"]}
String      Wohnzimmer_Luefter_Speed_Modus	            "wohnzimmerlüfter Speed Modus [%s]"								          (GrFan)	                            { channel="mqtt:topic:brokerhome:wohnzimmer_luefter_99B1F4:stufe1, mqtt:topic:brokerhome:wohnzimmer_luefter_99B1F4:stufe2, mqtt:topic:brokerhome:wohnzimmer_luefter_99B1F4:stufe3", alexa="ModeController.mode" [supportedModes="POWER3=Stufe eins,POWER4=Stufe zwei,POWER5=Stufe drei",friendlyNames="Windgeschwindigkeit"], local="de-DE"}

Transform

Code: Alles auswählen

(function(i){
    try {
    var parsed = JSON.parse(i);
   if( parsed.hasOwnProperty("POWER3")) {
        var ts = "POWER3"
        return (ts);
    }    
    if( parsed.hasOwnProperty("POWER4")) {
        var ts = "POWER4"
        return (ts);
    }  
    if( parsed.hasOwnProperty("POWER5")) {
        var ts = "POWER5"
        return (ts);
    }   
    if( parsed.hasOwnProperty("POWER6")) {
        var ts = "Standart"
        return (ts);
    } 
	if( parsed.hasOwnProperty("POWER7")) {
        var ts = "Sleep"
        return (ts);
    } 
	if( parsed.hasOwnProperty("POWER8")) {
        var ts = "Natur"
        return (ts);
    } 
	if( parsed.hasOwnProperty("POWER9")) {
        var ts = "15 Minuten Timer"
        return (ts);
    } 
	if( parsed.hasOwnProperty("POWER10")) {
        var ts = "1 Stunde Timer"
        return (ts);
    } 
	if( parsed.hasOwnProperty("POWER11")) {
        var ts = "2 Stunde Timer"
        return (ts);
    }
	if( parsed.hasOwnProperty("POWER12")) {
        var ts = "4 Stunde Timer"
        return (ts);
    } 
    } catch (e) {
         
    }
})(input)
Grüß
Martin

Re: alexa="ModeController.mode" Multi Channel

Verfasst: 23. Jul 2024 21:59
von Harka
Moin,
eine Lösung könnte ein ungebundenes Number-Item sein, welches mit Alexa verbunden wird. Eingehende Befehle schalten dann per Rule Power3-5 und zusätzlich bei 0 -> Power0 aus.
Da ich nicht mit der Textkonfiguration arbeite siehts hier etwas anders aus.
Die stateDescription: config: step: "1" min: "0" max: "3"
und für Alexa

Code: Alles auswählen

value: Fan.RangeValue
config:
  supportedRange: 0:3:1
  capabilityNames:
    - "@Setting.RangeValue"
  presets:
    - 1=@Value.Minimum
    - 2=@Value.Medium
    - 3=@Value.Maximum
Ich habe hier gespickt (etwas veraltet) -> https://community.openhab.org/t/control ... ing/102547