remove GuiFeeder

This commit is contained in:
ig 2023-02-23 15:32:29 +01:00
parent 2f6d9a1799
commit cec22d07d8
3 changed files with 0 additions and 141 deletions

View File

@ -1,23 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="../InnovEnergy.app.props" />
<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>InnovEnergy.GuiFeeder</RootNamespace>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="../../lib/DBus/DBus.csproj" />
<ProjectReference Include="../../lib/Utils/Utils.csproj" />
<ProjectReference Include="../../lib/VeDBus/VeDBus.csproj" />
<ProjectReference Include="..\..\lib\Victron\VeDBus\VeDBus.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\..\..\..\..\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View File

@ -1,98 +0,0 @@
using System.Reactive.Linq;
using InnovEnergy.Lib.Victron.VeDBus;
// TODO THIS FILE IS LEGACY NOW?
namespace InnovEnergy.GuiFeeder;
using Services = IReadOnlyList<ServiceProperties>;
public static class Program{
public static async Task Main()
{
//Set Values to be written into the file and the filepath of the gui data.json file
const String filepath = @"/data/gui/data";
//legacy
// var trackedKeys = new String[]
// {
// "Dc/Battery/Soc", //State of charge
// "Dc/Battery/Power", //Power of Battery
// "Dc/Vebus/Power", //Power on DC Bus
// "Ac/ConsumptionOnOutput/L1/Power", //Consumption on Output aka CRITICAL CONSUMPTION
// "Ac/ConsumptionOnOutput/L2/Power",
// "Ac/ConsumptionOnOutput/L3/Power",
// "Ac/ConsumptionOnInput/L1/Power", //Consumption on Input aka non-critical
// "Ac/ConsumptionOnInput/L2/Power",
// "Ac/ConsumptionOnInput/L3/Power",
// "Ac/Grid/L1/Power", //Power on Grid
// "Ac/Grid/L2/Power",
// "Ac/Grid/L3/Power",
// "Ac/PvOnOutput/L1/Power", //Power on PV at Ac out bus
// "Ac/PvOnOutput/L2/Power",
// "Ac/PvOnOutput/L3/Power",
// "Ac/PvOnGrid/L1/Power", //Power on PV at Ac in bus
// "Ac/PvOnGrid/L2/Power",
// "Ac/PvOnGrid/L3/Power",
// };
var trackedKeys = new String[]
{
"Voltage",
"Current",
"Soc",
"Temperature"
};
//How often should we sample
const Int32 samplePeriodSecs = 1;
var interval = TimeSpan.FromSeconds(samplePeriodSecs);
//legacy
// //Setup dbus connection and read the data.json file
// var dbus = new DBusConnection(Bus.System);
//legacy
//Services to track
// var names = new[]
// { "com.victronenergy.system" };
Console.WriteLine("start sampling");
// Observable
// .Interval(interval)
// .Subscribe(async (b) => await UpdateDataFile(names, dbus, trackedKeys, filepath));
while (true)
{
await UpdateDataFile(trackedKeys, filepath);
Thread.Sleep(interval);
}
}
private static async Task UpdateDataFile(String[] trackedKeys, String filepath)
{
//We use time as timestamp and as a tracker of how many entries we allow
var time = DateTimeOffset.Now.ToUnixTimeSeconds();
var timemod = (time % 180).ToString();
var dict = new Dictionary<String, Object>();
foreach (var name in names)
{
var values = await dbus.GetAllValues(name);
//Write the tracked Values into JSON
foreach (var key in values.Keys)
{
// Console.WriteLine(!trackedKeys.Contains(key));
//we only take values we want to display
if (!trackedKeys.Contains(key)) continue;
dict.Add(key, values[key]);
}
//TODO Implement Time dependence (here and in py)
}
//Write File after each change in Values
var jsonObject = JsonConvert.SerializeObject(dict);
File.WriteAllText(filepath + timemod + ".json", jsonObject);
Console.WriteLine("Updated " + filepath + timemod + ".json");
}
}

View File

@ -1,20 +0,0 @@
using System.Reactive.Linq;
using InnovEnergy.Lib.Protocols.DBus;
using InnovEnergy.Lib.Victron.VeDBus;
namespace InnovEnergy.GuiFeeder;
public static class Utils
{
public static IObservable<IReadOnlyList<ServiceProperties>> ObserveVeService(this DBusConnection dbus,
Func<String, Boolean> selector)
{
return dbus
.ObservePropertiesOfServices(selector)
.StartWith(Array.Empty<ServiceProperties>());
}
}