Skip to content

Homebridge plugin for Photovoltaic Energy System manufactured by Enphase. Supported Envoy-IQ, Envoy-S and all peripheral devices.

License

Notifications You must be signed in to change notification settings

grzegorz914/homebridge-enphase-envoy

Repository files navigation

Homebridge Enphase Envoy

verified-by-homebridge npm npm npm GitHub pull requests GitHub issues

Package Requirements

Package Installation Role Required
Homebridge Homebridge Wiki HomeKit Bridge Required
Config UI X Config UI X Wiki Homebridge Web User Interface Recommended
Enphase Envoy Plug-In Wiki Homebridge Plug-In Required

About The Plugin

  • Support Token authorization from plugin v6.0.0.
    • Token can be generated automatically with enlighten user and password or with externall tools.
      • Token generated with enlighten credentials data will be automatically refreshed if expire.
      • Token generated with externall tools cannot be refreshed automatically if expire.
  • Envoy password is detected automatically or can be added in config if was already chenged by user.
  • Installer password is generated automatically, only Fw. <= v5.x.x.
  • Envoy device ID is detected automatically.
  • Support Power Production State and PLC Level, Fw. v7.x.x and newer require installer credentials data.
  • For best experiences and display all data please use Controller or EVE app.
  • Support external integrations, RESTFul, MQTT.
  • Supported devices:
    • Firmware v5.x.x, 6.x.x, v7.x.x, v8.x.x.
    • Envoy Envoy S, IQ Envoy, IQ Load Controller, IQ Combiner.
    • Q-Relays Q-RELAY-1P Q-RELAY-3P.
    • AC Batteries AC Battery Storage.
    • Meters Production, Consumption, Storage.
    • Microinverters M215, M250, IQ6, IQ7, IQ8.
    • Encharges IQ Battery 3, IQ Battery 10, IQ Battery 5P, IQ Battery 3T, IQ Battery 10T,
    • Ensemble/Enpower IQ System Controller, IQ System Controller 2.
    • WirelessKit Communications Kit.
    • Generator
  • Exposed accessory in the native Home app:
    • Monitoring Sensors:
      • System Data Refresh
      • Production Power State, Power Level, Energy State, Energy Level.
      • Consumption Power State, Power Level, Energy State, Energy Level.
      • Enpower Grid State.
      • Encharge: State, Backup Level, Dry Contacts.
      • Encharge Profile: Self Consumption, Savings, Economy, Full Backup.
      • Grid Mode:
        • Enpower Grid On, Grid Off, Multimode Grid On, Multimode Grid Off, Grid Tied, Grid Forming.
        • Encharge Grid On, Grid Off, Multimode Grid On, Multimode Grid Off, Grid Tied, Grid Forming.
        • Solar Grid On, Grid Off, Multimode Grid On, Multimode Grid Off, Grid Tied, Grid Forming.
      • Generator State, Mode.
    • Control Switches, Outlets, Lightbulbs:
      • System Data Refresh,
      • Production Plc Level, Power Mode, Power State, Power Level.
      • AC Battery Energy State, Energy Level.
      • Enpower Grid State, Dry Contacts.
      • Encharge Energy State, Energy Level.
      • Encharge Profile:
        • Self Consumption Activate, Set Reserve.
        • Savings Activate, Set Reserve.
        • Economy Activate, Set Reserve.
        • Full Backup Activate.
      • Generator State, Mode.

Configuration

  • Run this plugin as a Child Bridge (Highly Recommended), this prevent crash Homebridge if plugin crashes.
  • Install and use Homebridge Config UI X to configure this plugin (Highly Recommended).
  • The sample-config.json can be edited and used as an alternative for advanced users.

