Closed Jonk2 closed 2 years ago
I'm thinking that you have a mismatched of versions scripts given that the startrails tool isn't being called properly. I don't think you'll need to delete everything; you should be able to pull the latest changes with git.
Also, there may be a path name escaping/quoting issue since you're trying to upload to /Allsky/Allsky PI 2/images
. Did it work before? Not sure what's up with your NAS. Maybe ftp into it and see if the paths and stuff are there?
Some totally gratuitous advice: FTP is a stupid protocol and should be wiped off the face of the earth. You should switch to SMB/CIFS or NFS. My skycam just mounts a CIFS share from my NAS and it works very well. But that's just my opinion. Perhaps @EricClaeys has some better advice for troubleshooting the FTP issues.
Ok, is it a simple thing to do, as the instructions say to delete the allsky folder and clone a new one? What I do is rename the allsky folder, clone a new one and installed as fresh, manually putting my settings back in. Maybe that's not a good thing to do.
The NAS is accessible for both Allsky PI and Allsky PI 2 from my PCs, phones etc no issue. I do have mfa set up on all my NASes but that doesn't affect file access, only web admin stuff. There's nothing in the NAS access logs showing a connection refusal.
It was since I did this on the 3rd of October (rename and clone / install the new version), the latest image hasn't updated on the NAS since, none of the timelapses etc have been uploaded either but they have been created and are stored on the PI. Only this morning did they fail.
I'm thinking that I should clean up everything allsky related and start again, this is why I have a test PI! Unless there's an easy way to overwrite the files from the latest on Github, which I'm not sure how to do?
You may be right...?
Ok I'm learning...
I did a 'git pull' and it's showing me this:
Obviously something's changed but I'm not sure how to interpret these results.
I'll do some more reading / testing, but please feel free to close this 'issue' if noone else needs to contribute.
I'll probably end up deleting and starting afresh, to avoid wasting anyone's time. Unless I break something!
You may be right...?
Clearly you've changed something, as we all have.
Ok I'm learning...
I did a 'git pull' and it's showing me this:
Obviously something's changed but I'm not sure how to interpret these results.
I'll do some more reading / testing, but please feel free to close this 'issue' if noone else needs to contribute.
I'll probably end up deleting and starting afresh, to avoid wasting anyone's time. Unless I break something!
Yep lots of changes there. You can do git log
to see what commits you just pulled, if you're curious.
You'll want to rebuild the the binaries - cd src && make
- but I don't think you'll need to completely rip everything out
Actually, now that you're fully up to date with the latest code... you can run the following from the allsky
folder:
make clean all
sudo make install
You'll need to transfer your settings from config.sh
and ftp-settings.sh
info the same named files inside allsky/config
once that is done. After those are populated, you can backup / remove the same named files from the allsky
directory.
Oh, and then restart allsky:
sudo systemctl restart allsky
@Jonk2 Please make sure your scripts/upload.sh is the latest - it was updated late yesterday. It has quotes around the temporary name like "TL-26567". If that doesn't fix the "Forbidden filename" error, I suspect your FTP server doesn't allow minus signs in filenames. Try to manually FTP a file with a minus sign in the name. If that also fails, try with and underscore ("_"). If that works, I'll change upload.sh to use an underscore.
The "Access denied" error is because lftp can't upload the file due to "Forbidden filename", but then tries to rename the non-existent file, which of course fails. I haven't yet figured out how to get lftp to exit after the first error.
@Jonk2 Can you do me a favor? I don't have access to my Pi but want to test something.
In scripts/upload.sh, after the echo set net:timeout 20 line, add this: echo "echo ls xxxx || echo xxxx does not exist" on one line and echo "echo test 3 && echo test 4" on another. Then once the next image is uploaded, look in ~/allsky/tmp/upload_log.txt. If it has "xxxx" in it, copy the file to your reply.
You can then remove those two lines.
I appreciate it. This will help me determine how to exit after the first error.
@linuxkidd Thanks for the advice, but I've really broken something as nothing appeared to change the default image / overlay settings no matter what I changed / saved / checked, so I've given up and deleted / reinstalled from fresh!
This has not worked - I notice in the installation of the GUI, it cannot find certain things:
pi@allsky:~/allsky $ sudo gui/install.sh sudo: unable to resolve host allsky: Name or service not known gui/install.sh: line 3: ../config/variables.sh: No such file or directory
Welcome to the Allsky Administration Portal installation
- Installation of the webserver
Hit:1 http://raspbian.raspberrypi.org/raspbian buster InRelease Hit:2 http://giteduberger.fr rpimonitor/ InRelease Hit:3 http://archive.raspberrypi.org/debian buster InRelease Reading package lists... Done Reading package lists... Done Building dependency tree
Reading state information... Done avahi-daemon is already the newest version (0.7-4+deb10u1). hostapd is already the newest version (2:2.7+git20190128+0c1e29f-6+deb10u3). lighttpd is already the newest version (1.4.53-4+deb10u1). php-cgi is already the newest version (2:7.3+69). php-gd is already the newest version (2:7.3+69). dnsmasq is already the newest version (2.80-1+rpt1+deb10u1). The following packages were automatically installed and are no longer required: gir1.2-gmenu-3.0 gnome-menus libgdata-common libgdata22 libgnome-menu-3-0 libgoa-1.0-0b libgoa-1.0-common libimobiledevice6 libjansson4 libldb1 liboauth0 libplist3 librtimulib-dev librtimulib-utils librtimulib7 libtevent0 libusbmuxd4 python3-rtimulib python3-sense-hat Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded. already enabled Run "service lighttpd force-reload" to enable changes
Configuring lighttpd
Changing hostname to allsky
Setting avahi-daemon configuration
Adding the right permissions to the web server
Retrieving github files to build admin portal Cloning into '/var/www/html'... remote: Enumerating objects: 2052, done. remote: Counting objects: 100% (260/260), done. remote: Compressing objects: 100% (176/176), done. remote: Total 2052 (delta 145), reused 164 (delta 83), pack-reused 1792 Receiving objects: 100% (2052/2052), 3.30 MiB | 2.92 MiB/s, done. Resolving deltas: 100% (773/773), done. install: cannot stat '/settings_ZWO.json': No such file or directory install: cannot stat '/settings_RPiHQ.json': No such file or directory
Modify config.sh sed: can't read /config.sh: No such file or directory
The Allsky Portal is now installed You can now reboot the Raspberry Pi and connect to it from your laptop, computer, phone, tablet at this address: http://allsky.local or http://**
Do you want to reboot now? [y/n]
Here's a screenshot of what's been put in the freshly cloned allsky folder:
After rebooting and logging into the gui, all of the camera settings and scripts have gone back to default, but I have no image from the camera (as per attached screenshot) - it's showing a broken image link type icon and notice the "Daytime images updated every 0 seconds, nighttime every 0 seconds", even though the settings say otherwise.
Is simply deleting the allsky folder and recloning / install.sh / gui install.sh not working as expected?
@EricClaeys moving files between the PIs, PCs, and NASes using Filezilla via sftp works fine, with minus signs in both directions.
Sorry I can't try your suggestion at the moment due to the issue above.
Hmmm...update - opening the camera settings in the gui and simply pressing 'save changes' now shows an image - perhaps that's a bug that needs looking at?
Also, sorry but installing the latest (as of 30 minutes ago) my log shows this:
Oct 6 20:27:54 allsky allsky.sh[5860]: #033[32m ** Oct 6 20:27:54 allsky allsky.sh[5860]: #033[32m Allsky Camera Software v0.8.1 | 2021 Oct 6 20:27:54 allsky allsky.sh[5860]: #033[32m **
Is this correct? How can there be so many changes over the past few days but the version has remained the same? Can you add a build number or something because to idiots like me, I don't know whether I'm up to date or what version I have, and this makes it very difficult to sort out issues before asking for help.
I've just manually put all of my settings back in, saved the changes and although the image is displayed correctly now, the overlay is still at default settings.
I don't know what else I can do with this, as this should have been a fresh installation?
Something tells me deleting the allsky folder alone and cloning a fresh copy to install doesn't work?
@Jonk2 thanks for reporting the bug.
I submitted a fix but it may be a while before it's merged. In the meantime, to get the installation working, change this line at the top of gui/install.sh:
source ../config/variables.sh
to
if [ -z "${ALLSKY_HOME}" ] ; then
export ALLSKY_HOME=$(realpath $(dirname "${BASH_ARGV0}")/..)
fi
source ${ALLSKY_HOME}/variables.sh
Sorry for the hassle.
No need to apologise, it must be frustrating trying to solve everyone's issues, we'll all have different problems and I suspect not many of us are programmers!
I'll do as you suggest and report back. Thanks.
Ok here's the terminal result... does it look correct?
pi@allsky:~ $ cd allsky/gui pi@allsky:~/allsky/gui $ sudo ./install.sh sudo: unable to resolve host allsky: Name or service not known
Welcome to the Allsky Administration Portal installation
- Installation of the webserver
Hit:1 http://giteduberger.fr rpimonitor/ InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:3 http://archive.raspberrypi.org/debian buster InRelease
Reading package lists... Done Reading package lists... Done Building dependency tree
Reading state information... Done avahi-daemon is already the newest version (0.7-4+deb10u1). hostapd is already the newest version (2:2.7+git20190128+0c1e29f-6+deb10u3). lighttpd is already the newest version (1.4.53-4+deb10u1). php-cgi is already the newest version (2:7.3+69). php-gd is already the newest version (2:7.3+69). dnsmasq is already the newest version (2.80-1+rpt1+deb10u1). The following packages were automatically installed and are no longer required: gir1.2-gmenu-3.0 gnome-menus libgdata-common libgdata22 libgnome-menu-3-0 libgoa-1.0-0b libgoa-1.0-common libimobiledevice6 libjansson4 libldb1 liboauth0 libplist3 librtimulib-dev librtimulib-utils librtimulib7 libtevent0 libusbmuxd4 python3-rtimulib python3-sense-hat Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. already enabled Run "service lighttpd force-reload" to enable changes
Configuring lighttpd
Changing hostname to allsky
Setting avahi-daemon configuration
Adding the right permissions to the web server
Retrieving github files to build admin portal Cloning into '/var/www/html'... remote: Enumerating objects: 2052, done. remote: Counting objects: 100% (260/260), done. remote: Compressing objects: 100% (176/176), done. remote: Total 2052 (delta 145), reused 164 (delta 83), pack-reused 1792 Receiving objects: 100% (2052/2052), 3.30 MiB | 9.92 MiB/s, done. Resolving deltas: 100% (773/773), done.
Modify config.sh
The Allsky Portal is now installed You can now reboot the Raspberry Pi and connect to it from your laptop, computer, phone, tablet at this address: http://allsky.local or http://**
Do you want to reboot now? [y/n]
Ok, done and now the settings appear to be having an effect. Thanks for that.
However, have you changed or stopped the 'Allsky software is starting' message(s)? It no longer appears before the first image.
@Jonk2, have you rebooted the Pi? After the installation you need to in order for the new host name ("allsky") to take effect. That might be what's giving the error below. Is the "Allsky software is starting" message no appearing in the GUI, or on the website on a remote server? Either way, is there anything in /var/log/allsky.log right after your start AllSky?
@linuxkidd Michael, any ideas on this error at the beginning of gui/install.sh?
pi@allsky:~/allsky/gui $ sudo ./install.sh
sudo: unable to resolve host allsky: Name or service not known
*** Welcome to the Allsky Administration Portal installation ***
@Jonk2 the messages look good. Could you do me a favor and try the attached installation script? It solves the problem you had AND saves the allsky-website files if they were there.
If you do NOT have the website installed in /var/www/html/allsky, please create /var/www/html/allsky (may need sudo) then put a couple files in that directory - they can be junk files.
Move allsky/gui/install.sh to allsky/gui/install-ORIGINAL.sh Then copy the attached file to allsky/gui and re-run the installation of the GUI.
If it works you should see the message above PLUS a message about "Saving the prior website" and then "Restoring the prior website". Thanks
@EricClaeys yes I reboot when anything major has been changed.
I don't have a /var/www/html/allsky folder, but created that with a couple of files.
I've tried your attached install.sh and here's the response in the terminal.
You can see filezilla in the background showing the original and new install.sh. I wonder if the /var/www/html/allsky doesn't have the right access permissions actually (created in Filezilla)? Let me check that.
Nope, changing the /var/www/html/allsky folder structure to 777 didn't make a difference.
@linuxkidd Michael, any ideas on this error at the beginning of gui/install.sh?
I do have 2 PIs don't forget so if I remember correctly, the install script changes the PI's name to allsky doesn't it? Does having 2 PIs with the same name cause an issue? I would imagine yes. Maybe a prompt to the user to give it a custom name when installed is needed.
Sorry, I"m late to this party...
sudo: unable to resolve host allsky: Name or service not known
^ this error is likely caused by changing the Pi's hostname ( in /etc/hostname
), but not adding an entry in /etc/hosts
-- typically, you'd replace the 'raspberrypi' name in the hosts file with the new hostname. Or, you can just add a new line like:
127.0.1.1 newhostname
Having two PI's with the same hostname on the same network can result in unpredictable things from your other computers perspective. I'd suggest re-running the gui/install.sh
... specifying a different hostname for one of the PI's.
Example:
gui/install.sh allsky2
There's a mechanism built into that gui/install.sh
script to handle this.
@Jonk2 Sorry about the error when running gui/install.sh. I edited the file on my PC and it saves in PC format rather than UNIX format. We posted the file at https://github.com/thomasjacquin/allsky/tree/master/gui so you can grab it from there. Please run it with your fake files in /var/www/html/allsky. Thanks much!
@linuxkidd I thought so, but didn't realise you could set a custom name like that - could you add it to the install script as a prompt to the user? That would be easy for us - right at the end before reboot say "now rename your PI to
@EricClaeys The install.sh you provided on that link did not work either directly, so I copied the text into a new notepad++ file (on windows and my notepad++ is set to unix for new files) and saved - it overwrote and has a slightly different filesize. Anyway, I've run it and here's the result....rebooting now.
Is the "Allsky software is starting" message no appearing in the GUI, or on the website on a remote server? Either way, is there anything in /var/log/allsky.log right after your start AllSky?
Sorry forgot this - there's nothing in the log about the notification images and they're not being shown or saved.
Something else I've noticed might have changed - there's no ftpsettings on the editor menu:
@Jonk2 I had the same thing you are having. I redid whole git pull and now it shows up.
Mike
Did you need to reinstall the whole thing, the gui or just pull and watch it work?
So what I did since I was not sure what part was mucked up I moved my current allsky to allsky.bak went to /var/www and renamed the html to html.bak then went to the /etc and renamed the raspap to raspap.bak. then went to /var/log and deleted the allsky.log file then went to /var/log/lighttpd folder and deleted the error.log. I know it may have been a over kill but I wanted to make sure I backup/removed what I thought was important to me. I then did a new git pull and installed the allsky rebooted the pi and then installed the gui and reboot the pi. then i finally made the changes to ftp-settings.sh/config.sh and the camera settings. I am now able to see everything from the local PI. Currenlty have a issue with getting the files upload to my web host. I have a issue opened call " i mucked up something".
Mike
Hi Mike, I've seen that post, and I'm kind of in the same position. I'm not a Linux user really, but can follow instructions well enough. Whilst I apopreciate what this team is doing for this software, it's really difficult when things don't work - I'm hoping they get this right and can give us mere mortals a simple way to save settings, update, reinstate settings without having to do anything else. And when it breaks, easily roll back to a working version. Dare I say it, like most windows software works! BTW, reinstalling the gui only doesn't reinstate my ftpsettings on the menu after a git pull, so I'm going to wait for now until these issues are ironed out and working. I'm happy to test new things, but I couldn't tell you what versions of each file I have, as the log tells me 0.8.1, but they're talking of 0.8.5 now?
I would reinstall the main allsky app then reinstall the portal
Yep tried that, no change - the ftp-settings.sh doesn't show in the menu.
The file exists in /home/pi/allsky/config so I've manually edited that with the correct ftp settings for my NAS, but it doesn't appear to have worked.
@maserowik, @Jonk2, I appreciate your support while we make a gazillion changes trying to get to a stable release, which we're calling 0.8.5. We're not there yet but are close, so the REAME.md file and capture.cpp still say 0.8.1.
The drop-down list on the Editor page of the Admin WebUI (f.k.a., GUI) now contains only config.sh, ftp-settings.sh, and endOfNight_additionalSteps.sh. Those are the only 3 files regular users should edit. Now that we have 3 developers working on making enhancements, we'll soon be able to look into user-requested features and implement when appropriate, so we prefer people not change the scripts. It just makes support harder. We realize that Linux-knowledgeable people are going to edit if they want (this IS open source), and that's ok. But non-knowledgeable people will probably do more harm than good.
@Jonk2, I feel really bad when someone finds a bug we just introduced. I've been on vacation so haven't been able to fully test my changes until yesterday when @maserowik gave me access to his Pi. I've now tested my changes on his Pi before deploying them. One of my highest priority items is to support upgrading the packages, which would ideally include saving settings and images, upgrading or doing a full re-install, and restoring the settings and images. When we change the name of a setting, the upgrade script should populate the new setting with the value of the old one. If there's a new setting the user must deal with, the upgrade script should prompt for it. As a first baby step toward that, the gui/install.sh script now saves the website directory (/var/www/html/allsky) before installing the WebUI, then restores it. It no longer blows away the website. Another change we're working on is combining all the configuration files into one (config.sh, ftp-settings.sh, and settings_ZWO.json). This will allow having one way to update the settings, and allow for some error checking of values.
I think once we have 0.8.5 out, we'll create a "test" version with new features that people can play with. Every so often we'll make it the official, stable version and create a new "test" version.
+1 have been battling these issues for some time now. I find that if I re-run manually I don't have issues.
@maphilli14 What issues are you having? And what do you manually rerun?
@Jonk2 Jon, have your issues been resolved with the newest relesse?
I've not looked at the logs but typically I get no images or movie in the am. Anytime before noon I just do
allsky/scripts/endOfNight.sh &
and it spits the files out no issues.
@maphilli14 The logs would tell you what is happening. Look for "endOfNight.sh" after it starts daytime capture. There should be entries for starting keogram, startrails, and timelapse if you have all three set up to be produced. You shouldn't need to manually run endOfNight.sh.
@Jonk2 Jon, have your issues been resolved with the newest relesse?
I've installed on the test PI whichever version was latest as of 15-10-21 (last night for me).
Most things are working as far as I can tell, including FTP to my NAS although setting to SFTP does not work.
I cannot test the exposure ramping on the PI indoors as the light doesn't change like it does outside.
There is an issue that I had this morning, and that was the keogram failed - here's the log:
Oct 16 07:33:39 allsky2 allsky.sh[9919]: === Starting daytime capture === Oct 16 07:33:39 allsky2 allsky.sh[9919]: ========== Oct 16 07:33:39 allsky2 allsky.sh[9919]: Saving images with delay of 5000 ms (5 sec) Oct 16 07:33:39 allsky2 allsky.sh[9919]: STARTING EXPOSURE at: 2021-10-16 07:33:39 Oct 16 07:33:39 allsky2 allsky.sh[9919]: endOfNight.sh: ===== Generating Keogram Oct 16 07:33:41 allsky2 allsky.sh[9919]: OpenCV Error: Assertion failed (!fixedSize() || ((Mat)obj)->size.operator()() == Size(_cols, _rows)) in create, file /build/opencv-L65chJ/opencv-3.2.0+dfsg/modules/core/src/matrix.cpp, line 2287 Oct 16 07:33:41 allsky2 allsky.sh[9919]: terminate called after throwing an instance of 'cv::Exception' Oct 16 07:33:41 allsky2 allsky.sh[9919]: what(): /build/opencv-L65chJ/opencv-3.2.0+dfsg/modules/core/src/matrix.cpp:2287: error: (-215) !fixedSize() || ((Mat)obj)->size.operator()() == Size(_cols, _rows) in function create Oct 16 07:33:41 allsky2 allsky.sh[9919]: scripts/endOfNight.sh: line 79: 4157 Aborted "${ALLSKY_HOME}/keogram" ${SIZE_FILTER} -d "${DATE_DIR}/" -e ${EXTENSION} -o "${UPLOAD_FILE}" ${KEOGRAM_EXTRA_PARAMETERS} Oct 16 07:33:41 allsky2 allsky.sh[9919]: endOfNight.sh: ===== Generating Startrails
Startrail creation works.
The timelapse creation works, but has an issue, in that the resolution and aspect ratio was not correct even though the config.sh resize was set to "false" as per config.sh
The images are 3096x2080 and the resulting timelapse video was 2028x1520, when it should have been 3096x2080.
#!/bin/bash
# NOTES:
# - Variable names must start at the beginning of a line.
# - There should be nothing after a variable's value, i.e., no comments on the same line.
# - Values can optionally be quoted with double quotes, NOT single quotes.
# - If a variable occurs multiple times, only the last value is used.
# Choose between "ZWO", "RPiHQ", or "auto". "auto" prefers ZWO if present.
CAMERA="ZWO"
########## Images
# Set to "true" to upload the current image to your website.
IMG_UPLOAD="true"
# If UPLOAD_IMG is "true", upload images every IMG_UPLOAD_FREQUENCY frames, e.g., every 5 frames.
# 0 uploades every frame.
IMG_UPLOAD_FREQUENCY=0
# The websites look in IMG_DIR for the current image.
# When using the Allsky website from the "allsky-website" packge, "allsky" is an
# alias for "/var/www/html/allsky/" and "current" is an alias for "/home/pi/allsky".
# If you use "current" and have the Allsky website, prepend "/current/" to
# the "imageName" in /var/www/html/allsky/config.js, for example: imageName: "/current/image.jpg",
# Using "current" avoids copying the image to the website.
IMG_DIR="current"
# Set an optional prefix on the image file name, before "$FILENAME.$EXTENSION".
# This must match what the local web site thinks the name is (see /var/www/html/allsky/config.js).
IMG_PREFIX="latest-"
# Resize images before cropping and saving.
# Adjust IMG_WIDTH and IMG_HEIGHT according to your camera's sensor ratio.
IMG_RESIZE="false"
IMG_WIDTH=2028
IMG_HEIGHT=1520
# Crop images, used to improve them when using a fisheye lens.
CROP_IMAGE="false"
CROP_WIDTH=640
CROP_HEIGHT=480
CROP_OFFSET_X=0
CROP_OFFSET_Y=0
# Auto stretch images saved at night.
AUTO_STRETCH="false"
AUTO_STRETCH_AMOUNT=10
AUTO_STRETCH_MID_POINT="10%"
# Resize uploaded images. Change the size to fit your sensor.
RESIZE_UPLOADS="false"
RESIZE_UPLOADS_SIZE="962x720"
# Remove corrupt images before generating keograms and startrails.
# This can take tens of minutes to run and isn't necessary unless your system produces
# corrupt images which then generate funny colors in the summary images...
REMOVE_BAD_IMAGES="false"
# If REMOVE_BAD_IMAGES is "true", images whose mean brightness is
# less than THRESHOLD_LOW or greater than THRESHOLD_HIGH percent (max: 100) will be removed.
# Set to 0 to disable the brightness checks.
REMOVE_BAD_IMAGES_THRESHOLD_LOW=1
REMOVE_BAD_IMAGES_THRESHOLD_HIGH=90
########## Timelapse
# Set to "true" to generate a timelapse video at the end of each night.
TIMELAPSE="true"
# Set the image width and height for timelapse video (sizes must be divisible by 2).
TIMELAPSEWIDTH=0
TIMELAPSEHEIGHT=0
# Bitrate of the timelapse video. Higher numbers will produce higher quality but larger files.
TIMELAPSE_BITRATE="20000k"
# Timelapse video Frames Per Second.
FPS=30
# Encoder for timelapse video. May be changed to use a hardware encoder or different codec.
VCODEC="libx264"
# FFLOG determines the amount of log information displayed while creating a timelapse video.
# Set to "info" to see additional information if you are tuning the algorithm.
FFLOG="warning"
# While creating a timelapse video, a sequence of links to the images is created.
# Set to "true" to keep that sequence; set to "false" to have it deleted when done.
KEEP_SEQUENCE="false"
# Any additional timelapse parameters. Run "ffmpeg -?" to see the options.
TIMELAPSE_PARAMETERS=""
# Set to "true" to upload timelapse video to your website at the end of each night.
UPLOAD_VIDEO="true"
########## Keogram
# Set to "true" to generate a keogram at the end of each night.
KEOGRAM="true"
# Additional Keogram parameters. Run "keogram --help" to see the options.
# Keograms work best if North is at the top of the image. If this is not the case you can
# rotate the image; for example, if North is straight down in your image, rotate it 180 degrees.
# Rotation is anticlockwise. 0 disables rotation.
KEOGRAM_EXTRA_PARAMETERS="--rotate 0 --font-size 1.0 --font-line 1 --font-color '255 255 255'"
# Set to "true" to upload the keogram to your website at the end of each night.
UPLOAD_KEOGRAM="true"
########## Startrails
# Set to "true" to generate a startrails image of each night.
STARTRAILS="true"
# Images with a brightness higher than this threshold will be skipped for
# startrails image generation. Values are 0.0 to 1.0.
BRIGHTNESS_THRESHOLD=0.1
# Set to "true" to upload the startrails image to your website at the end of each night.
UPLOAD_STARTRAILS="true"
########## Other
# Size of thumbnails.
THUMBNAIL_SIZE_X=100
THUMBNAIL_SIZE_Y=75
# Set to "true" to enable automatic deletion of archived data (images + videos).
AUTO_DELETE="true"
# If AUTO_DELETE="true", set this value to the number of archived nights you want to keep.
NIGHTS_TO_KEEP=28
# Set to "true" to upload data to your server at the end of each night.
POST_END_OF_NIGHT_DATA="false"
# Set to "true" if you want to enable dark frame subtraction on your night-time images.
# You must first create dark frames - see the README.md file for instructions.
DARK_FRAME_SUBTRACTION="true"
# Set to "false" to disable daytime capture.
DAYTIME_CAPTURE="true"
# Night images are always taken and saved to disk.
# Setting DAYTIME_SAVE to "true" also saves daytime images to disk.
# Will only save daytime images if DAYTIME_CAPTURE="true".
DAYTIME_SAVE="false"
# The uhubctl command can reset the USB bus if the camera isn't found and you know it's there.
# Allsky.sh uses this to try and fix "missing" cameras.
# Specify the path to the command and the USB bus number (on a Pi 4, bus 1 is USB 2.0 and
# bus 2 is the USB 3.0 ports). If you don't have 'uhubctl' installed set UHUBCTL_PATH="".
UHUBCTL_PATH=""
UHUBCTL_PORT=2
# Path to the camera settings (exposure, gain, delay, overlay, etc) files.
# Do not change unless you know what you are doing.
CAMERA_SETTINGS_DIR="/etc/raspap"
if [ "${CAMERA}" = "" ]; then
echo "${RED}ERROR: Please set CAMERA in config.sh${NC}"
exit 1
fi
# !!! The next few lines are for backwards compatibility and will be removed in the future - do not change !!!
UPLOAD_IMG="${IMG_UPLOAD}" # UPLOAD_IMG is th eold name for IMG_UPLOAD
if [ "${DAYTIME_CAPTURE}" = "true" ]; then
DAYTIME=1 # DAYTIME is the old name for DAYTIME_CAPTURE
else
DAYTIME=0
fi
CAPTURE_24HR=${DAYTIME_SAVE} # CAPTURE_24HR is the old name for DAYTIME_SAVE
if [[ ${CAMERA} == "auto" ]]; then
# Restore currently saved autodiscovered camera type, if any.
source "${ALLSKY_CONFIG}/autocam.sh" # May reset ${CAMERA}
fi
if [[ ${CAMERA} != "auto" ]]; then
CAMERA_SETTINGS="${CAMERA_SETTINGS_DIR}/settings_${CAMERA}.json"
# So scripts can conditionally ouput messages; DO NOT CHANGE NEXT LINES.
ALLSKY_DEBUG_LEVEL=$(jq -r '.debuglevel' "${CAMERA_SETTINGS}")
fi
ALLSKY_DEBUG_LEVEL=${ALLSKY_DEBUG_LEVEL:-0}
Timelapse video details:
@ckuethe would you please look at the keogram OpenCV error?
@Jonk2 I have my indoor test camera point to the window so it sees the brightness change.
For SFTP not working, set the PROTOCOL to SFTP then manually try to upload something. Then look in allsky/tmp for the two ftp files. One is a log and the other contains the lftp commands executed. Type lftp
then copy and paste each command to see lftp's output. That should tell you what isn't working.
In general, when reporting issues can you please tell us which git revision you're working with (git log --oneline | head -1
)? We're in different timezones so it's not helpful to say "whichever version was latest as of 15-10-21 (last night for me)". Git log tells us unambiguously exactly which commits you've got.
Try run it by hand... something like this:
# fetch the latest source
git pull
# look at the git history; make sure you have a recent fix "db38226 add mutex header"
git log --oneline | head
# recompile the binaries
make
# test
src/keogram -vv -d images/20211015 -e jpg -o /tmp/k.jpg --num-threads 1 --nice-level 0 2>&1 | tee /tmp/kl.txt
That will run the freshly compiled keogram with a single thread and verbose output, copying the output to /tmp/kl.txt
That should at least tell you what was going on when keogram crashes. If it doesn't crash, them maybe we already fixed the bug.
If it does crash... congratulations, you get to learn how to use gdb (eg. https://www.cs.cmu.edu/~gilpin/tutorial/)
$ sudo apt install gdb
$ gdb src/keogram
(gdb) r -vv -d images/20211015 -e jpg -o /tmp/k.jpg --num-threads 1 --nice-level 0
(gdb) bt full
Then post the contents of the backtrace.
You'll definitely want to grab the latest commits from git. I added some additional tracing to endofnight so that the exact failed command is logged rather than Aborted "${ALLSKY_HOME}/keogram" ${SIZE_FILTER} -d "${DATE_DIR}/" -e ${EXTENSION} -o "${UPLOAD_FILE}" ${KEOGRAM_EXTRA_PARAMETERS}
which doesn't tell me if any parameters might be causing problems
My errors are as follows was there any expectation that the latest git contains more debug to the root of the errors?
pi@allsky:~ $ cat /var/log/allsky.log | grep endOfNight
Oct 17 06:53:08 allsky allsky.sh[1299]: endOfNight.sh: ===== Generating Keogram
Oct 17 06:53:47 allsky allsky.sh[1299]: scripts/endOfNight.sh: line 79: 12686 Aborted "${ALLSKY_HOME}/keogram" ${SIZE_FILTER} -d "${DATE_DIR}/" -e ${EXTENSION} -o "${UPLOAD_FILE}" ${KEOGRAM_EXTRA_PARAMETERS}
Oct 17 06:53:47 allsky allsky.sh[1299]: endOfNight.sh: ===== Generating Startrails
Oct 17 06:54:12 allsky allsky.sh[1299]: scripts/endOfNight.sh: line 105: 12774 Aborted "${ALLSKY_HOME}/startrails" ${SIZE_FILTER} -d "${DATE_DIR}" -e ${EXTENSION} -b ${BRIGHTNESS_THRESHOLD} -o "${UPLOAD_FILE}"
Oct 17 06:54:12 allsky allsky.sh[1299]: endOfNight.sh: ===== Generating Timelapse
Oct 18 06:53:58 allsky allsky.sh[1567]: endOfNight.sh: ===== Generating Keogram
Oct 18 06:55:06 allsky allsky.sh[1567]: scripts/endOfNight.sh: line 79: 11628 Aborted "${ALLSKY_HOME}/keogram" ${SIZE_FILTER} -d "${DATE_DIR}/" -e ${EXTENSION} -o "${UPLOAD_FILE}" ${KEOGRAM_EXTRA_PARAMETERS}
Oct 18 06:55:06 allsky allsky.sh[1567]: endOfNight.sh: ===== Generating Startrails
Oct 18 06:55:38 allsky allsky.sh[1567]: scripts/endOfNight.sh: line 105: 11787 Aborted "${ALLSKY_HOME}/startrails" ${SIZE_FILTER} -d "${DATE_DIR}" -e ${EXTENSION} -b ${BRIGHTNESS_THRESHOLD} -o "${UPLOAD_FILE}"
Oct 18 06:55:38 allsky allsky.sh[1567]: endOfNight.sh: ===== Generating Timelapse
Oct 19 06:55:04 allsky allsky.sh[1567]: endOfNight.sh: ===== Generating Keogram
Oct 19 07:00:01 allsky allsky.sh[1567]: scripts/endOfNight.sh: line 79: 12725 Aborted "${ALLSKY_HOME}/keogram" ${SIZE_FILTER} -d "${DATE_DIR}/" -e ${EXTENSION} -o "${UPLOAD_FILE}" ${KEOGRAM_EXTRA_PARAMETERS}
Oct 19 07:00:01 allsky allsky.sh[1567]: endOfNight.sh: ===== Generating Startrails
Oct 19 07:00:57 allsky allsky.sh[1567]: scripts/endOfNight.sh: line 105: 13104 Aborted "${ALLSKY_HOME}/startrails" ${SIZE_FILTER} -d "${DATE_DIR}" -e ${EXTENSION} -b ${BRIGHTNESS_THRESHOLD} -o "${UPLOAD_FILE}"
Oct 19 07:00:57 allsky allsky.sh[1567]: endOfNight.sh: ===== Generating Timelapse
Oct 19 08:21:56 allsky allsky.sh[1567]: scripts/endOfNight.sh: line 136: /home/pi/allsky/scripts/endOfNight_additionalSteps.sh: No such file or directory
pi@allsky:~ $
@Jonk2, Jon, grab the latest scripts/endOfNight.sh. It will expand the variables so you can see EXACTLY what arguments were passed to the keogram and startrails programs. We should then be able to reproduce the problem and fix it.
Also, do you have the latest src/startrails.cpp and src/keogram.cpp? If not, please grab them and put them in the allsky/src directory. Then run:
cd src
make all
sudo make install
My guess is that your endOfNight.sh and .cpp files are out of sync.
Ok, can I check something? Please bear with me, I'm not Linux inclined and am trying to keep up!
A fresh git clone copies all of the latest into the allsky folder - I get that.
Git diff shows the latest files vs what I have, correct? This way I can see what's changed before I download. To do this correctly I use git pull, correct? Does this only 'pull' or download files that are different, i,e, updated?
I assume once I do a git pull I need to 'make' allsky and capture again?
Anyway, I've followed the instructions above by @ckuethe and here's a screenshot of the process / result.
I've also follwed @EricClaeys instructions (assuming the git pull has dowloaded any changed files?) and run ./install.sh again, and rebooted.
The program is running and everything's set to run in the morning and save to a NAS location, as before.
I'm not sure I can do much more until I check the result tomorrow after work (which will be about 19:00 BST) so just over 24 hours from now.
OK, so the git pull failed because image.jpg was in conflict. git checkout -f image.jpg ; git pull
will resolve that.
Then you can run make again which will build the latest code. As you can see from the unrecognized option
message, the keogram program is kind of old and doesn't know about those very recently added options.
Another thing for you to try is to add a size filter. If
src/keogram -vv -d images/20211015 -e jpg -o /tmp/k.jpg --num-threads 1 --nice-level 0 2>&1 | tee /tmp/kl.txt
crashes, add -s WxH
where WxH
is the expected image size. On my system which produces 1280x960 images, that looks like
src/keogram -vv -s 1280x960 -d images/20211015 -e jpg -o /tmp/k.jpg --num-threads 1 --nice-level 0 2>&1 | tee /tmp/kl.txt
Ok I did the first bit, here's the result - I'm not entirely sure when I'm looking at, green good red bad normally?
As I've run make again, is that it or do I need to run the ./install.sh again?
That's perfectly normal git output which summarizes lines/bytes added and removed.
Note that I said src/keogram ...
- that'll run the program out of the source directory without installing. We're pretty confident that the state of the tools is currently better than whatever you've currently got installed, so you may as well make install
.
Also, when grepping for endofnight or timelapse in the logs, please use grep -C5 ...
which will add 5 additional lines of context around each matching line. There are often additional clues nearby.
I've tried to keep up with the many new releases / files and this could be a case of delete it all and start again!
To avoid confusion, I have 2 x RPI4bs and 2 x ASi178MCs (outdoors is standard, indoors test one is the cooled version).
Outside known as Allsky PI, inside test one Allsky PI 2.
My log file on the inside test Allsky PI 2 says it's v0.8.1 and for the past couple of days, the image upload (i.e. 'live-view' image) to my NAS fails.
Here's the log from the latest attempt (personal details obscured with **):
This is on my test PI indoors. There doesn't appear to be any 'saveImageNight.sh' entries. The FTP settings are correct and match the PI outdoors which is also running v0.8.1 (from the log), albeit a different folder (Allsky, not Allsky 2).
The PI outdoors seems to be working fine, and I've had no issue with timelapse, startrails and keogram generation on the PI outdoors, albeit cloudy and wet ones!
All of the files are saving fin on the PI in home/pi//allsky/inages, and thre are keograms etc since the last update (3rd of October) but this morning's (5th of October) failed with the following in the log:
Keogram
Startrails
Timelapse
With my limited understanding of this, the common denominator appears to be the NAS. I don't think it's a NAS access issue, but I suppose I should check that too. Nothing else has an issue accessing the location. It'd the 'Access failed: 550 TL-26567: Forbidden filename' that says it's not an access issue, but then also says 'mv: Access failed: 550 TL-26567: No such file or directory' which would suggest it can't see the location or has been refused.
If this is totally weird and I need to delete allsky and start again with a fresh clone, that's fine, but it might be more sinister. As I said, it could be a case of a botched installation i.e. mix / match of versions, but as both versions are shown as 0.8.1 in the logs, I have to assume they're the same and I haven't done something silly.