This commit is contained in:
Sina Blattmann 2023-07-13 10:18:00 +02:00
commit 84097b340b
13 changed files with 118 additions and 33 deletions

View File

@ -54,6 +54,8 @@ public static class SessionMethods
var user = session?.User;
var installation = Db.GetInstallationById(installationId);
var parent = Db.GetFolderById(parentId);
if(installation.ParentId == parentId) return false;
return user is not null
&& installation is not null

View File

@ -46,8 +46,20 @@ public class S3Cmd
public async Task<Boolean> CreateBucket(String bucketName)
{
var cors = @"<?xml version=""1.0"" ?>
<CORSConfiguration xmlns=""http://s3.amazonaws.com/doc/2006-03-01/"">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>";
var result = await Run(bucketName, "mb");
return result.ExitCode == 0;
var setCors = await Run(bucketName, "PutBucketCors", cors);
return result.ExitCode == 0 && setCors.ExitCode == 0;
}
public async Task<Boolean> DeleteBucket(String bucketName)

Binary file not shown.

View File

@ -1,33 +1,34 @@
#!/bin/bash
dotnet_version='net6.0'
salimax_ip= '10.2.3.104'
salimax_ip='10.2.3.104'
username='ie-entwicklung'
set -e
echo -e "\n============================ Build ============================\n"
dotnet publish \
dotnet publish \
./SaliMax.csproj \
-p:PublishTrimmed=false \
-c Release \
-r linux-x64
-r linux-x64
echo -e "\n============================ Deploy ============================\n"
rsync -v \
./bin/Release/$dotnet_version/linux-x64/publish/* \
ie-entwicklung@10.2.3.104:~/salimax
$username@$salimax_ip:~/salimax
echo -e "\n============================ Restart Salimax sevice ============================\n"
ssh -tt \
ie-entwicklung@10.2.3.104 \
$username@$salimax_ip \
sudo systemctl restart salimax.service
echo -e "\n============================ Print service output ============================\n"
ssh -tt \
ie-entwicklung@10.2.3.104 \
$username@$salimax_ip \
journalctl -f -u salimax.service

View File

@ -0,0 +1,34 @@
#!/bin/bash
dotnet_version='net6.0'
salimax_ip='10.2.4.29'
username='ie-entwicklung'
set -e
echo -e "\n============================ Build ============================\n"
dotnet publish \
./SaliMax.csproj \
-p:PublishTrimmed=false \
-c Release \
-r linux-x64
echo -e "\n============================ Deploy ============================\n"
rsync -v \
./bin/Release/$dotnet_version/linux-x64/publish/* \
$username@$salimax_ip:~/salimax
echo -e "\n============================ Restart Salimax sevice ============================\n"
ssh -tt \
$username@$salimax_ip \
sudo systemctl restart salimax.service
echo -e "\n============================ Print service output ============================\n"
ssh -tt \
$username@$salimax_ip \
journalctl -f -u salimax.service

View File

@ -6,7 +6,7 @@ public class RelaysRecord
{
private readonly Adam6360DRegisters _Regs;
public RelaysRecord(Adam6360DRegisters regs) => _Regs = regs;
private RelaysRecord(Adam6360DRegisters regs) => _Regs = regs;
public Boolean K1GridBusIsConnectedToGrid => _Regs.DigitalInput6;
public Boolean K2IslandBusIsConnectedToGridBus => !_Regs.DigitalInput4;

View File

@ -51,17 +51,9 @@ public class Config //TODO: let IE choose from config files (Json) and connect t
AmptIp = new() { Host = "localhost", Port = 5005},
RelaysIp = new() { Host = "localhost", Port = 5006},
BatteryIp = new() { Host = "localhost", Port = 5007},
BatteryNodes = new []{ 2, 3, 4, 5, 6 },
BatteryNodes = new []{ 2, 3, 4, 5, 6 }
},
S3 = new()
{
Bucket = "saliomameiringen",
Region = "sos-ch-dk-2",
Provider = "exo.io",
ContentType = "text/plain; charset=utf-8",
Key = "EXO2bf0cbd97fbfa75aa36ed46f",
Secret = "Bn1CDPqOG-XpDSbYjfIJxojcHTm391vZTc8z8l_fEPs"
}
S3 = null
};
#else
public static Config Default => new()

View File

@ -0,0 +1,43 @@
#!/bin/bash
host=ie-entwicklung@10.2.4.29
tunnel() {
name=$1
ip=$2
rPort=$3
lPort=$4
echo -n "localhost:$lPort $name "
ssh -nNTL "$lPort:$ip:$rPort" "$host" 2> /dev/null &
until nc -vz 127.0.0.1 $lPort 2> /dev/null
do
echo -n .
sleep 0.3
done
echo "ok"
}
echo ""
tunnel "Trumpf Inverter (http) " 10.0.2.1 80 9001
tunnel "Trumpf DCDC (http) " 10.0.3.1 80 9002
tunnel "Ext Emu Meter (http) " 10.0.4.1 80 9003
tunnel "Int Emu Meter (http) " 10.0.4.2 80 9004
tunnel "AMPT (http) " 10.0.5.1 8080 9005
#tunnel "Trumpf Inverter (modbus)" 10.0.2.1 502 3001
#tunnel "Trumpf DCDC (modbus) " 10.0.3.1 502 3002
#tunnel "Ext Emu Meter (modbus) " 10.0.4.1 502 3003
#tunnel "Int Emu Meter " 10.0.4.2 502 3004
#tunnel "AMPT (modbus) " 10.0.5.1 502 3005
#tunnel "Batteries " 127.0.0.1 6855 3007
echo
echo "press any key to close the tunnels ..."
read -r -n 1 -s
kill $(jobs -p)
echo "done"

View File

@ -33,7 +33,7 @@ tunnel "Trumpf DCDC (modbus) " 10.0.3.1 502 3002
tunnel "Ext Emu Meter (modbus) " 10.0.4.1 502 3003
tunnel "Int Emu Meter " 10.0.4.2 502 3004
tunnel "AMPT (modbus) " 10.0.5.1 502 3005
tunnel "Batteries " 127.0.0.1 6855 5007
tunnel "Batteries " 127.0.0.1 6855 3007
echo

View File

@ -26,7 +26,7 @@ public partial record SystemControlRegisters
//[Coil(4002)]
[HoldingRegister(4002)] public Boolean ResetAlarmsAndWarnings { get; set; }
[HoldingRegister(4007)] public UInt16 TargetSlave { get; set; }
[HoldingRegister(4007)] public UInt16 TargetSlave { get; set; }
//[Coil(4011)]
[HoldingRegister(4011)] public Boolean UseSlaveIdForAddressing { get; set; }

View File

@ -9,5 +9,6 @@ public enum InverterState : UInt16
AcSyncToGrid = 4,
AcCloseContactor = 5,
AcConnected = 6,
AcOpenContactor = 7,
Alarm = 99
}

View File

@ -17,7 +17,7 @@ public class TruConvertAcDcDevices
public TruConvertAcDcDevices(Channel transport)
{
var modbusClient = new ModbusTcpClient(transport, 0);
var modbusClient = new ModbusTcpClient(transport, slaveId: 0);
_SystemControl = new ModbusDevice<SystemControlRegisters>(modbusClient);
@ -57,21 +57,21 @@ public class TruConvertAcDcDevices
public void Write(AcDcDevicesRecord r)
{
if (r.SystemControl is not null)
_SystemControl.Write(r.SystemControl); // must run BEFORE the attached devices
foreach (var (ctrl, device) in r.Devices.Zip(_AcDcs))
try
{
try
if (r.SystemControl is not null)
_SystemControl.Write(r.SystemControl); // must run BEFORE the attached devices
foreach (var (ctrl, device) in r.Devices.Zip(_AcDcs))
{
device.Write(ctrl);
}
catch (Exception e)
{
Console.WriteLine(e);
// TODO: log
}
}
catch (Exception e)
{
Console.WriteLine(e);
// TODO: log
}
}
}

View File

@ -23,7 +23,7 @@ public class TextBlock
return new TextBlock(alignedLines);
}
public static TextBlock AlignRight(IReadOnlyList<Object> things)
private static TextBlock AlignRight(IReadOnlyList<Object> things)
{
var lines = things
.SelectMany(GetLines)