@@ -615,6 +615,102 @@ export const definitions: DefinitionWithExtend[] = [
615615 model : "WS90" ,
616616 vendor : "Shelly" ,
617617 description : "Weather station" ,
618- extend : [ m . battery ( ) , m . illuminance ( ) , m . temperature ( ) , m . pressure ( ) , m . humidity ( ) ] ,
618+ extend : [
619+ m . battery ( ) ,
620+ m . illuminance ( ) ,
621+ m . temperature ( ) ,
622+ m . pressure ( ) ,
623+ m . humidity ( ) ,
624+ m . deviceAddCustomCluster ( "shellyWS90Wind" , {
625+ ID : 0xfc01 ,
626+ manufacturerCode : Zcl . ManufacturerCode . SHELLY ,
627+ attributes : { } ,
628+ commands : { } ,
629+ commandsResponse : { } ,
630+ } ) ,
631+ m . numeric ( {
632+ name : "wind_speed" ,
633+ cluster : "shellyWS90Wind" ,
634+ attribute : { ID : 0x0000 , type : Zcl . DataType . UINT16 } ,
635+ valueMin : 0 ,
636+ valueMax : 140 ,
637+ reporting : { min : "10_SECONDS" , max : "1_HOUR" , change : 1 } ,
638+ description : "Wind speed in m/s" ,
639+ scale : 10 ,
640+ unit : "m/s" ,
641+ access : "STATE_GET" ,
642+ } ) ,
643+ m . numeric ( {
644+ name : "wind_direction" ,
645+ cluster : "shellyWS90Wind" ,
646+ attribute : { ID : 0x0004 , type : Zcl . DataType . UINT16 } ,
647+ valueMin : 0 ,
648+ valueMax : 360 ,
649+ reporting : { min : "10_SECONDS" , max : "1_HOUR" , change : 1 } ,
650+ description : "Wind direction in degrees" ,
651+ scale : 10 ,
652+ unit : "°" ,
653+ access : "STATE_GET" ,
654+ } ) ,
655+ m . numeric ( {
656+ name : "gust_speed" ,
657+ cluster : "shellyWS90Wind" ,
658+ attribute : { ID : 0x0007 , type : Zcl . DataType . UINT16 } ,
659+ valueMin : 0 ,
660+ valueMax : 140 ,
661+ reporting : { min : "10_SECONDS" , max : "1_HOUR" , change : 1 } ,
662+ description : "Gust speed in m/s" ,
663+ scale : 10 ,
664+ unit : "m/s" ,
665+ access : "STATE_GET" ,
666+ } ) ,
667+ m . deviceAddCustomCluster ( "shellyWS90UV" , {
668+ ID : 0xfc02 ,
669+ manufacturerCode : Zcl . ManufacturerCode . SHELLY ,
670+ attributes : { } ,
671+ commands : { } ,
672+ commandsResponse : { } ,
673+ } ) ,
674+ m . numeric ( {
675+ name : "uv_index" ,
676+ cluster : "shellyWS90UV" ,
677+ attribute : { ID : 0x0000 , type : Zcl . DataType . UINT8 } ,
678+ valueMin : 0 ,
679+ valueMax : 11 ,
680+ reporting : { min : "10_SECONDS" , max : "1_HOUR" , change : 1 } ,
681+ description : "UV index" ,
682+ scale : 10 ,
683+ access : "STATE_GET" ,
684+ } ) ,
685+ m . deviceAddCustomCluster ( "shellyWS90Rain" , {
686+ ID : 0xfc03 ,
687+ manufacturerCode : Zcl . ManufacturerCode . SHELLY ,
688+ attributes : { } ,
689+ commands : { } ,
690+ commandsResponse : { } ,
691+ } ) ,
692+ m . binary ( {
693+ name : "rain_status" ,
694+ cluster : "shellyWS90Rain" ,
695+ attribute : { ID : 0x0000 , type : Zcl . DataType . BOOLEAN } ,
696+ valueOn : [ true , 1 ] ,
697+ valueOff : [ false , 0 ] ,
698+ reporting : { min : "10_SECONDS" , max : "1_HOUR" , change : 1 } ,
699+ description : "Rain status" ,
700+ access : "STATE_GET" ,
701+ } ) ,
702+ m . numeric ( {
703+ name : "precipitation" ,
704+ cluster : "shellyWS90Rain" ,
705+ attribute : { ID : 0x0001 , type : Zcl . DataType . UINT24 } ,
706+ valueMin : 0 ,
707+ valueMax : 100000 ,
708+ reporting : { min : "10_SECONDS" , max : "1_HOUR" , change : 1 } ,
709+ description : "Precipitation" ,
710+ unit : "mm" ,
711+ scale : 10 ,
712+ access : "STATE_GET" ,
713+ } ) ,
714+ ] ,
619715 } ,
620716] ;
0 commit comments