Angelegt Donnerstag 25 Mai 2023 Stefan Höhn Wormser Linux User Stammtisch Wolust
Mir gehts mehr um die Möglichkeiten als um eine korrekte Definition. Folien ? Internet an persönliche Anforderungen anpassen. Hacken so wie ich das möchte. Beispiele: Schwerpunkt Worms , Medien , Grafik
Keine Angst . Ich erkläre das Stück für Stück
Bourne again Shell Mensch-Maschine Schnittstelle . Human Machine Interface“ (HMI) Befehl an Maschine-> Ausgabe (auch Computerprogramm) Das braucht man für BASH: Kleines schwarzes Kästchen -> Dosfenster -> Termialemulator -> Terminal Es gibt verschiedene Shells : zsh, csh, fish ………Powershell ? Hier gehts um BASH
Viele Newbies halten das für Nachteil : Mausanwendungen sind sehr eingeschänkt 🐭️❌️ Vorteil : Ich mach mir meine (Welt) Ausgabe wie sie mir gefällt, mit wenigen Befehlen. 🌍️ ls, cd, cat ,nano, man …
Man kann mit Pipes die Ergebnise von Programme weiterleiten in ein anderes Program Das Zeichen | (AltGr <>>|) 🔗️ Beispiel für Pipes: ls| cat ✂️ Beispiel für grep : ls| grep *.txt
Application Programming Interface Fast alle Programme und auch viele Webseiten haben API , irgend wie mit Json,rss,csv,xml … Beispiel : Wetterseite der Hochschule Worms API Endpoint ist (kann) eine spezielle URL sein. (https:// ……)
Liefert Daten, die man filtern und anzeigen kann.
Webbrowser kann Daten im HTML-Format anzeigen Curl zeigt HTML Source und allgemein Text aller Art an.
<.............. Ende Vorgeplänkel .................>
frei und ohne Token https://wetter.hs-worms.de/ Ausgabe in Json kann man greppen ✂️oder besseres Tool ist jq ✂️ <--- u=$(curl -k https://wetter.hs-worms.de/api/v3/data) temperatur=$(echo $u|jq ".temperature.out") echo $temperatur ----> geht noch einfacher: 😀️ curl -s https://wetter.hs-worms.de/api/v3/data | jq '.temperature.out'
Schön aber was mach ich jetzt mit dem Output ? Kreativ sein ! Beispiele: Bei 🐘️Mastodon oder 🐦️Twitter oder auf andere Webseite hochladen mit Token über denen ihre API hochladen (Get,Post) oder Temperaturwarnung Frost, Regen, … ☀️☔️🥶️ Popups bei Störungen Server, Maschinen, IOT
Code Beispiel für einfache Temperaturwarnung 🌡️ UHHH , da hab ich einen Fehler gemacht. Mit ASCII-Eingabe kann Bash nicht rechnen.
Voller Fehler
So geht das richtig
t=$(curl -s
https://wetter.hs-worms.de/api/v3/data
| jq '.temperature.out')
# 15.8 nach 15,8 (weil deutsch)
t=${t//./,}
t1=17
if (($t<$t1));then
echo "Uh, das ist kalt !"
else
echo "Ganz schön warm !"
fi
#!/bin/bash
t=$(curl -s https://wetter.hs-worms.de/api/v3/data | jq '.temperature.out')
t1=15
a=$(echo "$t<$t1"|bc)
if [[ $a -eq 1 ]]; then
echo "Uh, das ist kalt !"
else
echo "Ganz schön warm !"
fi
Experimental bei Twitter hochladen (vielleicht ist dieses Perlscript jetzt auch schon gesperrt) nur mit Token sehr eingeschränkt
ssh smarpt.de /home/karl/bin/wetter1.sh https://twitter.com/Wolug
🐦️Twitter-Api früher gerne genutzt API V1 + V2 😒️ttytter und 😒️twurl ist kaputt. Direkt über curl mit V2 ???
Es gibt spezielle Programme die einem die umständliche Eingebe über curl abnehmen. zB. Wetterdienst (10 Tage Vorhersage) fragt die Wettervorhersage beim DWD ist frei und ohne Token
K2635 ist der Container Worms Hagenstrasse
cd bin/wetter
gnuplot wetter1.gp
Jetzt wirds bunt APi liefert Daten für ein Diagramm 📈️
gwenview wetter1.png
Regenradar-API vom DWD (Auswerung mit Python QGIS)
(für Fortgeschrittene Bash User)
readarray -td ";" lq <<< $(curl "https://www.umweltbundesamt.de/api/air_data/v3/airquality/csv?date_from=$(date -d 'yesterday' +%F)&time_from=24&date_to=$(date +%F)&time_to=24&station=1460&lang=de" |grep -E x|$(date -d '1 hours ago' +%H))
echo ${lq[1]}:${lq[7]};echo ${lq[2]}:${lq[8]};echo ${lq[3]}:${lq[9]};echo ${lq[4]}:${lq[10]};echo ${lq[5]}:${lq[11]};echo ${lq[6]}:${lq[12]}
Kommt sowas raus :
Datum:"'26.05.2023 04:00'"
"Feinstaub (PM₁₀) stündlich gleitendes Tagesmittel in µg/m³":15
"Ozon (O₃) Ein-Stunden-Mittelwert in µg/m³":58
"Stickstoffdioxid (NO₂) Ein-Stunden-Mittelwert in µg/m³":15
"Feinstaub (PM₂,₅) stündlich gleitendes Tagesmittel in µg/m³":9
Luftqualitätsindex DERP023:"sehr gut"
Audio API von KDE wird benutzt zum Abfragen. Mein Bashscript unterstützt Mediaplayer VLC, Webbrowser Chromium/Firefox , Elisa, Clementine QDBusViewer hilft bei der Suche nach Parametern qdbus org.mpris.MediaPlayer2 … Sourcrcode: nano /home/karl/bin/twitter-pic/toot_music bis zum Ende Scrollen und Matodon-API zeigen. API-App heißt toot Action: Link auf dem Desktop klicken !
Ich empfehle toot 🐘️ toot timeline (Pseudo grafisch) toot post test Beispiel zéitverzögert read -i "Stunden " later ; (sleep $later"h" && toot post "$later Stunden später")& Egebnis angucken https://social.tchncs.de/@dewomser
Beispiel Nibelungenkurier 😀️ /home/karl/bin/rss-test/rss1.sh Worms.de 😀️ Wormser Zeitung 😀️
echo "payload" >/dev/tty3 cat /dev/tty3
Hier zu kompliziert
Fertig !
Ich probiere mich diesmal kürzer zu fassen als beim letzten Mal.
Was war 2022/2023 ? Wir sind gewachsen 11 Tuxe beim letzten Stammtisch im Mai Wir brauchen einen Raum , VHS Homepage Probleme Jekyll bei Github. ich habs repariert Ruby 2 Gems ersetzt Alle die heute hier sind … 1, Dienstag im Monat. Weitersagen Default-Treffpunkti st Timescafe Immer bei Wolust.de gucken ! Oder auf unsem Matrix Channel
………………………………………………………………
https://github.com/dewomser https://gist.github.com/dewomser Grafik API (CC): https://www.seobility.net/de/wiki/REST-API