Zitat des Tages

Written by  on Juni 26, 2020

Über Cross-Origin-Resource-Sharing (CORS).

Damit CORS funktioniert, müssen Server und Client mitspielen. Alle relevanten Browser sowie der Internet Explorer unterstützen das Verfahren …

c’t 2020, Heft 14, S.133f

Zitat des Tages

Written by  on Juni 21, 2020

Humor, Alkohol, Sport und der meiste Sex haben allesamt keinen praktischen Zweck, tragen aber oft zum Lebensglück bei.

Richard David Precht; Jäger, Hirten, Kritiker: Eine Utopie für die digitale Gesellschaft

Zitat des Tages

Written by  on Juni 20, 2020

Die Quelle der Reptilienverschwörung!?

Auf seinem Planeten sind die Leute Leute. Die Anführer sind Eidechsen. Die Leute hassen die Eidechsen, und Eidechsen regieren die Leute.

Und warum … schaffen sich die Leute die Eidechsen nicht vom Halse?

Das kommt ihnen ehrlich gesagt nicht in den Sinn. Sie haben alle das Wahlrecht, und so nehmen sie schlichtweg an, daß die Regierung, die sie gewählt haben, mehr oder weniger der Regierung nahekommt, die sie sich wünschen.
Du meinst, sie wählen tatsächlich die Eidechsen?
Aber ja, natürlich.
Aber warum?
Weil wenn sie keine Eidechse wählen würden, käme vielleicht die falsche Eidechse ans Ruder.

Douglas Adamas, Macht`s gut und danke für den Fisch: Band 4 der fünfbändigen »Intergalaktischen Trilogie«

Zitat des Tages

Written by  on Juni 18, 2020

Er sah wirklich extrem mitgenommen aus, nicht bloß als wäre er rückwärts durch eine Dornenhecke gezerrt worden, sondern als wäre die Hecke gleichzeitig rückwärts durch einen Mähdrescher gezerrt worden.

Douglas Adamas, Macht`s gut und danke für den Fisch: Band 4 der fünfbändigen »Intergalaktischen Trilogie«

Geldsegen

Written by  on Juni 17, 2020

Alleine für Projekte in Niederösterreich stellte die EU im Vorjahr 500 Euro zur Verfügung.

SAR Wert oder Watt pro Kilogramm

Written by  on Juni 15, 2020

SAR Wert [Definition Wikipedia]

liegt bei modernen Geräten ungefähr zwischen 0,10 und 1,99 W/kg

Was schockiert mehr, wissen zu wollen wie schwer so ein menschlicher Kopf ist, oder dass das zu finden ist unter Praxistipps?

Also der Kopf hat 6 kg, oder 10 bis 12 kg.
Watt pro Kilogramm vs. maximale Sendeleistung von Endgeräten

  • GSM 900 2 Watt
  • GSM 1800 1 Watt
  • LTE 200mW

Akku Kapazität am Beispiel Fairphone 3000 mAh und eine Spannung von 3,8V => 11.4Wh

Wie kommt man jemals auf fast 2 W/kg?

6 kg 10 kg 12 kg
LTE 0,2 W 0,03 W/kg 0,02 W/kg 0,02 W/kg
GSM 1800 1,0 W 0,17 W/kg 0,10 W/kg 0,08 W/kg
GSM 900 2,0 W 0,33 W/kg 0,20 W/kg 0,17 W/kg

Öffentliche IP Adresse für LTE

Written by  on Juni 13, 2020

Unter Öffentliche IP Adresse für LTE habe ich erklärt, wie man die öffentliche IP bei Yesss bekommt.
Bei A1 geht das über die Hotline. Kurz anrufen und fragen nach dem Service „A1 Mobile Dynamic IP free“.
Damit man von extern auf eigene Dienste zugreifen kann, muss auch noch der Firewall Service von A1 deaktiviert werden: A1 Mobil Firewall

Raspberry Pi am Solarfocus Therminator II

Written by  on Juni 12, 2020

Jetzt kann man den „USB Stick“ wie beschrieben mounten.
Das Loopdevice sollte dem System schon aus Teil 1 bekannt sein:

losetup -o 32256 /dev/loop0 /media/usbdisk.img

Einhängen am Pi wie gesagt Read Only

/bin/mount -o ro /dev/loop0  /mnt

Es kommt ein CSV File heraus. Die Werte sind mit Strichpunkt getrennt. Und es werden Kommas verwendet statt Punkten, was die Weiterverarbeitung etwas erschwert.

