rule "read ALL values from KSEM on startup" when System started then val String jsonresult = executeCommandLine("/usr/bin/python /etc/openhab2/scripts/python/ksem-read.py", 2000).toString // logInfo("exec", jsonresult) KSEM_ActivePowerPlus.postUpdate(transform("JSONPATH", "$..['Active power+']", jsonresult)) KSEM_ActivePowerMinus.postUpdate(transform("JSONPATH", "$..['Active power-']", jsonresult)) KSEM_ReactivePowerPlus.postUpdate(transform("JSONPATH", "$..['Reactive power+']", jsonresult)) KSEM_ReactivePowerMinus.postUpdate(transform("JSONPATH", "$..['Reactive power-']", jsonresult)) KSEM_ApparentPowerPlus.postUpdate(transform("JSONPATH", "$..['Apparent power+']", jsonresult)) KSEM_ApparentPowerMinus.postUpdate(transform("JSONPATH", "$..['Apparent power-']", jsonresult)) KSEM_PowerFactor.postUpdate(transform("JSONPATH", "$..['Power factor']", jsonresult)) KSEM_SupplyFrequency.postUpdate(transform("JSONPATH", "$..['Supply frequency']", jsonresult)) KSEM_ActivePowerPlusL1.postUpdate(transform("JSONPATH", "$..['Active power+(L1)']", jsonresult)) KSEM_ActivePowerMinusL1.postUpdate(transform("JSONPATH", "$..['Active power-(L1)']", jsonresult)) KSEM_ReactivePowerPlusL1.postUpdate(transform("JSONPATH", "$..['Reactive power+(L1)']", jsonresult)) KSEM_ReactivePowerMinusL1.postUpdate(transform("JSONPATH", "$..['Reactive power-(L1)']", jsonresult)) KSEM_ApparentPowerPlusL1.postUpdate(transform("JSONPATH", "$..['Apparent power+(L1)']", jsonresult)) KSEM_ApparentPowerMinusL1.postUpdate(transform("JSONPATH", "$..['Apparent power-(L1)']", jsonresult)) KSEM_CurrentL1.postUpdate(transform("JSONPATH", "$..['Current(L1)']", jsonresult)) KSEM_VoltageL1.postUpdate(transform("JSONPATH", "$..['Voltage(L1)']", jsonresult)) KSEM_PowerFactorL1.postUpdate(transform("JSONPATH", "$..['Power factor(L1)']", jsonresult)) KSEM_ActivePowerPlusL2.postUpdate(transform("JSONPATH", "$..['Active power+(L2)']", jsonresult)) KSEM_ActivePowerMinusL2.postUpdate(transform("JSONPATH", "$..['Active power-(L2)']", jsonresult)) KSEM_ReactivePowerPlusL2.postUpdate(transform("JSONPATH", "$..['Reactive power+(L2)']", jsonresult)) KSEM_ReactivePowerMinusL2.postUpdate(transform("JSONPATH", "$..['Reactive power-(L2)']", jsonresult)) KSEM_ApparentPowerPlusL2.postUpdate(transform("JSONPATH", "$..['Apparent power+(L2)']", jsonresult)) KSEM_ApparentPowerMinusL2.postUpdate(transform("JSONPATH", "$..['Apparent power-(L2)']", jsonresult)) KSEM_CurrentL2.postUpdate(transform("JSONPATH", "$..['Current(L2)']", jsonresult)) KSEM_VoltageL2.postUpdate(transform("JSONPATH", "$..['Voltage(L2)']", jsonresult)) KSEM_PowerFactorL2.postUpdate(transform("JSONPATH", "$..['Power factor(L2)']", jsonresult)) KSEM_ActivePowerPlusL3.postUpdate(transform("JSONPATH", "$..['Active power+(L3)']", jsonresult)) KSEM_ActivePowerMinusL3.postUpdate(transform("JSONPATH", "$..['Active power-(L3)']", jsonresult)) KSEM_ReactivePowerPlusL3.postUpdate(transform("JSONPATH", "$..['Reactive power+(L3)']", jsonresult)) KSEM_ReactivePowerMinusL3.postUpdate(transform("JSONPATH", "$..['Reactive power-(L3)']", jsonresult)) KSEM_ApparentPowerPlusL3.postUpdate(transform("JSONPATH", "$..['Apparent power+(L3)']", jsonresult)) KSEM_ApparentPowerMinusL3.postUpdate(transform("JSONPATH", "$..['Apparent power-(L3)']", jsonresult)) KSEM_CurrentL3.postUpdate(transform("JSONPATH", "$..['Current(L3)']", jsonresult)) KSEM_VoltageL3.postUpdate(transform("JSONPATH", "$..['Voltage(L3)']", jsonresult)) KSEM_PowerFactorL3.postUpdate(transform("JSONPATH", "$..['Power factor(L3)']", jsonresult)) KSEM_ActiveEnergyPlus.postUpdate(transform("JSONPATH", "$..['Active energy+']", jsonresult)) KSEM_ActiveEnergyMinus.postUpdate(transform("JSONPATH", "$..['Active energy-']", jsonresult)) KSEM_ReactiveEnergyPlus.postUpdate(transform("JSONPATH", "$..['Reactive energy+']", jsonresult)) KSEM_ReactiveEnergyMinus.postUpdate(transform("JSONPATH", "$..['Reactive energy-']", jsonresult)) KSEM_ApparentEnergyPlus.postUpdate(transform("JSONPATH", "$..['Apparent energy+']", jsonresult)) KSEM_ApparentEnergyMinus.postUpdate(transform("JSONPATH", "$..['Apparent energy-']", jsonresult)) KSEM_ActiveEnergyPlusL1.postUpdate(transform("JSONPATH", "$..['Active energy+(L1)']", jsonresult)) KSEM_ActiveEnergyMinusL1.postUpdate(transform("JSONPATH", "$..['Active energy-(L1)']", jsonresult)) KSEM_ReactiveEnergyPlusL1.postUpdate(transform("JSONPATH", "$..['Reactive energy+(L1)']", jsonresult)) KSEM_ReactiveEnergyMinusL1.postUpdate(transform("JSONPATH", "$..['Reactive energy-(L1)']", jsonresult)) KSEM_ApparentEnergyPlusL1.postUpdate(transform("JSONPATH", "$..['Apparent energy+(L1)']", jsonresult)) KSEM_ApparentEnergyMinusL1.postUpdate(transform("JSONPATH", "$..['Apparent energy-(L1)']", jsonresult)) KSEM_ActiveEnergyPlusL2.postUpdate(transform("JSONPATH", "$..['Active energy+(L2)']", jsonresult)) KSEM_ActiveEnergyMinusL2.postUpdate(transform("JSONPATH", "$..['Active energy-(L2)']", jsonresult)) KSEM_ReactiveEnergyPlusL2.postUpdate(transform("JSONPATH", "$..['Reactive energy+(L2)']", jsonresult)) KSEM_ReactiveEnergyMinusL2.postUpdate(transform("JSONPATH", "$..['Reactive energy-(L2)']", jsonresult)) KSEM_ApparentEnergyPlusL2.postUpdate(transform("JSONPATH", "$..['Apparent energy+(L2)']", jsonresult)) KSEM_ApparentEnergyMinusL2.postUpdate(transform("JSONPATH", "$..['Apparent energy-(L2)']", jsonresult)) KSEM_ActiveEnergyPlusL3.postUpdate(transform("JSONPATH", "$..['Active energy+(L3)']", jsonresult)) KSEM_ActiveEnergyMinusL3.postUpdate(transform("JSONPATH", "$..['Active energy-(L3)']", jsonresult)) KSEM_ReactiveEnergyPlusL3.postUpdate(transform("JSONPATH", "$..['Reactive energy+(L3)']", jsonresult)) KSEM_ReactiveEnergyMinusL3.postUpdate(transform("JSONPATH", "$..['Reactive energy-(L3)']", jsonresult)) KSEM_ApparentEnergyPlusL3.postUpdate(transform("JSONPATH", "$..['Apparent energy+(L3)']", jsonresult)) KSEM_ApparentEnergyMinusL3.postUpdate(transform("JSONPATH", "$..['Apparent energy-(L3)']", jsonresult)) // KSEM_ManufacturerID.postUpdate(transform("JSONPATH", "$..['ManufacturerID']", jsonresult)) // logInfo("KSEM", ActivePowerPlus.toString) end rule "read values from KSEM all 60min" when // Item ShellyplugS2679a3_Relay_Betrieb changed from OFF to ON // Item OUT_Remise_Gartencam1_PIRMotionSensor changed from OFF to ON Time cron "0 0 0/1 * * ?" then val String jsonresult = executeCommandLine("/usr/bin/python /etc/openhab2/scripts/python/ksem-read.py", 2000).toString // logInfo("exec", jsonresult) KSEM_ActiveEnergyPlus.postUpdate(transform("JSONPATH", "$..['Active energy+']", jsonresult)) KSEM_ActiveEnergyMinus.postUpdate(transform("JSONPATH", "$..['Active energy-']", jsonresult)) KSEM_ReactiveEnergyPlus.postUpdate(transform("JSONPATH", "$..['Reactive energy+']", jsonresult)) KSEM_ReactiveEnergyMinus.postUpdate(transform("JSONPATH", "$..['Reactive energy-']", jsonresult)) KSEM_ApparentEnergyPlus.postUpdate(transform("JSONPATH", "$..['Apparent energy+']", jsonresult)) KSEM_ApparentEnergyMinus.postUpdate(transform("JSONPATH", "$..['Apparent energy-']", jsonresult)) KSEM_ActiveEnergyPlusL1.postUpdate(transform("JSONPATH", "$..['Active energy+(L1)']", jsonresult)) KSEM_ActiveEnergyMinusL1.postUpdate(transform("JSONPATH", "$..['Active energy-(L1)']", jsonresult)) KSEM_ReactiveEnergyPlusL1.postUpdate(transform("JSONPATH", "$..['Reactive energy+(L1)']", jsonresult)) KSEM_ReactiveEnergyMinusL1.postUpdate(transform("JSONPATH", "$..['Reactive energy-(L1)']", jsonresult)) KSEM_ApparentEnergyPlusL1.postUpdate(transform("JSONPATH", "$..['Apparent energy+(L1)']", jsonresult)) KSEM_ApparentEnergyMinusL1.postUpdate(transform("JSONPATH", "$..['Apparent energy-(L1)']", jsonresult)) KSEM_ActiveEnergyPlusL2.postUpdate(transform("JSONPATH", "$..['Active energy+(L2)']", jsonresult)) KSEM_ActiveEnergyMinusL2.postUpdate(transform("JSONPATH", "$..['Active energy-(L2)']", jsonresult)) KSEM_ReactiveEnergyPlusL2.postUpdate(transform("JSONPATH", "$..['Reactive energy+(L2)']", jsonresult)) KSEM_ReactiveEnergyMinusL2.postUpdate(transform("JSONPATH", "$..['Reactive energy-(L2)']", jsonresult)) KSEM_ApparentEnergyPlusL2.postUpdate(transform("JSONPATH", "$..['Apparent energy+(L2)']", jsonresult)) KSEM_ApparentEnergyMinusL2.postUpdate(transform("JSONPATH", "$..['Apparent energy-(L2)']", jsonresult)) KSEM_ActiveEnergyPlusL3.postUpdate(transform("JSONPATH", "$..['Active energy+(L3)']", jsonresult)) KSEM_ActiveEnergyMinusL3.postUpdate(transform("JSONPATH", "$..['Active energy-(L3)']", jsonresult)) KSEM_ReactiveEnergyPlusL3.postUpdate(transform("JSONPATH", "$..['Reactive energy+(L3)']", jsonresult)) KSEM_ReactiveEnergyMinusL3.postUpdate(transform("JSONPATH", "$..['Reactive energy-(L3)']", jsonresult)) KSEM_ApparentEnergyPlusL3.postUpdate(transform("JSONPATH", "$..['Apparent energy+(L3)']", jsonresult)) KSEM_ApparentEnergyMinusL3.postUpdate(transform("JSONPATH", "$..['Apparent energy-(L3)']", jsonresult)) // KSEM_ManufacturerID.postUpdate(transform("JSONPATH", "$..['ManufacturerID']", jsonresult)) // logInfo("KSEM", ActivePowerPlus.toString) end rule "read values from KSEM all 5min" when // Item ShellyplugS2679a3_Relay_Betrieb changed from OFF to ON // Item OUT_Remise_Gartencam1_PIRMotionSensor changed from OFF to ON Time cron "0 0/5 * * * ?" then val String jsonresult = executeCommandLine("/usr/bin/python /etc/openhab2/scripts/python/ksem-read.py", 2000).toString // logInfo("exec", jsonresult) KSEM_ReactivePowerPlus.postUpdate(transform("JSONPATH", "$..['Reactive power+']", jsonresult)) KSEM_ReactivePowerMinus.postUpdate(transform("JSONPATH", "$..['Reactive power-']", jsonresult)) KSEM_ApparentPowerPlus.postUpdate(transform("JSONPATH", "$..['Apparent power+']", jsonresult)) KSEM_ApparentPowerMinus.postUpdate(transform("JSONPATH", "$..['Apparent power-']", jsonresult)) KSEM_PowerFactor.postUpdate(transform("JSONPATH", "$..['Power factor']", jsonresult)) KSEM_SupplyFrequency.postUpdate(transform("JSONPATH", "$..['Supply frequency']", jsonresult)) KSEM_ReactivePowerPlusL1.postUpdate(transform("JSONPATH", "$..['Reactive power+(L1)']", jsonresult)) KSEM_ReactivePowerMinusL1.postUpdate(transform("JSONPATH", "$..['Reactive power-(L1)']", jsonresult)) KSEM_ApparentPowerPlusL1.postUpdate(transform("JSONPATH", "$..['Apparent power+(L1)']", jsonresult)) KSEM_ApparentPowerMinusL1.postUpdate(transform("JSONPATH", "$..['Apparent power-(L1)']", jsonresult)) KSEM_VoltageL1.postUpdate(transform("JSONPATH", "$..['Voltage(L1)']", jsonresult)) KSEM_PowerFactorL1.postUpdate(transform("JSONPATH", "$..['Power factor(L1)']", jsonresult)) KSEM_ReactivePowerPlusL2.postUpdate(transform("JSONPATH", "$..['Reactive power+(L2)']", jsonresult)) KSEM_ReactivePowerMinusL2.postUpdate(transform("JSONPATH", "$..['Reactive power-(L2)']", jsonresult)) KSEM_ApparentPowerPlusL2.postUpdate(transform("JSONPATH", "$..['Apparent power+(L2)']", jsonresult)) KSEM_ApparentPowerMinusL2.postUpdate(transform("JSONPATH", "$..['Apparent power-(L2)']", jsonresult)) KSEM_VoltageL2.postUpdate(transform("JSONPATH", "$..['Voltage(L2)']", jsonresult)) KSEM_PowerFactorL2.postUpdate(transform("JSONPATH", "$..['Power factor(L2)']", jsonresult)) KSEM_ReactivePowerPlusL3.postUpdate(transform("JSONPATH", "$..['Reactive power+(L3)']", jsonresult)) KSEM_ReactivePowerMinusL3.postUpdate(transform("JSONPATH", "$..['Reactive power-(L3)']", jsonresult)) KSEM_ApparentPowerPlusL3.postUpdate(transform("JSONPATH", "$..['Apparent power+(L3)']", jsonresult)) KSEM_ApparentPowerMinusL3.postUpdate(transform("JSONPATH", "$..['Apparent power-(L3)']", jsonresult)) KSEM_VoltageL3.postUpdate(transform("JSONPATH", "$..['Voltage(L3)']", jsonresult)) KSEM_PowerFactorL3.postUpdate(transform("JSONPATH", "$..['Power factor(L3)']", jsonresult)) end rule "read values from KSEM every 1min" when // Item ShellyplugS2679a3_Relay_Betrieb changed from OFF to ON // Item OUT_Remise_Gartencam1_PIRMotionSensor changed from OFF to ON Time cron "0 0/1 * * * ?" then val String jsonresult = executeCommandLine("/usr/bin/python /etc/openhab2/scripts/python/ksem-read.py", 2000).toString // logInfo("exec", jsonresult) KSEM_ActivePowerPlus.postUpdate(transform("JSONPATH", "$..['Active power+']", jsonresult)) KSEM_ActivePowerMinus.postUpdate(transform("JSONPATH", "$..['Active power-']", jsonresult)) KSEM_ActivePowerPlusL1.postUpdate(transform("JSONPATH", "$..['Active power+(L1)']", jsonresult)) KSEM_ActivePowerMinusL1.postUpdate(transform("JSONPATH", "$..['Active power-(L1)']", jsonresult)) KSEM_CurrentL1.postUpdate(transform("JSONPATH", "$..['Current(L1)']", jsonresult)) KSEM_ActivePowerPlusL2.postUpdate(transform("JSONPATH", "$..['Active power+(L2)']", jsonresult)) KSEM_ActivePowerMinusL2.postUpdate(transform("JSONPATH", "$..['Active power-(L2)']", jsonresult)) KSEM_CurrentL2.postUpdate(transform("JSONPATH", "$..['Current(L2)']", jsonresult)) KSEM_ActivePowerPlusL3.postUpdate(transform("JSONPATH", "$..['Active power+(L3)']", jsonresult)) KSEM_ActivePowerMinusL3.postUpdate(transform("JSONPATH", "$..['Active power-(L3)']", jsonresult)) KSEM_CurrentL3.postUpdate(transform("JSONPATH", "$..['Current(L3)']", jsonresult)) end