Solar power solution specially designed for low-power sensors. Use small low light solar panel and coin cell rechargeable battery or small li-polymer battery.
Try to power BlueTooth BLE module like CC2541 by small solar panel (37mmx22mm) with indoor light only!
Power WiFi module like ESP8266 use small solar panel (37mmx22mm) .
Including both hardware and software efforts.
Use ultra low quiescent current LDO such as HT7333, use low-light solar panel.
Firmware/Software:
CC2541, use PM2, sleep most of the time, use advertising data to send sensor data, similar to iBeacon.
ESP8266, use deep-sleep, wake up every 10 minutes to send sensor data, also use static IP instead of DHCP to speed up the boot and send.