@@ -5059,6 +5059,141 @@ async def test_connect_p1v4(self):
50595059 await smile .close_connection ()
50605060 await self .disconnect (server , client )
50615061
5062+ @pytest .mark .asyncio
5063+ async def test_connect_p1v4_442_single (self ):
5064+ """Test a P1 firmware 4 single-phase setup."""
5065+ testdata = {
5066+ "a455b61e52394b2db5081ce025a430f3" : {
5067+ "dev_class" : "gateway" ,
5068+ "firmware" : "4.4.0" ,
5069+ "hardware" : "AME Smile 2.0 board" ,
5070+ "location" : "a455b61e52394b2db5081ce025a430f3" ,
5071+ "mac_address" : "012345670001" ,
5072+ "model" : "Gateway" ,
5073+ "name" : "Smile P1" ,
5074+ "vendor" : "Plugwise" ,
5075+ "binary_sensors" : {"plugwise_notification" : False },
5076+ },
5077+ "ba4de7613517478da82dd9b6abea36af" : {
5078+ "dev_class" : "smartmeter" ,
5079+ "location" : "a455b61e52394b2db5081ce025a430f3" ,
5080+ "model" : "KFM5KAIFA-METER" ,
5081+ "name" : "P1" ,
5082+ "vendor" : "SHENZHEN KAIFA TECHNOLOGY (CHENGDU) CO., LTD." ,
5083+ "available" : True ,
5084+ "sensors" : {
5085+ "net_electricity_point" : 581 ,
5086+ "electricity_consumed_peak_point" : 581 ,
5087+ "electricity_consumed_off_peak_point" : 0 ,
5088+ "net_electricity_cumulative" : 30718.064 ,
5089+ "electricity_consumed_peak_cumulative" : 13523.584 ,
5090+ "electricity_consumed_off_peak_cumulative" : 17194.48 ,
5091+ "electricity_consumed_peak_interval" : 9 ,
5092+ "electricity_consumed_off_peak_interval" : 0 ,
5093+ "electricity_produced_peak_point" : 0 ,
5094+ "electricity_produced_off_peak_point" : 0 ,
5095+ "electricity_produced_peak_cumulative" : 0.0 ,
5096+ "electricity_produced_off_peak_cumulative" : 0.0 ,
5097+ "electricity_produced_peak_interval" : 0 ,
5098+ "electricity_produced_off_peak_interval" : 0 ,
5099+ "electricity_phase_one_consumed" : 0 ,
5100+ "electricity_phase_one_produced" : 581 ,
5101+ },
5102+ },
5103+ }
5104+
5105+ self .smile_setup = "p1v4_442_single"
5106+ server , smile , client = await self .connect_wrapper ()
5107+ assert smile .smile_hostname == "smile000000"
5108+
5109+ _LOGGER .info ("Basics:" )
5110+ _LOGGER .info (" # Assert type = power" )
5111+ assert smile .smile_type == "power"
5112+ _LOGGER .info (" # Assert version" )
5113+ assert smile .smile_version [0 ] == "4.4.0"
5114+ _LOGGER .info (" # Assert legacy" )
5115+ assert not smile ._smile_legacy
5116+
5117+ await self .device_test (smile , testdata )
5118+ assert smile .gateway_id == "a455b61e52394b2db5081ce025a430f3"
5119+ assert self .device_items == 31
5120+ assert not self .notifications
5121+
5122+ await smile .close_connection ()
5123+ await self .disconnect (server , client )
5124+
5125+ @pytest .mark .asyncio
5126+ async def test_connect_p1v4_442_triple (self ):
5127+ """Test a P1 firmware 4 3-phase setup."""
5128+ testdata = {
5129+ "03e65b16e4b247a29ae0d75a78cb492e" : {
5130+ "dev_class" : "gateway" ,
5131+ "firmware" : "4.4.0" ,
5132+ "hardware" : "AME Smile 2.0 board" ,
5133+ "location" : "03e65b16e4b247a29ae0d75a78cb492e" ,
5134+ "mac_address" : "012345670001" ,
5135+ "model" : "Gateway" ,
5136+ "name" : "Smile P1" ,
5137+ "vendor" : "Plugwise" ,
5138+ "binary_sensors" : {"plugwise_notification" : False },
5139+ },
5140+ "b82b6b3322484f2ea4e25e0bd5f3d61f" : {
5141+ "dev_class" : "smartmeter" ,
5142+ "location" : "03e65b16e4b247a29ae0d75a78cb492e" ,
5143+ "model" : "XMX5LGF0010453051839" ,
5144+ "name" : "P1" ,
5145+ "vendor" : "XEMEX NV" ,
5146+ "available" : True ,
5147+ "sensors" : {
5148+ "net_electricity_point" : 2422 ,
5149+ "electricity_consumed_peak_point" : 2422 ,
5150+ "electricity_consumed_off_peak_point" : 0 ,
5151+ "net_electricity_cumulative" : 220806.738 ,
5152+ "electricity_consumed_peak_cumulative" : 154585.221 ,
5153+ "electricity_consumed_off_peak_cumulative" : 66221.517 ,
5154+ "electricity_consumed_peak_interval" : 0 ,
5155+ "electricity_consumed_off_peak_interval" : 0 ,
5156+ "electricity_produced_peak_point" : 0 ,
5157+ "electricity_produced_off_peak_point" : 0 ,
5158+ "electricity_produced_peak_cumulative" : 0.0 ,
5159+ "electricity_produced_off_peak_cumulative" : 0.0 ,
5160+ "electricity_produced_peak_interval" : 0 ,
5161+ "electricity_produced_off_peak_interval" : 0 ,
5162+ "electricity_phase_one_consumed" : 0 ,
5163+ "electricity_phase_two_consumed" : 0 ,
5164+ "electricity_phase_three_consumed" : 0 ,
5165+ "electricity_phase_one_produced" : 1737 ,
5166+ "electricity_phase_two_produced" : 200 ,
5167+ "electricity_phase_three_produced" : 486 ,
5168+ "gas_consumed_cumulative" : 15263.4 ,
5169+ "gas_consumed_interval" : 0.0 ,
5170+ "voltage_phase_one" : 230.3 ,
5171+ "voltage_phase_two" : 232.8 ,
5172+ "voltage_phase_three" : 232.6 ,
5173+ },
5174+ },
5175+ }
5176+
5177+ self .smile_setup = "p1v4_442_triple"
5178+ server , smile , client = await self .connect_wrapper ()
5179+ assert smile .smile_hostname == "smile000000"
5180+
5181+ _LOGGER .info ("Basics:" )
5182+ _LOGGER .info (" # Assert type = power" )
5183+ assert smile .smile_type == "power"
5184+ _LOGGER .info (" # Assert version" )
5185+ assert smile .smile_version [0 ] == "4.4.0"
5186+ _LOGGER .info (" # Assert legacy" )
5187+ assert not smile ._smile_legacy
5188+
5189+ await self .device_test (smile , testdata )
5190+ assert smile .gateway_id == "03e65b16e4b247a29ae0d75a78cb492e"
5191+ assert self .device_items == 40
5192+ assert not self .notifications
5193+
5194+ await smile .close_connection ()
5195+ await self .disconnect (server , client )
5196+
50625197 @pytest .mark .asyncio
50635198 async def test_fail_legacy_system (self ):
50645199 """Test erroneous legacy stretch system."""
0 commit comments