Phoenix Down

Members
  • Posts

    119
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Phoenix Down's Achievements

Apprentice

Apprentice (3/14)

20

Reputation

  1. Is there anyone actively maintaining the Autofan plug-in? I've already presented the fix. Just need the maintainer to merge in the one-line code change.
  2. Hi @bonienl, is this the right channel to report a bug? If not, please point me in the right direction I've been noticing an issue with Autofan in the last couple of months. It seems like whenever all of my HDDs are spun down and only my NVME cache drives are still active, Autofan gets confused and thinks there is no active drives, and shuts down all of my case fans. This causes my NVME drives to get pretty hot. After digging through the Autofan code, I discovered the issue in function_get_highest_hd_temp(): function_get_highest_hd_temp() { HIGHEST_TEMP=0 [[ $(version $version) -ge $(version "6.8.9") ]] && HDD=1 || HDD= for DISK in "${HD[@]}"; do # Get disk state using sdspin (new) or hdparm (legacy) ########## PROBLEM HERE ########## [[ -n $HDD ]] && SLEEPING=`sdspin ${DISK}; echo $?` || SLEEPING=`hdparm -C ${DISK}|grep -c standby` ########## Fix is below ########## [[ -n $HDD ]] && SLEEPING=`hdparm -C ${DISK} |& grep -c standby` ################################## echo Disk: $DISK - Sleep: $SLEEPING if [[ $SLEEPING -eq 0 ]]; then if [[ $DISK == /dev/nvme[0-9] ]]; then CURRENT_TEMP=$(smartctl -n standby -A $DISK | awk '$1=="Temperature:" {print $2;exit}') else CURRENT_TEMP=$(smartctl -n standby -A $DISK | awk '$1==190||$1==194 {print $10;exit} $1=="Current"&&$3=="Temperature:" {print $4;exit}') fi if [[ $HIGHEST_TEMP -le $CURRENT_TEMP ]]; then HIGHEST_TEMP=$CURRENT_TEMP fi fi done echo Highest Temp: $HIGHEST_TEMP } Check out the line I marked ########## PROBLEM HERE ##########. Specifically middle condition (sdspin). [[ -n $HDD ]] && SLEEPING=`sdspin ${DISK}; echo $?` || SLEEPING=`hdparm -C ${DISK}|grep -c standby` "sdspin" is a shell script that runs hdparm -C on the NVME device. Here's the contents of sdspin: # cat /usr/local/sbin/sdspin #!/bin/bash # spin device up or down or get spinning status # $1 device name # $2 up or down or status # ATA only # hattip to Community Dev @doron RDEVNAME=/dev/${1#'/dev/'} # So that we can be called with either "sdX" or "/dev/sdX" hdparm () { OUTPUT=$(/usr/sbin/hdparm $1 $RDEVNAME 2>&1) RET=$? [[ $RET == 0 && ${OUTPUT,,} =~ "bad/missing sense" ]] && RET=1 } if [[ "$2" == "up" ]]; then hdparm "-S0" elif [[ "$2" == "down" ]]; then hdparm "-y" else hdparm "-C" [[ $RET == 0 && ${OUTPUT,,} =~ "standby" ]] && RET=2 fi If I run the command directly: # hdparm -C /dev/nvme0 /dev/nvme0: drive state is: unknown # echo $? 25 This the same exit code that sdspin returns: # sdspin /dev/nvme0 # echo $? 25 My cache drives consists of 2x Silicon Power P34A80 1TB m.2 NVME drives. Apparently hdparm cannot get their power state, and because sdspin is looking for the word "standby", it never finds it. More importantly, the middle (sdspin) condition always sets $SLEEPING to sdspin's exit code, which is 25 in this case. And because 25 is not zero, this causes the script to think all disks are in standby mode (even though my NVME drives are still active), thus causing Autofan to shut off all case fans. My fix is simple: remove the middle condition: [[ -n $HDD ]] && SLEEPING=`hdparm -C ${DISK} |& grep -c standby` Because the last condition is looking specifically for the word "standby" and not just taking the exit code, it works. This is because hdparm says my NVME drive's state is in "unknown", which is not "standby". That means the script correctly considers the NVME drive as NOT in standby. I've locally modified the Autofan script and it's been running correctly for a few weeks. Unfortunately my local changes gets wiped out every time I reboot the server, so I'd appreciate it if you or the author can update the script to fix this bug. Thanks in advance!
  3. You know, I haven't actually tried that. Let me try and let you know if it doesn't work. Thanks!
  4. Thanks for the new docker! I'm still on the old nunofgs docker and want to migrate to your new version. However, I have a ton of plugins and customizations. What's the best way to bring them over to the new docker? Should I just copy everything over from /mnt/user/appdata/octoprint?
  5. For sure, when I do the migration, I'll post an update in this thread.
  6. That's what I'm using as well. I noticed the same thing - it hasn't been updated for a long time. There is another Octoprint docker in Community Apps that seems to be frequently updated. I plan to migrate over, but haven't had the time to do it. You can update all of the plugins EXCEPT for Octoprint itself. That will blow everything up, as you saw.
  7. The plugin has no GUI. Command line only.
  8. I recommend you use the plugin instead. I've given up on trying to get the Docker to work properly. It's also no longer being maintained while the plugin is.
  9. My entire library is in HEVC. I use Infuse on Apple TV and have no issues playing them. I also tried the Jellyfin app on the iPhone, which also has no problem playing them. But for some reason, Jellyfin app activates transcoding even though my phone is capable of decoding HEVC in hardware. Infuse will always direct stream the video if the client has the hardware to decode the codec though (which Apple TV does).
  10. My understanding is that if the Jellyfin app determines that you can play the video without transcoding (i.e. Direct Streaming), it will prefer that to transcoding.
  11. I don't have an answer to your question, but how did you get that output?
  12. Probably doesn't help you, but I don't have this issue with Infuse + Apple TV.
  13. Yep, it's super unintuitive. You can also see if transcoding is working by going into your Admin Dashboard. Any streams will show up there, along with transcoding info, if any.