head Logfile_200604.csv
DATE;TIME;KT;RGT;Luftzahl;Statuszeile;Zusatzstatuszeile;R▒cklauftemperatur;RLA-Pumpe;Temperatur X35;AT;LDZ_IST[];LDZ_ZIEL[];LDZ_SOLL[];LDZ_Ausgang;SLK-LZ;SGA Einschubistlz;Istposition Saugsondenumschalt.;Einschubtemperatur;Iststrom Einschub/WMT;Iststrom Einschub HG;Iststrom Austragung HG;Iststrom Austragung 2 HG;Schaltzustand Sensor HG;R▒ttler_Status;R▒ttler_RGT_Merker;R▒ttler_RGT_Abfall;R▒ttler_Impulse_Z▒ndphase;R▒ttler_Impulse_Betrieb;Einschub_Impuls_LDZ;Einsch▒be;Sondereinsch▒be_LZ;Sondereinsch▒be_Start;PTO 1;PTU 1;Pufferpumpe 1;TWS Temperatur 1;TWS-Pumpe 1;RT 1;VLT 1;VLT-Soll 1;HK-Pumpe 1;RT 2;VLT 2;VLT-Soll 2;HK-Pumpe 2;Kollektortemp;Speichertemperatur unten Regelung;Speichertemperatur 1 Solarmodul;Speichertemperatur 2 Solarmodul;Solarpumpenausgang;Solarstatus;Solarstatuszeile;WMZ Durchfluss l/h;WMZ VLT;WMZ RLT;WMZ aktuelle Leistung;RT 3;VLT 3;VLT-Soll 3;HK-Pumpe 3;RT 4;VLT 4;VLT-Soll 4;HK-Pumpe 4;RT 5;VLT 5;VLT-Soll 5;HK-Pumpe 5;RT 6;VLT 6;VLT-Soll 6;HK-Pumpe 6;PTO 2;PTU 2;Pufferpumpe 2;PTO 3;PTU 3;Pufferpumpe 3;TWS Temperatur 2;TWS-Pumpe 2;TWS Temperatur 3;TWS-Pumpe 3;Heiz_Strom_LBS;Heiz_Spannung_LBS;Heiz_PWM_LBS;Offset_LBS;Kommunikationszaehler_Leistungsteil;Leistungsteil_Fehler;HG_Modul_Fehler;HK_1_Modul_Fehler;HK_2_Modul_Fehler;HK_3_Modul_Fehler;DFBM_1_Fehler;DFBM_2_Fehler;DFBM_3_Fehler;SOLAR_Modul_Fehler;FWM_1_Fehler;SSUE_Fehler;DIFF_1_Modul_Fehler;
04.06.20;00:00:08;20,4;26;7,40;8;0;19,5;0;44,3;12,4;0,0;0,0;0,0;0;0,00;999;21;23,8;3;3;0;0;-1;0;99,4;4,9;45;13;6,5;233;0;0;70,2;70,9;0;71,9;0;21,1;21,9;21,0;0;50,0;20,9;21,0;0;10,5;56,1;56,1;43,8;0;0;12;0;130,0;130,0;0,0;53,2;819,2;2,0;0;1707,0;1753,6;2,1;0;976,2;256,5;2,3;0;1034,7;-1185,0;2,4;0;215,3;-3045,0;6208;1278,8;-708,3;2572;1075,9;17028;2765,8;392;0,00;0,05;202;-1,8;0;0;0;0;0;0;0;0;0;0;0;0;0;

