No announcement yet.

Basic Goal Zero Yeti JSON Integration Program/Script

  • Filter
  • Time
  • Show
Clear All
new posts

    Basic Goal Zero Yeti JSON Integration Program/Script

    Not sure if anyone else has a Goal Zero Yeti portable power station, but I purchased one this past summer. Great hardware but very little in the way of software to manage/monitor it. They have a basic phone app but no way to view historical data or easily integrate into a home automation system. I really wanted to track historical data on charging/output from my goal zero and came across this blog post ( where someone was able to get Goal Zero to give them the basic parameters to access a Yeti via a rest-based IP/JSON interface.

    Using my meager programming skills I adapted dzee 's PurpleAir JSON query program so that it could query my Goal Zero Yeti 3000X and then post updates for all the key metrics to virtual devices on my HS3 machine. I then use shill 's Device History plug-in to build a historical record of things like watts in/out, percent battery remaining, etc. I can also use the virtual devices to kick off other events.

    In case anyone else has a Goal Zero and wants to add this functionality to HomeSeer I have attached the files I used including:

    1. This has the Visual Studio Project with the program and config files
    2. GoalZero.txt: Simple Homeseer script that updates virtual devices with latest values from the GoalZero.exe created by the File #1.

    Here are instructions to get this all set up:

    1. Fire up Microsoft Visual Studio (it's free for personal use!), load up the Goal Zero Project file.
    2. Make sure that you have installed Newtonsoft JSON's plug-in from the Visual Studio package manager.
    3. You can edit the App.config file in Visual studio with your Goal Zero's IP address and the path you want to store the output parameters from the GoalZero query (you can also edit it at any time on your HS machine). For ease of updating devices I suggest you use the .../HomeSeer/Config/ path.
    4. Select the Program.cs tab and then "Build the solution". Find where Visual Studio deposited the GoalZero.exe and associated files. Place all these files (GoalZero.exe, GoalZero.exe.config, GoalZero.pdb, NewtonSoft.Json.dll and NewtwonSoft.Json.xml) together in a folder somewhere on your HS machine.
    6. Create virtual devices within HS for the parameters from the GoalZero JSON file that you want to monitor/use. Note the device #'s for these devices.
    7. Open the GoalZero.txt file and change the device #s to the ones you just created for your setup. There are a few parameters I didn't include but you can just cut and paste to add/subtract parameters. Save this file to your HS/Scripts folder.
    8. Create an HS Event that A) runs the GoalZero.exe program via "Run Another Program or Process" and then B) fires the GoalZero.txt script. I set mine to run every 10 mins. Might set it to run at longer intervals depending on battery impact.

    If everything has gone according to plan, once you fire off the event your virtual devices should now all be showing the latest data from your Goal Zero Yeti. From here you can create events that trigger off that data or use plug-ins like Device history to capture a historical record.

    The GoalZero REST API also allows you use POST commands to turn ports on/off and change a bunch of other things. If someone else has the time/inclination to add that functionality please feel free to do so and it would be great if you could share whatever you come up with. My guess is you can do so by just creating a simple HS script.

    Anyway, hopefully this will help out anyone else looking to add a basic Goal Zero Yeti integration to their HS setup. Enjoy!

    Attached Files

    Just to follow up on my own post, I have ported my Goal Zero monitoring to do it directly through the Big5 Plugin. If you'd rather not spend $50, you can use the program above, but Big5 is a very slick and easy way to implement and manage a whole range of JSON-based APIs into HS so I would recommend this approach over the .exe above if you are interacting with multiple JSON APIs. Using Big5 you can easily create and monitor HS Devices for every Goal Zero field you want to and you can also create HTTP Put commands to turn on/off various features/ports on your GoalZero. FWIW Below is a screen shot of my HTTP profile to get information from the Goal Zero:

    Click image for larger version

Name:	2021-04-02 14_26_51-Clipboard.png
Views:	26
Size:	64.1 KB
ID:	1466787