28.12.18

Shelly 1 v3 - Erste Eindrücke

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.....



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

Firefox Extensions im JSON Format parsen

Ich suche ein bestimmtes Addon. Zunächst die komplette Anzeige

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]

23.8.18

Alle Rechner im internen Netzwerk schnell finden

Dazu arp-scan (apt install arp-scan) installieren und dann

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/

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:

/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
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):
  1. Download the SQLITE source code - you want the full source code. Currently called sqlite-netFx-full-source-1.0.104.0.zip.
  2. unzip and cd Source,
  3. chmod +x the compile-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.
  4. Copy this .so file to the directory that has your application in
  5. Run your application as normal.
  6. 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"))

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:

'/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:


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.



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

 <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

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. ...