Heute kamen bei mir die Wlan Schaltaktoren Shelly 1 an.
Mein erster Eindruck:
Wow! Genau das, was ich schon lange gesucht habe.
Die Einbindung ins Wlan gelang auf Anhieb, die Weboberfläche wirkt aufgeräumt und bietet viele Funktionen, das Gerät ist richtig schön klein und das Beste ist, dass alles offen ist. Es bietet MQTT und man kann es sogar flashen.
Die nächsten Tage werde ich es ausgiebig testen und berichten.....
28.12.18
22.11.18
Tenvis Fittek JPT3815W-HD Webcam steuern über Linux
Live-Video:
rtsp://USER:PASSWORT@[IP der Kamera]:[PORT -> meist 554 für rstp]/11
Schwenken mit curl:
curl -H "Authorization: Basic [BASE64]" "http://[IP der Kamera]/web/cgi-bin/hi3510/ptzctrl.cgi?-step=1&-act=left&-speed=45"
act=left => links
act=right => rechts
act=up => hoch
act=down => runter
Base64:
echo -n user:password | base64
Ergebnis:dXNlcjpwYXNzd29yZA==
Snapshot:
curl -H "Authorization: Basic [BASE64]" "[IP der Kamera]/tmpfs/auto.jpg" -o test.jpg
Kommando gefunden hier
rtsp://USER:PASSWORT@[IP der Kamera]:[PORT -> meist 554 für rstp]/11
Schwenken mit curl:
curl -H "Authorization: Basic [BASE64]" "http://[IP der Kamera]/web/cgi-bin/hi3510/ptzctrl.cgi?-step=1&-act=left&-speed=45"
act=left => links
act=right => rechts
act=up => hoch
act=down => runter
Base64:
echo -n user:password | base64
Ergebnis:dXNlcjpwYXNzd29yZA==
Snapshot:
curl -H "Authorization: Basic [BASE64]" "[IP der Kamera]/tmpfs/auto.jpg" -o test.jpg
Kommando gefunden hier
Firefox Extensions im JSON Format parsen
Ich suche ein bestimmtes Addon. Zunächst die komplette Anzeige
Alle Pfade zu den installierten Extensions ausgeben
Suche nach einer bestimmten Extension.
Um eine Variable zu übergeben, muss diese als Argument an jq übergeben werden:
Beispiel: Suche nach Namen => $1 in Bash => $v1 in jq
jq -r '.' ~/.mozilla/firefox/xead1hks.default/extensions.json(Pfad zu den Extensions entsprechend anpassen)
Alle Pfade zu den installierten Extensions ausgeben
jq -r '.addons[]| "\(.id) \(.path) \(.locales[0].name)"' ~/.mozilla/firefox/xead1hks.default/extensions.json
Suche nach einer bestimmten Extension.
Um eine Variable zu übergeben, muss diese als Argument an jq übergeben werden:
Beispiel: Suche nach Namen => $1 in Bash => $v1 in jq
found_ext=$(jq -r --arg v1 "$1" '.addons[] | select(.locales[0].name == $v1) | .path' $extension_path)
IP-Adressen von Amazon parsen:
{
"syncToken": "1640134401",
"createDate": "2021-12-22-00-53-21",
"prefixes": [
{
"ip_prefix": "3.5.140.0/22",
"region": "ap-northeast-2",
"service": "AMAZON",
"network_border_group": "ap-northeast-2"
},
wget -qO- https://ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes[] | .ip_prefix' -r
10.9.18
Tastatur - fn Taste immer aktiviert
1 statt j
2 statt k
3 statt l
Grund: Fn-Taste ist ständig aktiviert.
Das hatte ich in bei einer neu importierten virtuellen Maschine (Virtualbox).
Abhilfe:
Fn+[NUM]
2 statt k
3 statt l
Grund: Fn-Taste ist ständig aktiviert.
Das hatte ich in bei einer neu importierten virtuellen Maschine (Virtualbox).
Abhilfe:
Fn+[NUM]
23.8.18
Alle Rechner im internen Netzwerk schnell finden
Dazu arp-scan (apt install arp-scan) installieren und dann
Heraus kommen alle IP-Adressen aufsteigend sortiert.
sudo arp-scan 192.168.178.0/24 | awk '{ print $1 }' | egrep "^[0-9]{3}" | uniq | sort -t . -k 3,3n -k 4,4n
Heraus kommen alle IP-Adressen aufsteigend sortiert.
14.8.18
exiftool auf Qnap installieren
1. Source herunterladen
https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.06.tar.gz
2. Entpacke und in das Verzeichnis wechseln
3. perl Makefile.PL
4. make install
Perl ggfs. über ipkg (opkg) installieren.
Pfade der Executables:
/share/CACHEDEV1_DATA/.qpkg/Optware-NG/opt/bin/
https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.06.tar.gz
2. Entpacke und in das Verzeichnis wechseln
3. perl Makefile.PL
4. make install
Perl ggfs. über ipkg (opkg) installieren.
Pfade der Executables:
/share/CACHEDEV1_DATA/.qpkg/Optware-NG/opt/bin/
1.8.18
c# Mehrere Datatables anlegen
List<DataTable> manytables = new List<DataTable>();
manytables.Add(new DataTable("one"));
manytables.Add(new DataTable("two"));
manytables.Add(new DataTable("three"));
string result = "";
MessageBox.Show(manytables[0].TableName);
foreach (DataTable table in manytables )
{
result += table.TableName + " ";
}
MessageBox.Show("Count tables: " + manytables.Count() + "\r\n" + "Names: " + result);
26.7.18
Screen Befehl funktioniert nicht
Fehlermeldung:
Nun gehts...
/var/run/utmp: No such file or directory
Cannot find terminfo entry for 'putty'.
ls /usr/share/terminfo/x
xterm xterm-xfree86
export TERM=xterm-xfree86
Nun gehts...
20.7.18
rclone - quick start
Neue Config anlegen
Dort Art wählen, z.B. sftp
Verzeichnis anlegen
Dateien auflisten
Syncen
rclone config
Dort Art wählen, z.B. sftp
Verzeichnis anlegen
rclone mkdir remote:Directory
Dateien auflisten
rclone ls remote:
Syncen
rclone sync SRC remote:Directory
27.6.18
SQlite unter Mono
Wenn Interop.dll not found (von hier):
- Download the SQLITE source code - you want the full source code. Currently called sqlite-netFx-full-source-1.0.104.0.zip.
unzip
andcd Source
,chmod +x
thecompile-interop-assembly-release.sh
build shell script, then run it./compile-interop-assembly-release.sh
. - It'll build an.so
file in the../bin
directory.- Copy this
.so
file to the directory that has your application in - Run your application as normal.
- Note: Ensure that your SQLite database and the directory it's inside of are writable by the user you're trying to run as.
1. Download mit Firefox, da direkter Download nicht mehr möglich
2. unzip, cd Setup, chmod +x compile-interop-assembly-release.sh, ./compile-interop-assembly-release.sh
3. Kopieren: cp ../bin/2013/Release/bin/libSQLite.Interop.so => Zielverzeichnis
31.5.18
Bash - aktuellen Pfad herausfinden
## Aktuellen Pfad des Scripts herausfinden
Location="$(dirname "$(readlink -e "$0")")"
Bei Qnap mit Entware:
Location=$(/opt/bin/dirname $(/opt/bin/readlink -e "$0"))
Location="$(dirname "$(readlink -e "$0")")"
Bei Qnap mit Entware:
Location=$(/opt/bin/dirname $(/opt/bin/readlink -e "$0"))
Snippet, um Bilddaten aus einer Kameraüberwachung nach Datum abzulegen
checkfile()
{
## Datum holen => 2018:05:15 19:01:26+02:00
newdate=$(exiftool -T "-FileModifyDate" "$1") # | tr -d ':' | tr ' ' '_' | cut -d '+' -f 1)
year=$(echo "$newdate" | cut -d ":" -f 1)
# Jahr, Monat und Tag holen => 2018-05-26
yearandmonth=$(echo "$newdate" | awk -F ":" '{ print $1 "-" $2 "-" $3 }' | cut -d ' ' -f 1)
newname=$(echo "$newdate" | tr -d ':' | tr -d ' ' | cut -d '+' -f 1 )
# Das entsprechende Unterverzeichnis anlegen
mkdir -p "$year/$yearandmonth"
## Bilder verschieben
mv "$1" "$SRCDIR/$year/$yearandmonth/${newname}_terrasse_move.jpg"
}
find $SRCDIR_TERRASSE -maxdepth 2 -iname '*.jpg' | while read file; do checkfile "$file";done
Ergebnis:
Verschieben zu 2018/2018-05-26/20180526122404_terrasse_move.jpg
Einzeiler, um Bilder anhand der Exif-Daten umzubenennen:
exiftool -d %Y-%m-%d_%H%M%S".jpg" "-filename<datetimeoriginal" "-filemodifydate<datetimeoriginal#" -ext jpg images/
Besser (bei mehreren zeitgleich aufgenommenen Bildern)
exiftool -d '%Y%m%d-%H%M%S%-02.c.%%e' '-filename<CreateDate'
Einzeiler, um Bildern aus einem Ordner ein Datum zuzuweisen
exiftool -m -overwrite_original "-AllDates=1990:01:01 12:00:00" -r -if '($filetype eq "JPEG")' .-m ignoriert Fehlermeldungen, bei mir:
"Bad MakerNotes offset for Unknown_......"
-overwrite_original Original wird überschrieben
3.5.18
Android SD-Karte unter Linux Shell ansprechen
Wenn man z.B. ein Linux System unter Virtualbox auf einem Windows-Hostsystem laufen hat, kann man wie üblich USB Geräte durchreichen.
Das funktioniert auch bei vielen Android Handys.
In der Ansicht des Dateimanagers erhält man dann z.B. ein Android-Gerät, über das man auf den dortigen Speicher zugreifen kann.
Wie aber kann ich dann ein rsync veranlassen?
Lösung:
Wenn auf das Android Gerät geklickt wird, sieht man z.B. "Interner gemeinsamer Speicher". Per Klick and Drop auf ein Terminal schieben und man sieht den kompletten Pfad, den man auch über die Kommandozeile ansprechen kann.
So kann es aussehen:
Das funktioniert auch bei vielen Android Handys.
In der Ansicht des Dateimanagers erhält man dann z.B. ein Android-Gerät, über das man auf den dortigen Speicher zugreifen kann.
Wie aber kann ich dann ein rsync veranlassen?
Lösung:
Wenn auf das Android Gerät geklickt wird, sieht man z.B. "Interner gemeinsamer Speicher". Per Klick and Drop auf ein Terminal schieben und man sieht den kompletten Pfad, den man auch über die Kommandozeile ansprechen kann.
So kann es aussehen:
'/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C004%5D/Interner gemeinsamer Speicher'
10.4.18
Avconv statt ffmpeg
Ich hatte Probleme mit dem Erstellen von Screenshots meiner Webcam. Auf dem RPI mit Raspbian lief es, auf dem anderen mit Ubuntu 16.04 nicht.
Beim Vergleich der avconv Versionen stellte ich fest, dass auf dem Ubuntu System ein Verweis auf ffmpeg eingerichtet ist. avconv war gar nicht installiert.
Lösung wie auf dieser Webseite:
Beim Vergleich der avconv Versionen stellte ich fest, dass auf dem Ubuntu System ein Verweis auf ffmpeg eingerichtet ist. avconv war gar nicht installiert.
Lösung wie auf dieser Webseite:
apt-get remove --purge libav-tools
apt-get install build-essential apt-get install yasm apt-get install libfdk-aac-dev apt-get install libx264-dev## Version auf die derzeit aktuelle angepasst!wget https://libav.org/releases/libav-12.3.tar.gz --no-check-certificate tar zxvf libav-12.3.tar.gz cd libav-12.3/ ./configure --enable-libvo-aacenc --enable-gpl --enable-nonfree --enable-version3 --enable-libx264 --enable-static --disable-shared make && make install
22.3.18
Virtualbox Share einrichten - gemeinsame Ordner freigeben
sudo mount -t vboxsf -o uid=1000,gid=1000 share ~/share
Gemeinsamen Ordner als Standardnutzer freigeben:
sudo usermod -aG vboxsf [Benutzername]
19.3.18
.htaccess funktioniert nicht / .htaccess not working
Immer wieder das gleiche Problem und das Gehirn ist leider löchrig ;)
Wenn die .htaccess nicht funktionieren will, überprüfen, ob
1. das Apache Module aktiviert wurde mit "a2enmode rewrite"
2. In der Config für den entsprechenden Host "AllowOverride All" vorhanden ist.
Wenn die .htaccess nicht funktionieren will, überprüfen, ob
1. das Apache Module aktiviert wurde mit "a2enmode rewrite"
2. In der Config für den entsprechenden Host "AllowOverride All" vorhanden ist.
8.2.18
Nextcloud unter Ubuntu - .htaccess funktionierte nicht
"Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht."
Abhilfe:
In der entsprechenden Config vom Apache im Directory Abschnitt
Abhilfe:
In der entsprechenden Config vom Apache im Directory Abschnitt
<Directory "/var/www/html/nextcloud">
allow from all
Options None
Require all granted
Options +FollowSymlinks
AllowOverride All
</Directory>
26.1.18
Roundcube unter Ubuntu 16.04
apt install roundcube
Datenbankbenutzer roundcube erstellen und Rechte zu gleichnamiger DB geben
Verzeichnis von roundcube:
/usr/share/roundcube
Unter
/etc/apache2/conf-available/roundcube.conf
die erste Zeile auskommentieren
Alias /roundcube /var/lib/roundcube
Apache neustarten
Webmailer sollte erreichbar sein unter
https://mydomain/roundcube
Wenn nichts kommt, Fehler checken
tail -f /var/log/roundcube/errors
Bei mir:
PHP Fatal error: Uncaught Error: Class 'Net_IDNA2' not found
Fix:
pear install channel://pear.php.net/Net_IDNA2-0.1.1
Abonnieren
Posts (Atom)
Openhab und Ecoflow Max - API Anbindung
Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...
-
Nach jahrelanger Nutzung von Putty bin ich vollends auf Kitty umgestiegen, da es einige Funktionen bietet, die über die von Putty hinausgehe...
-
Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...
-
Zuerst wollte ich sipcmd nach dieser Anleitung installieren, doch es trat folgender Fehler auf: src/includes.h:23:19: fatal error: ptli...