Hier nochmal in Übersichtlich und durchnummeriert:
1 DATE
2 TIME
3 KT
4 RGT
5 Luftzahl
6 Statuszeile
7 Zusatzstatuszeile
8 Rücklauftemperatur
9 RLA-Pumpe
10 Temperatur X35
11 AT
12 LDZ_IST[]
13 LDZ_ZIEL[]
14 LDZ_SOLL[]
15 LDZ_Ausgang
16 SLK-LZ
17 SGA Einschubistlz
18 Istposition Saugsondenumschalt.
19 Einschubtemperatur
20 Iststrom Einschub/WMT
21 Iststrom Einschub HG
22 Iststrom Austragung HG
23 Iststrom Austragung 2 HG
24 Schaltzustand Sensor HG
25 Rüttler_Status
26 Rüttler_RGT_Merker
27 Rüttler_RGT_Abfall
28 Rüttler_Impulse_Zündphase
29 Rüttler_Impulse_Betrieb
30 Einschub_Impuls_LDZ
31 Einschübe
32 Sondereinschübe_LZ
33 Sondereinschübe_Start
34 PTO 1
35 PTU 1
36 Pufferpumpe 1
37 TWS Temperatur 1
38 TWS-Pumpe 1
39 RT 1
40 VLT 1
41 VLT-Soll 1
42 HK-Pumpe 1
43 RT 2
44 VLT 2
45 VLT-Soll 2
46 HK-Pumpe 2
47 Kollektortemp
48 Speichertemperatur unten Regelung
49 Speichertemperatur 1 Solarmodul
50 Speichertemperatur 2 Solarmodul
51 Solarpumpenausgang
52 Solarstatus
53 Solarstatuszeile
54 WMZ Durchfluss l/h
55 WMZ VLT
56 WMZ RLT
57 WMZ aktuelle Leistung
58 RT 3
59 VLT 3
60 VLT-Soll 3
61 HK-Pumpe 3
62 RT 4
63 VLT 4
64 VLT-Soll 4
65 HK-Pumpe 4
66 RT 5
67 VLT 5
68 VLT-Soll 5
69 HK-Pumpe 5
70 RT 6
71 VLT 6
72 VLT-Soll 6
73 HK-Pumpe 6
74 PTO 2
75 PTU 2
76 Pufferpumpe 2
77 PTO 3
78 PTU 3
79 Pufferpumpe 3
80 TWS Temperatur 2
81 TWS-Pumpe 2
82 TWS Temperatur 3
83 TWS-Pumpe 3
84 Heiz_Strom_LBS
85 Heiz_Spannung_LBS
86 Heiz_PWM_LBS
87 Offset_LBS
88 Kommunikationszaehler_Leistungsteil
89 Leistungsteil_Fehler
90 HG_Modul_Fehler
91 HK_1_Modul_Fehler
92 HK_2_Modul_Fehler
93 HK_3_Modul_Fehler
94 DFBM_1_Fehler
95 DFBM_2_Fehler
96 DFBM_3_Fehler
97 SOLAR_Modul_Fehler
98 FWM_1_Fehler
99 SSUE_Fehler
100 DIFF_1_Modul_Fehler
Um gezielt einen einzelnen Wert zu holen, habe ich eine Funktion auf der Bash gebastelt:

f_field_nr () {
  VALUE=$(echo $1 | cut -d";" -f"$2")
  echo $VALUE
}

Die vorletze Logzeile hole ich mit diesem Befehl. Die Beistriche werden gleich durch Punkte ersetzt.

X=$(/usr/bin/tail $FILENAME -n2 | /usr/bin/head -n 1 | /bin/sed s/,/./g )

Damit sind die 100 Messwerte zur freien Verfügung. Man kann die einzelnen Werte z.B. an eine API schicken, z.B. die von Thingspeak:

/usr/bin/curl "https://api.thingspeak.com/update?api_key=${APIKEY1}&filed1=$(f_field_nr $X 3)&field2=$(f_field_nr $X 19)"

Oder in eine Datenbank einfügen. Oder an MRTG schicken.

Raspberry Pi am Solarfocus Therminator II

Written by  on Juni 11, 2020

Mit dem gestern in Raspberry Pi 4 als USB Stick dokumentierten Wissen, können wir den Raspberry Pi jetzt an den Solarfocus Therminator II anschließen.
Es handelt sich hier um das alte „Dreh-und-Drück Model“ und nicht um die neuere Touchscreen Version.
Zur Vorbereitung muss im Service Menü das Schreiben der Logfiles auf USB aktiviert sein.
Hier endet jede Garantie. Ändern Sie das nur, wenn Sie sicher sind, dass Sie wissen was sie tun!


Was dann passiert ernüchtert erstmal. Der USB Anschluss liefert nicht genug Strom für den Raspberry Pi 4. Vermutlich nur die im ursprünglichen USB Standard vorgesehenen 500mA, was für den Pi einfach nicht ausreicht. Die Folge ist, dass die Steuerung des Ofen durchstartet. Der Pi startet nicht, die Power LED flackert nur.
Ab hier endet jede Garantie. Ändern Sie das nur, wenn Sie sicher sind, dass Sie wissen was sie tun!
Es muss also mehr Strom her, und das ohne den USB-C Anschluss zu verwenden. Der Pi lässt sich über die GPIO Pins versorgen. Einfach die 5 Volt an Pin 4 und GND an Pin 6 hängen. Entsprechende Anleitungen gibt es im Netz. Ein Handyladegerät mit zumindest 1000mA wird benötigt. Da der USB Anschluss am Ofen auch 5V liefert ist es sicher besser wenn Ofen und Pi nicht getrennt voneinander geschaltet werden.
Daher bietet es sich an, die Stromversorgung aus dem Ofen zu verwenden. Der Therminator II hat mit Anschluss X2 einen 230 Volt Ausgang.
Hier endet jede Garantie. Ändern Sie das nur, wenn Sie sicher sind, dass Sie wissen was sie tun!
Ofen stromlos machen! Einen Elektriker beiziehen!

