continue work on ICE tacho

This commit is contained in:
Schrottkatze 2024-10-03 19:31:13 +02:00
parent f0b640eeed
commit effe29cd74
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
2 changed files with 51 additions and 17 deletions

View file

@ -47,8 +47,19 @@
)
)
(defpoll iceData
:interval "2s"
:initial ""
`(iw dev wlp4s0 link | grep "WIFIonICE" > /dev/null) && curl https://iceportal.de/api1/rs/status`
(defwidget iceTacho []
(box
:class "iceTacho"
:tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})"
(circular-progress
:value { iceTachoData.frac * 60 + 20 }
:thickness 3
)
(label :text "${iceTachoData.speed} km/h")
)
)
(deflisten iceTachoData
:initial "null"
{ "~/.config/eww/scripts/iceTacho.nu" }
)

View file

@ -1,15 +1,38 @@
#!/usr/bin/env nu
const TABLE = [
[ br vmax ];
[ 401 280 ]
[ 402 280 ]
[ 403 330 ]
[ 406 330 ]
[ 407 320 ]
[ 408 320 ]
[ 411 230 ]
[ 415 230 ]
[ 412 265 ]
[ 605 200 ]
];
const TABLE = {
401: 280
402: 280
403: 330
406: 330
407: 320
408: 320
411: 230
415: 230
412: 265
605: 200
};
def main [ ] {
loop {
if ((iw dev wlp4s0 link | lines | filter {|it| $it =~ "WIFIonICE" } | length) == 1) {
let iceData = http get https://iceportal.de/api1/rs/status;
let tzn = $iceData.tzn;
let br = $iceData.series;
let speed = $iceData.speed;
let speedfrac = $speed / ($TABLE | get $br);
print ({
tzn: $tzn,
br: $br,
speed: $speed,
frac: $speedfrac
} | to json -r);
sleep 2sec;
} else {
print "null";
sleep 5sec;
}
}
}