Key Description
name Here set the accessory Name to be displayed in Homebridge/HomeKit.
host Here set the envoy IP Address or Hostname or leave empty (will be used default path envoy.local)
envoyFirmware7xx This enable support for Envoy Fw. v7.x.x and newer.
envoyFirmware7xxTokenGenerationMode Here select how You wuld to obtain the token, 0 - Enlighten Credentials, 1 - Your Own Generated Token.
envoyPasswd Here set the envoy password (only if U already changed the default password)
envoyToken Here set Your own Token only if You select 1 - Your Own Generated Token.
envoySerialNumber Here set the envoy serial number.
enlightenUser Here set the enlighten user name.
enlightenPasswd Here set the enlighten password.
supportPowerProductionState This enable support for Power Production State check, Fw. v7.x.x and newer require installer credentials data.
powerProductionStateControl This is Power Production Control Tile for production state control, Fw. v7.x.x and newer require installer credentials data.
name Here set Your own tile name.
displayType Here select the tile type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Switch, 2 - Outlet, 3 - Lightbulb.
namePrefix This enable the accessory name as a prefix for the tile name.
supportPlcLevel This enable support for PLC Level Check for all devices, Fw. v7.x.x and newer require installer credentials data.
plcLevelControl This is Plc Level Control Tile for plc level check, Fw. v7.x.x and newer require installer credentials data
name Here set Your own tile name.
displayType Here select the tile type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Switch, 2 - Outlet, 3 - Lightbulb.
namePrefix This enable the accessory name as a prefix for the tile name.
powerProductionSummary Here set the Power Summary in W of all microinverters, based on this value HomeKit app will display power level 0-100 %.
powerProductionStateSensor This is Power State Sensor for production monitoring.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
powerProductionLevelSensors This is Power Level Sensor for production monitoring.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
powerLevel Here set power level in W to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyProductionStateSensor This is Energy State Sensor for production monitoring.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyProductionLevelSensors This is Energy Level Sensor for production monitoring.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
energyLevel Here set energy level in Wh to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyProductionLifetimeOffset Here set the Energy Offset in Wh for production if nedded +/-.
powerConsumptionTotalStateSensor This is Power State Sensor for consumption Total monitoring.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
powerConsumptionTotalLevelSensors This is Power Level Sensor for consumption Total monitoring.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
powerLevel Here set power level in W to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyConsumptionTotalStateSensor This is Energy State Sensor for consumption Total monitoring.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyConsumptionTotalLevelSensors This is Energy Level Sensor for consumption Total monitoring.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
energyLevel Here set energy level in Wh to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyConsumptionTotalLifetimeOffset Here set the Energy Offset in Wh for consumption Total if nedded +/-.
powerConsumptionNetStateSensor This is Power State Sensor for consumption Net monitoring.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
powerConsumptionNetLevelSensors This is Power Level Sensor for consumption Net monitoring.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
powerLevel Here set power level in W to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyConsumptionNetStateSensor This is Energy State Sensor for consumption Net monitoring.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyConsumptionNetLevelSensors This is Energy Level Sensor for consumption Net monitoring.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
energyLevel Here set energy level in Wh to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
energyConsumptionNetLifetimeOffset Here set the Energy Offset in Wh for consumption Net if nedded +/-.
enepowerGridStateControl This is Enpower Grid State Control for Grid ON/OFF control from HomeKit.
name Here set Your own tile name.
displayType Here select the tile type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Switch, 2 - Outlet, 3 - Lightbulb.
namePrefix This enable the accessory name as a prefix for the tile name.
enepowerGridStateSensor This is Enpower Grid State Sensor for Grid monitoring, if Grid ON, the contact fired.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
enepowerGridModeSensors That are Enpower Grid Mode Sensors for Enpower Grid Mode monitoring, if the Mode matches, the contact fired.
name Here set Your own sensor name.
gridMode Here select the grid mode Grid On, Grid Off, Multimode Grid On, Multimode Grid Off, Grid Tied, Grid Forming.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
enchargeStateSensor This is Encharge State Sensor for State monitoring, if State ON, the contact fired.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
enchargeProfileControl This is Encharge Profile Control for Profile control from HomeKit.
name Here set Your own tile name.
profile Here select the profile Savings, Economy, Full Backup, Self Consumption.
displayType Here select the tile type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Lightbulb.
enchargeProfileSensors That are Encharge Profile Sensors for Profile monitoring, if the Profile matches, the contact fired.
name Here set Your own sensor name.
profile Here select the profile Savings, Economy, Full Backup, Self Consumption.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
enchargeGridModeSensors That are Encharge Grid Mode Sensors for Encharge Grid Mod monitoring, if the Mode matches, the contact fired.
name Here set Your own sensor name.
gridMode Here select the grid mode Multimode Grid On, Multimode Grid Off.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
enchargeBackupLevelSensors That are Encharge Backup Level Sensors for Encharge Backup Level monitoring, if the Level matches, the contact fired.
name Here set Your own sensor name.
compareMode Here select the compare mode <, <=, ==, >, >=.
backupLevel Here set backup level in % to compare at which the sensor fired.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
solarGridModeSensors That are Solar Grid Mode Sensors for Solar Grid Mode monitoring, if the Mode matches, the contact fired.
name Here set Your own sensor name.
gridMode Here select the grid mode Grid On, Grid Off, Multimode Grid On, Multimode Grid Off, Grid Tied, Grid Forming.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
enpowerDryContactsControl This enable Dry Contacts control and expose Switches in HomeKit.
enpowerDryContactsSensors This enable Dry Contacts monitoring and expose Sensors in HomeKit.
generatorStateControl This is Generator State Control for Generator OFF/ON control from HomeKit.
name Here set Your own tile name.
displayType Here select the tile type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Switch, 2 - Outlet, 3 - Lightbulb.
namePrefix This enable the accessory name as a prefix for the tile name.
generatorStateSensor This is Generator State Sensor for State monitoring, if State not Off, the contact fired.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
generatorModeContol That are Generator Mode Control, for Generator OFF/ON/AUTO control from HomeKit.
name Here set Your own tile name.
mode Here select the grid mode Off, On, Auto.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Switch, 2 - Outlet, 3 - Lightbulb.
generatorModeSensors That are Generator Mode Sensors for Generator Mode monitoring, if the Mode matches, the contact fired.
name Here set Your own sensor name.
mode Here select the grid mode Off, On, Auto.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
dataRefreshControl This is Data Refresh Control for Data Refresh control from HomeKit.
name Here set Your own tile name.
displayType Here select the tile type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Switch, 2 - Outlet, 3 - Lightbulb.
namePrefix This enable the accessory name as a prefix for the tile name.
dataRefreshSensor This is Data Refresh Sensor for Data Refresh monitoring, if working, the contact fired.
name Here set Your own sensor name.
displayType Here select the sensor type to be displayed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor.
namePrefix This enable the accessory name as a prefix for the sensor name.
metersDataRefreshTime Here set Meters Data rfresh time in (sec).
productionDataRefreshTime Here set Production Data rfresh time in (sec).
liveDataRefreshTime Here set Live Data rfresh time in (sec).
ensembleDataRefreshTime Here set Ensemble Data rfresh time in (sec).
enableDebugMode If enabled, deep log will be present in homebridge console.
disableLogInfo If enabled, info log will be hidden, all values and state will not be displayed in Homebridge log console.
disableLogDeviceInfo If enabled, the info device log will be hidden by every plugin restart.
restFul This is RSTful server.
enable This enabled, RESTful server, start automatically and respond to any path request.
port Here set the listening Port for RESTful server.
debug This enable deep log and present in homebridge console for RESTFul server.
mqtt This is MQTT Broker.
enable This enable MQTT Broker, start automatically and publish all awailable data.
host Here set the IP Address or Hostname for MQTT Broker.
port Here set the Port for MQTT Broker, default 1883.
clientId Here optional set the Client Id of MQTT Broker.
prefix Here set the Prefix for Topic or leave empty.
auth This enable MQTT Broker authorization credentials.
user Here set the MQTT Broker user.
passwd Here set the MQTT Broker password.
debug This enable deep log and present in homebridge console for MQTT.

