Because quested by PM here the scripts for vaccine for germany with official daily RKI-Excel-Publications:
I only have for Germany. And with new vaccines you will need to change the scripts (raise field number in greps -f. because I only found in excel:
Things:
Thing exec:command:CoVid19GetDataRKIimpf "EXEC Get CoVid19 RKI-Impf." [command="bash /etc/openhab/scripts/CoVid19_1_GetData_RKI-Impfungen.sh", interval=0, timeout=20, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKIDImpfdosen "EXEC CoVid19 RKI D Impfdosen" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_D_Impfdosen.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKINRWImpfdosen "EXEC CoVid19 RKI NRW Impfdosen" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_NRW_Impfdosen.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKIBImpfdosen "EXEC CoVid19 RKI B Impfdosen" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_B_Impfdosen.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKIDImpfdose1 "EXEC CoVid19 RKI D 1. Impfung" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_D_Impfdose1.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKINRWImpfdose1 "EXEC CoVid19 RKI NRW 1. Impfung" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_NRW_Impfdose1.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKIBImpfdose1 "EXEC CoVid19 RKI B 1. Impfung" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_B_Impfdose1.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKIDImpfdose2 "EXEC CoVid19 RKI D 2. Impfung" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_D_Impfdose2.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKINRWImpfdose2 "EXEC CoVid19 RKI NRW 2. Impfung" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_NRW_Impfdose2.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Thing exec:command:CoVid19RKIBImpfdose2 "EXEC CoVid19 RKI B 2. Impfung" [command="bash /etc/openhab/scripts/CoVid19_8_RKI_B_Impfdose2.sh", interval=0, timeout=60, autorun=false, transform="REGEX((.*?))"]
Items:
Switch CoVid19_GetData_RKIimpf_Run "Get Data RKIimpf" (gAll, gCoVid) {channel="exec:command:CoVid19GetDataRKIimpf:run", autoupdate="false" }
DateTime CoVid19_GetData_RKIimpf_LastRun "Get Data RKIimpf Last [%1$td.%1$tm. %1$tH:%1$tM Uhr]" (gAll, gCoVid) {channel="exec:command:CoVid19GetDataRKIimpf:lastexecution" }
//String CoVid19_RKI_D_Impfdosen_IN "D Impfdosen verimpft IN (Q:RKI) [%d]" (gAll, gCoVid) {channel="exec:command:CoVid19RKIDImpfdosen:output"}
Number CoVid19_RKI_D_Impfdosen "D Impfdosen verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKIDImpfdosen:output"}
Number CoVid19_RKI_D_Impfdosen_New "D Impfdosen neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChDI1, gHistoryCh)
Switch CoVid19_RKI_D_Impfdosen_Run "D Impfdosen verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKIDImpfdosen:run"}
Number CoVid19_RKI_D_Impfquote "Impfquote D (berechnet mit 2 Impf./P.) [%.3f %%]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf_ETA50 "D Impfq. 50% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf_ETA60 "D Impfq. 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf_ETA70 "D Impfq. 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf_ETA80 "D Impfq. 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impfung1 "D 1. Impfung verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKIDImpfdose1:output"}
Number CoVid19_RKI_D_Impfung1_New "D 1. Impfung neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChDI1, gHistoryCh)
Switch CoVid19_RKI_D_Impfung1_Run "D 1. Impfung verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKIDImpfdose1:run"}
Number CoVid19_RKI_D_Impfquote1 "Impfquote D (1. Impfung) [%.3f %%]" (gAll, gCoVid, gCoVidChDI2, gHistoryCh)
Number CoVid19_RKI_D_Impf1_ETA50 "D 1.Impfung 50% in x Tagen [%d]" (gAll, gCoVid, gCoVidChDIETA, gHistoryCh)
Number CoVid19_RKI_D_Impf1_ETA60 "D 1.Impfung 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf1_ETA70 "D 1.Impfung 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf1_ETA80 "D 1.Impfung 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impfung2 "D 2. Impfung verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKIDImpfdose2:output"}
Number CoVid19_RKI_D_Impfung2_New "D 2. Impfung neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChDI1, gHistoryCh)
Switch CoVid19_RKI_D_Impfung2_Run "D 2. Impfung verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKIDImpfdose2:run"}
Number CoVid19_RKI_D_Impfquote2 "Impfquote D (2. Impfung) [%.3f %%]" (gAll, gCoVid, gCoVidChDI2, gHistoryCh)
Number CoVid19_RKI_D_Impf2_ETA50 "D 2.Impfung 50% in x Tagen [%d]" (gAll, gCoVid, gCoVidChDIETA, gHistoryCh)
Number CoVid19_RKI_D_Impf2_ETA60 "D 2.Impfung 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf2_ETA70 "D 2.Impfung 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_D_Impf2_ETA80 "D 2.Impfung 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
//String CoVid19_RKI_NRW_Impfdosen_IN "NRW Impfdosen verimpft IN (Q:RKI) [%d]" (gAll, gCoVid) {channel="exec:command:CoVid19RKINRWImpfdosen:output"}
Number CoVid19_RKI_NRW_Impfdosen "NRW Impfdosen verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKINRWImpfdosen:output"}
Number CoVid19_RKI_NRW_Impfdosen_New "NRW Impfdosen neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChNRW4, gHistoryCh)
Switch CoVid19_RKI_NRW_Impfdosen_Run "NRW Impfdosen verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKINRWImpfdosen:run"}
Number CoVid19_RKI_NRW_Impfquote "Impfquote NRW (berechnet mit 2 Impf./P.) [%.3f %%]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf_ETA50 "NRW Impfq. 50% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf_ETA60 "NRW Impfq. 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf_ETA70 "NRW Impfq. 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf_ETA80 "NRW Impfq. 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impfung1 "NRW 1. Impfung verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKINRWImpfdose1:output"}
Number CoVid19_RKI_NRW_Impfung1_New "NRW 1. Impfung neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChNRW4, gHistoryCh)
Switch CoVid19_RKI_NRW_Impfung1_Run "NRW 1. Impfung verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKINRWImpfdose1:run"}
Number CoVid19_RKI_NRW_Impfquote1 "Impfquote NRW (1. Impfung) [%.3f %%]" (gAll, gCoVid, gCoVidChDI2, gHistoryCh)
Number CoVid19_RKI_NRW_Impf1_ETA50 "NRW 1.Impfung 50% in x Tagen [%d]" (gAll, gCoVid, gCoVidChDIETA, gHistoryCh)
Number CoVid19_RKI_NRW_Impf1_ETA60 "NRW 1.Impfung 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf1_ETA70 "NRW 1.Impfung 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf1_ETA80 "NRW 1.Impfung 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impfung2 "NRW 2. Impfung verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKINRWImpfdose2:output"}
Number CoVid19_RKI_NRW_Impfung2_New "NRW 2. Impfung neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChNRW4, gHistoryCh)
Switch CoVid19_RKI_NRW_Impfung2_Run "NRW 2. Impfung verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKINRWImpfdose2:run"}
Number CoVid19_RKI_NRW_Impfquote2 "Impfquote NRW (2. Impfung) [%.3f %%]" (gAll, gCoVid, gCoVidChDI2, gHistoryCh)
Number CoVid19_RKI_NRW_Impf2_ETA50 "NRW 2.Impfung 50% in x Tagen [%d]" (gAll, gCoVid, gCoVidChDIETA, gHistoryCh)
Number CoVid19_RKI_NRW_Impf2_ETA60 "NRW 2.Impfung 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf2_ETA70 "NRW 2.Impfung 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_NRW_Impf2_ETA80 "NRW 2.Impfung 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
//String CoVid19_RKI_B_Impfdosen_IN "B Impfdosen verimpft IN (Q:RKI) [%d]" (gAll, gCoVid) {channel="exec:command:CoVid19RKIBImpfdosen:output"}
Number CoVid19_RKI_B_Impfdosen "B Impfdosen verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKIBImpfdosen:output"}
Number CoVid19_RKI_B_Impfdosen_New "B Impfdosen neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChB5, gHistoryCh)
Switch CoVid19_RKI_B_Impfdosen_Run "B Impfdosen verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKIBImpfdosen:run"}
Number CoVid19_RKI_B_Impfquote "Impfquote B (berechnet mit 2 Impf./P.) [%.3f %%]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf_ETA50 "B Impfq. 50% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf_ETA60 "B Impfq. 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf_ETA70 "B Impfq. 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf_ETA80 "B Impfq. 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impfung1 "B 1. Impfung verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKIBImpfdose1:output"}
Number CoVid19_RKI_B_Impfung1_New "B 1. Impfung neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChB5, gHistoryCh)
Switch CoVid19_RKI_B_Impfung1_Run "B 1. Impfung verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKIBImpfdose1:run"}
Number CoVid19_RKI_B_Impfquote1 "Impfquote B (1. Impfung) [%.3f %%]" (gAll, gCoVid, gCoVidChDI2, gHistoryCh)
Number CoVid19_RKI_B_Impf1_ETA50 "B 1.Impfung 50% in x Tagen [%d]" (gAll, gCoVid, gCoVidChDIETA, gHistoryCh)
Number CoVid19_RKI_B_Impf1_ETA60 "B 1.Impfung 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf1_ETA70 "B 1.Impfung 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf1_ETA80 "B 1.Impfung 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impfung2 "B 2. Impfung verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidDIC, gHistoryCh) {channel="exec:command:CoVid19RKIBImpfdose2:output"}
Number CoVid19_RKI_B_Impfung2_New "B 2. Impfung neu verimpft (Q:RKI) [%d]" (gAll, gCoVid, gCoVidChB5, gHistoryCh)
Switch CoVid19_RKI_B_Impfung2_Run "B 2. Impfung verimpft RUN (Q:RKI)" (gAll, gCoVid, gCoVidDIRun) {channel="exec:command:CoVid19RKIBImpfdose2:run"}
Number CoVid19_RKI_B_Impfquote2 "Impfquote B (2. Impfung) [%.3f %%]" (gAll, gCoVid, gCoVidChDI2, gHistoryCh)
Number CoVid19_RKI_B_Impf2_ETA50 "B 2.Impfung 50% in x Tagen [%d]" (gAll, gCoVid, gCoVidChDIETA, gHistoryCh)
Number CoVid19_RKI_B_Impf2_ETA60 "B 2.Impfung 60% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf2_ETA70 "B 2.Impfung 70% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Number CoVid19_RKI_B_Impf2_ETA80 "B 2.Impfung 80% in x Tagen [%d]" (gAll, gCoVid, gHistoryCh)
Rules (inclusive calculation of ETA in days for mass immunity):
rule "CoVid Trigger Get-Data-Files RKI, RKI-Impf, Divi und NRW"
when
Time cron "0 18,48 5-2 ? * * *"
then
logInfo("CoVid Trigger Get-Data-Files RKI, RKI-Impf, Divi und NRW", "CoVid19 - Every 30m - Get new Data Files: RKI, Divi und NRW")
CoVid19_GetData_RKIimpf_Run.sendCommand(ON)
end
var Timer USAcalcTimer = null
var Timer DIcalcTimer = null
var Timer NRWIcalcTimer = null
var Timer BIcalcTimer = null
rule "CoVid Berechnungen Impfungen D"
when
// Time cron "0 /2 * ? * * *" or
Item gCoVidDIC changed
then
val int delaySec=30
logInfo("Covid Work Impfungen D", "CoVid19 - Calculate D Impfungen Timer")
if(DIcalcTimer === null) {
DIcalcTimer = createTimer(now.plusSeconds(delaySec), [|
CoVid19_RKI_D_Impfung1_New.postUpdate(CoVid19_RKI_D_Impfung1.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_D_Impfung2_New.postUpdate(CoVid19_RKI_D_Impfung2.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_D_Impfdosen_New.postUpdate(CoVid19_RKI_D_Impfdosen.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_D_Impfquote1.postUpdate(CoVid19_RKI_D_Impfung1.state as Number / 830200.00)
CoVid19_RKI_D_Impfquote2.postUpdate(CoVid19_RKI_D_Impfung2.state as Number / 830200.00)
// Berechnung ETA Herdenimmunität
CoVid19_RKI_D_Impf1_ETA50.postUpdate((41510000.0 - CoVid19_RKI_D_Impfung1.state as Number) / (CoVid19_RKI_D_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf1_ETA60.postUpdate((49812000.0 - CoVid19_RKI_D_Impfung1.state as Number) / (CoVid19_RKI_D_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf1_ETA70.postUpdate((58114000.0 - CoVid19_RKI_D_Impfung1.state as Number) / (CoVid19_RKI_D_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf1_ETA80.postUpdate((66416000.0 - CoVid19_RKI_D_Impfung1.state as Number) / (CoVid19_RKI_D_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf2_ETA50.postUpdate((41510000.0 - CoVid19_RKI_D_Impfung2.state as Number) / (CoVid19_RKI_D_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf2_ETA60.postUpdate((49812000.0 - CoVid19_RKI_D_Impfung2.state as Number) / (CoVid19_RKI_D_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf2_ETA70.postUpdate((58114000.0 - CoVid19_RKI_D_Impfung2.state as Number) / (CoVid19_RKI_D_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_D_Impf2_ETA80.postUpdate((66416000.0 - CoVid19_RKI_D_Impfung2.state as Number) / (CoVid19_RKI_D_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
logInfo("Covid Work Impfungen D", "CoVid19 - Calculate D Impfungen done")
DIcalcTimer.cancel
DIcalcTimer=null
] )
}
else {
DIcalcTimer.reschedule(now.plusSeconds(delaySec))
}
end
rule "CoVid Berechnungen Impfungen NRW"
when
// Time cron "0 /2 * ? * * *" or
Item gCoVidDIC changed
then
val int delaySec=30
logInfo("Covid Work Impfungen NRW", "CoVid19 - Calculate NRW Impfungen Timer")
if(NRWIcalcTimer === null) {
NRWIcalcTimer = createTimer(now.plusSeconds(delaySec), [|
CoVid19_RKI_NRW_Impfung1_New.postUpdate(CoVid19_RKI_NRW_Impfung1.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_NRW_Impfung2_New.postUpdate(CoVid19_RKI_NRW_Impfung2.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_NRW_Impfdosen_New.postUpdate(CoVid19_RKI_NRW_Impfdosen.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_NRW_Impfquote1.postUpdate(CoVid19_RKI_NRW_Impfung1.state as Number / 179470.00)
CoVid19_RKI_NRW_Impfquote2.postUpdate(CoVid19_RKI_NRW_Impfung2.state as Number / 179470.00)
// Berechnung ETA Herdenimmunität
CoVid19_RKI_NRW_Impf1_ETA50.postUpdate((8973500.0 - CoVid19_RKI_NRW_Impfung1.state as Number ) / (CoVid19_RKI_NRW_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf1_ETA60.postUpdate((10768200.0 - CoVid19_RKI_NRW_Impfung1.state as Number ) / (CoVid19_RKI_NRW_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf1_ETA70.postUpdate((12562900.0 - CoVid19_RKI_NRW_Impfung1.state as Number ) / (CoVid19_RKI_NRW_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf1_ETA80.postUpdate((14357600.0 - CoVid19_RKI_NRW_Impfung1.state as Number ) / (CoVid19_RKI_NRW_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf2_ETA50.postUpdate((8973500.0 - CoVid19_RKI_NRW_Impfung2.state as Number ) / (CoVid19_RKI_NRW_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf2_ETA60.postUpdate((10768200.0 - CoVid19_RKI_NRW_Impfung2.state as Number ) / (CoVid19_RKI_NRW_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf2_ETA70.postUpdate((12562900.0 - CoVid19_RKI_NRW_Impfung2.state as Number ) / (CoVid19_RKI_NRW_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_NRW_Impf2_ETA80.postUpdate((14357600.0 - CoVid19_RKI_NRW_Impfung2.state as Number ) / (CoVid19_RKI_NRW_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
logInfo("Covid Work Impfungen D", "CoVid19 - Calculate NRW Impfungen done")
NRWIcalcTimer.cancel
NRWIcalcTimer=null
] )
}
else {
NRWIcalcTimer.reschedule(now.plusSeconds(delaySec))
}
end
rule "CoVid Berechnungen Impfungen B"
when
// Time cron "0 /2 * ? * * *" or
Item gCoVidDIC changed
then
val int delaySec=30
logInfo("Covid Work Impfungen NRW", "CoVid19 - Calculate NRW Impfungen Timer")
if(BIcalcTimer === null) {
BIcalcTimer = createTimer(now.plusSeconds(delaySec), [|
CoVid19_RKI_B_Impfung1_New.postUpdate(CoVid19_RKI_B_Impfung1.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_B_Impfung2_New.postUpdate(CoVid19_RKI_B_Impfung2.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_B_Impfdosen_New.postUpdate(CoVid19_RKI_B_Impfdosen.deltaSince(now.minusMinutes(720)))
CoVid19_RKI_B_Impfquote1.postUpdate(CoVid19_RKI_B_Impfung1.state as Number / 36690.00)
CoVid19_RKI_B_Impfquote2.postUpdate(CoVid19_RKI_B_Impfung2.state as Number / 36690.00)
// Berechnung ETA Herdenimmunität
CoVid19_RKI_B_Impf1_ETA50.postUpdate((1834500.0 - CoVid19_RKI_B_Impfung1.state as Number ) / (CoVid19_RKI_B_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf1_ETA60.postUpdate((2201400.0 - CoVid19_RKI_B_Impfung1.state as Number ) / (CoVid19_RKI_B_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf1_ETA70.postUpdate((2568300.0 - CoVid19_RKI_B_Impfung1.state as Number ) / (CoVid19_RKI_B_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf1_ETA80.postUpdate((2935200.0 - CoVid19_RKI_B_Impfung1.state as Number ) / (CoVid19_RKI_B_Impfung1.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf2_ETA50.postUpdate((1834500.0 - CoVid19_RKI_B_Impfung2.state as Number ) / (CoVid19_RKI_B_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf2_ETA60.postUpdate((2201400.0 - CoVid19_RKI_B_Impfung2.state as Number ) / (CoVid19_RKI_B_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf2_ETA70.postUpdate((2568300.0 - CoVid19_RKI_B_Impfung2.state as Number ) / (CoVid19_RKI_B_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
CoVid19_RKI_B_Impf2_ETA80.postUpdate((2935200.0 - CoVid19_RKI_B_Impfung2.state as Number ) / (CoVid19_RKI_B_Impfung2.deltaSince(now.minusHours(324)) as Number / 14.0 ))
logInfo("Covid Work Impfungen D", "CoVid19 - Calculate B Impfungen done")
BIcalcTimer.cancel
BIcalcTimer=null
] )
}
else {
BIcalcTimer.reschedule(now.plusSeconds(delaySec))
}
end
Scripts (only Get Data and Example Berlin and because of little different Germany in total)
CoVid19_1_GetData_RKI-Impfungen.sh (Package with xlsx2csv needed)
#! /bin/bash
cd /tmp
RUNTIME=`date +%Y-%m-%d`
if [ ! -f /tmp/$RUNTIME.xlsx ]
then
mv CoVid_Data_RKI_D_Impfdaten.xlsx /tmp/$RUNTIME.xlsx
else
rm CoVid_Data_RKI_D_Impfdaten.xlsx
fi
rm CoVid_Data_RKI_D_Impfdaten.csv
DELE=$(/bin/wget -q -O CoVid_Data_RKI_D_Impfdaten.xlsx 'https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Impfquotenmonitoring.xlsx?__blob=publicationFile')
CONV=$(xlsx2csv CoVid_Data_RKI_D_Impfdaten.xlsx -a > CoVid_Data_RKI_D_Impfdaten.csv)
DATA="got it"
echo $DATA
Script CoVid19_8_RKI_B_Impfdose1.sh
#! /bin/bash
DATA=$(cat /tmp/CoVid_Data_RKI_D_Impfdaten.csv | grep "Berlin" -m 1 | cut -d, -f4)
echo $DATA
Script CoVid19_8_RKI_B_Impfdose2.sh
#! /bin/bash
DATA=$(cat /tmp/CoVid_Data_RKI_D_Impfdaten.csv | grep "Berlin" -m 1 | cut -d, -f10)
echo $DATA
Script CoVid19_8_RKI_B_Impfdosen.sh
#! /bin/bash
DATA=$(cat /tmp/CoVid_Data_RKI_D_Impfdaten.csv | grep "Berlin" -m 1 | cut -d, -f3)
echo $DATA
Script CoVid19_8_RKI_D_Impfdose1.sh
#! /bin/bash
DATA=$(cat /tmp/CoVid_Data_RKI_D_Impfdaten.csv | grep ",Gesamt," -m2 | grep -v Moderna | cut -d, -f4)
echo $DATA
Script CoVid19_8_RKI_D_Impfdose2.sh
#! /bin/bash
DATA=$(cat /tmp/CoVid_Data_RKI_D_Impfdaten.csv | grep ",Gesamt," -m2 | grep -v Moderna | cut -d, -f10)
echo $DATA
Script CoVid19_8_RKI_D_Impfdosen.sh
#! /bin/bash
DATA=$(cat /tmp/CoVid_Data_RKI_D_Impfdaten.csv | grep ",Gesamt," -m 2 | grep -v BioNTech | cut -d, -f3)
echo $DATA
I hope I didn’t forget something.
Remember:
- New vaccines: In scripts impfdosis2 the field in grep has to be raised, otherwise value of percent will be overtaken
- Sometimes the RKI changes somes Texts in Excel, so grep ,Gesamt, won’t work, then you need to change the script D over all
- If want to calculate ETA for other regions, you need to change in rules the amount of e.g. 50% citizens need to got the vaccine to the 50% citizens of those other region.