Die Stromversorgung findet bequem neben der Steuerung einen Platz. Das Kabel lässt sich leicht herausfädeln.

Der Pi könnte sicher auch unter die Abdeckung. Da ich aber WLAN verwende, platziere ich den Pi nicht unter der Metallabdeckung.
Mit einer Ausnehmung an der richtigen Stelle, kann auch die Abdeckung wieder an den Ofen.

Raspberry Pi 4 als USB Stick

Written by  on Juni 10, 2020

Ich suche mindestens seit 2016, Solarfocus Bedienteil, nach einem Gerät, dass sich auf der einen Seite wie ein USB Stick verhält und auf der anderen Seite Daten ins Netzwerk schicken kann. Idealerweise über WLAN.
c’t 2020, Heft 10, S.136ff, Voll aufgebohrt, USB-C-Anschluss des Raspberry Pi 4 ausnutzen, präsentiert die Lösung für das Problem.
Man braucht zuerst einen Raspberry Pi 4 mit Raspbian buster.

# /boot/config.txt
# Device Tree Overlay laden
# im Abschnitt [pi4]
dtoverlay=dwc2
# /etc/modules
# Eröffnet die Konfiguration via SysFS
# Am Ende anhängen
libcomposite

Pi neu starten.
Es wird ein Image von einem USB Stick mit vFAT Dateisystem benötigt. Am einfachsten in Windows formatieren und ein Image mit Win32DiskImager erstellen. 2 GB sollten reichen. Ablegen am Pi unter /media/usbdisk.img.
Die Details kommen aus dem Script initgadget der c’t (Download Link oben!).
Ich habe es soweit gekürzt, dass nur der USB Stick emuliert wird. Zu Beginn wird noch das Image vom USB Stick zum Mounten auf der Pi-Seite vorbereitet. Der Teil muss passieren, bevor ein Lock durch die Gegenstelle passiert.

# /usr/local/sbin/initgadget
losetup -o 32256 /dev/loop0 /media/usbdisk.img
cd /sys/kernel/config/usb_gadget/
mkdir -p pi4
cd pi4
echo 0x1d6b > idVendor
echo 0x0104 > idProduct
echo 0x0100 > bcdDevice
echo 0x0200 > bcdUSB
echo 0xEF > bDeviceClass
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
mkdir -p strings/0x409
cat /sys/firmware/devicetree/base/serial-number > strings/0x409/serialnumber
echo "Raspberry Pi Foundation" > strings/0x409/manufacturer
echo "Raspberry Pi 4" > strings/0x409/product
mkdir -p configs/c.1/strings/0x409
echo 250 > configs/c.1/MaxPower
echo "Config 1: USB Gadget" > configs/c.1/strings/0x409/configuration
mkdir -p functions/mass_storage.usb0
echo 1 > functions/mass_storage.usb0/stall
echo 0 > functions/mass_storage.usb0/lun.0/removable
echo 0 > functions/mass_storage.usb0/lun.0/cdrom
echo 0 > functions/mass_storage.usb0/lun.0/ro
echo 0 > functions/mass_storage.usb0/lun.0/nofua
echo /media/usbdisk.img > functions/mass_storage.usb0/lun.0/file
ln -s functions/mass_storage.usb0 configs/c.1/
udevadm settle -t 5 || :
ls /sys/class/udc > UDC
# Die Initialisierung als Service aktivieren
/etc/systemd/system/initgadget.service
[Unit]
Description=Raspi 4 USB Gadget
DefaultDependencies=yes

[Service]
Type=simple
ExecStart=/usr/local/sbin/initgadget

[Install]
WantedBy=local-fs.target
#----
cp initgadget.service /etc/systemd/system/
systemctl enable initgadget.service
systemctl start initgadget.service

Jetzt kann man das ausprobieren, indem man den Pi an einen Windows Rechner hängt.

Der „USB Stick“ taucht im Device Manager auf. Man kann ein Test File anlegen.

Dann am Pi mounten

/bin/mount -o ro /dev/loop0  /mnt

Und die Daten auslesen

Es sei darauf hingewiesen, dass man am Pi jetzt besser nichts zurückschreibt ins Image. FAT ist kein Dateisystem dass für gleichzeitige Zugriffe von verschiedenen Rechnern ausgelegt ist. Daher würde ich am Pi nur Read-only mounten. Und immer wenn man die aktuellen Daten verwenden will, neu mounten.