RESTFul Integration

  • POST data as a JSON Object {DataSampling: true}
Method URL Path Response Type
GET http//ip:port token, info, home, inventory, meters, metersreading, ensembleinventory, ensemblestatus, enchargeettings, tariff, drycontacts, drycontactssettinge, generator, generatorsettings, gridprofile, livedata, production, productionct, microinverters, powermode, plclevel, datasampling. {wNow: 2353} JSON object.
Method URL Key Value Type Description
POST http//ip:port DataSampling true, false boolean Data sampling Start/Stop.
http//ip:port PowerProductionState true, false boolean Power production state On/Off.
http//ip:port PlcLevel true boolean Check Plc Level On.
http//ip:port EnchargeProfile self-consumption, savings, economy, fullbackup string Set encharge profile.
http//ip:port EnpowerGridState true, false boolean Grid state On/Off.
http//ip:port GeneratorMode off, on, auto string Generator mode Off/On/Auto.

MQTT Integration

  • Subscribe data as a JSON Object {EnchargeProfile: "savings"}
Method Topic Message Type
Publish Token, Info, Home, Inventory, Meters, Meters Reading, Ensemble Inventory, Ensemble Status, Encharge Settings, Tariff, Dry Contacts, Dry Contacts Settings, Generator, Generator Settings, Grid Profile, Live Data, Production, Production CT, Microinverters, Power Mode, PCU Comm Level, Data Sampling {wNow: 2353} JSON object.
Method Topic Key Value Type Description
Subscribe Set DataSampling true, false boolean Data sampling Start/Stop.
Set PowerProductionState true, false boolean Power production state On/Off.
Set PlcLevel true boolean Check Plc Level On.
Set EnchargeProfile self-consumption, savings, economy, fullbackup string Set encharge profile.
Set EnpowerGridState true, false boolean Grid state On/Off.
Set GeneratorMode off, on, auto string Generator mode Off/On/Auto.

About

Homebridge plugin for Photovoltaic Energy System manufactured by Enphase. Supported Envoy-IQ, Envoy-S and all peripheral devices.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published