The I2C protocol does not specify device id or similar stuff to identify the chip at the other end. The scanner can only tell that some device is listening at a certain address. But i will add 0x38 as the default address for PCF8574A for convenience in the list of known devices.
But to be clear on this feature: the list of known devices is no proof that it is actually one of those devices...
Yes, I know that, but you can do it like on other multiple address detection, just for the reference to see what have been detected and attached to the i2c bus.
Like you did it before for the SI7021 Temp/Hum Sensor, INA219, PCA9685 and
It's is just a surface/beauty/aesthetic issue, but a little bit annoying for me, the multiple i2c device detection separation, there is comma and slash separated (need to decide only for one separation type
(simple comma would be Ok like BME280, BMP280, MS5607, MS5611, shown on the image above).
Also I would remove all definition text (free up some space) from i2c scanner like those "Lux Sensor", "Temp/Hum Sensor", etc..., because other sensors like INA219, PCA9685, BME280, BMP280, MS5607, MS5611 does not have them too.
But as papperone mentioned for the PCF8574
series http://esp8266.nu/forum/viewtopic.php?f ... =10#p10113
for the addressing, I think for these i2c IO Expanders all addresses need to be hardcoded
PCF8574 and PCF8574P = 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27
PCF8574A and PCF857AT = 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
But, also you can add these like:
PCF8574/P, MCP23008, MCP23017
= 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27
= 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
Example for MCP23008 and MCP23017 (FOR REFERENCE)
http://www.ladyada.net/wiki/tutorials/l ... caddr.html