OctoPI und Ereignisse

Hat man an seinem 3D Drucker einen PI mit OctoPI Betriebssystem angeschlossen, kann man über diverse Ereignisse ganz einfacht informiert werden. Das geht zwar (teilweise) auch via Android-Apps am Händy, aber dafür muss die entsprechende App das können. (Und das klappt z.Zt. nur recht unzuverlässig…)

Ausserdem lassen sich so auch noch ganz andere Dinge veranlassen. (z.B. Drucker automatisch abschalten, wenn fertig…)

Datei : /home/pi/.octoprint/config.yaml

Nach den Zeilen mit „appearance : color: blak“ z.B. folgendes einfügen :

events:
  enabled: true
  subscriptions:
  - command: /home/pi/nachricht.sh NichtMehrVerbunden
    event: Disconnected
    type: system
  - command: /home/pi/nachricht.sh DruckFehlgeschlagen
    event: PrintFailed
    type: system
  - command: /home/pi/nachricht.sh Fertig
    event: PrintDone
    type: system

Damit das funktioniert, muss es natürlich die /home/pi/nachricht.sh geben. (Und sie muss ausführbar sein)
Relativ einfach geht das z.B. mit Telegram (hat eine API !) :

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

TEXT="$HOSTNAME
$1"
TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CHATID=yyyyyyyyy
TIMEOUT=10


URL=https://api.telegram.org/bot$TOKEN/sendMessage
CMDARGS="chat_id=$CHATID&disable_web_page_preview=1&text=$TEXT"
curl -s --max-time $TIMEOUT -d "$CMDARGS" $URL >/dev/null

PI Tunings

sw raid
bei komischem device namen nach reboot. z.b. md127

mdadm -scan --detail >> /etc/mdadm/mdadm.conf

nach reboot nur 1 device, 2. fehlt

bootwait=5

in die

/boot/cmdline.txt

einfügen

seltsame Abstürze, ping geht noch, aber sonst nix mehr
könnte der swap voll sein.
Ist vermutlich besser, einfach keinen Swap zu konfigurieren.
Dann geht halt dem einen oder anderen Prozess der Speicher aus.
Aber alle anderen Prozesse sollten ganz normal weiterlaufen…
grade beim pi 2 und 3 (die ja eh 1GB RAM haben)

systemctl disable dphys-swap

dann rebooten, und mit free nachschaun, ob swap 0

/tmp und /var/log in ramdisk – in die /etc/fstab folgendes eintragen :

tmpfs    /tmp    tmpfs    defaults,noatime,nosuid,size=100m    0 0
tmpfs    /var/log    tmpfs    defaults,noatime,nosuid,mode=0755,size=100m    0 0

Das führt aber leider dazu, dass einige Dienste (vorallem nginx und apache) nicht mehr starten können, weil es nach einem reboot die log Verzeichnisse nicht mehr gibt. Das behebt man am besten via /etc/rc.local. Da drin einfach das fehlende Verzeichnis anlegen, und service … restart rein.

merkwürdiges netzwerk verhalten, statische ip in /etc/network/interfaces
ip a zeigt eine 2. ip an ?
wurde vermutlich via dhcp zugewiesen

dpkg -l | grep dhcp

apt purge …pakete deinstallieren…

oder
/etc/dhcpcd.conf
ignore o.ö. das if rausnehmen
oder gleich da drin die static ip konfigurieren

Raspberry 3D Drucker

Gibt bereits ein fertiges Image, um einen 3D Drucker via WLAN
steuern zu können.
OctoPI heisst das.
Hab mir für diesen Zweck einen eigenen PI3 gekauft, und gleich hinten am Drucker angeschraubt.

Es gibt zwar auch einige Alternativen.
Aber mit guter SW Unterstützung, Wlan onboard, und mind 2 USB Ports gibts nix Besseres oder Preisgünstigeres.

Sehr Cool : läuft alles weitgehend ohne konfiguration.
Sogar eine USB Webcam wird unterstützt.
Der Drucker kann nun überall stehen, wo es halt praktisch ist. Nur Strom und WLAN Empfang notwendig.

Das Konstrukt hat meiner Meinung nach 2 Schönheitsfehler :
1. vor dem Ausschalten sollte der PI runtergefahren werden.
Das ist besonders dann blöd, wenn man sich z.B. mit dem Druckbereich verschätzt hat, und schnell mal den Strom unterbrechen muss. (kein Not AUS vorhanden)

2. bastelt man am PI, dann muss auch der Drucker ständig mitlaufen. Einer der Lüfter am Druckkopf läuft dabei dauernd.

———

Das lässt sich aber alles recht elegant lösen.
Als erstes hab ich mal einen Taster von GPIO4 nach Masse und eine LED mit Widerstand nach +3,3V geschaltet.
Drückt man da drauf, fährt der PI runter, und zeigt den Halted-Zustand dann via LED an.
Sobald die ständig leuchtet, kann der Drucker gefahrlos ausgesteckt werden.
Das script dazu folgt noch…

Als 2. hab ich ein 12V 10A Relais eingebaut, mit dem der PI nun die Stromversorgung des Druckers schalten kann.
Da der Drucker offenbar recht grosse Elkos verbaut hat, musste ich vor dem 5V Wandler noch eine Shotky Diode und einen Elko einbauen. Sonst rebootet der PI sofort nachdem das Relais einschaltet.

Fährt man den PI jetzt runter – egal ob via Knopf oder via shell – dann wird auch die Stromversorgung für den Drucker abgeschaltet (weil die GPIOs dann natürlich auch nix mehr ansteuern).

Dann läuft nur mehr das Netzteil und der PI im Halt Zustand.

MySQL View erstellen, z.B. um den Stromverbrauch aus dem Zählerstand zu errechnen

Tabelle Strom
Spalten sind id, Datum, Zaehlerstand

Daraus eine view kreieren :

select t1.Datum, ((t2.Zaehlerstand – t1.Zaehlerstand)/(t2.Datum-t1.Datum)) as verbrauch from Strom t1, Strom t2
where t1.id = t2.id – 1

Tabelle OfenBetriebsstunden
Spalten sind id, Datum, Pellets, Scheitholz

select t1.Datum,
((t2.Pellets – t1.Pellets)/(t2.Datum-t1.Datum)) as BetriebsstundenPellets,
((t2.Scheitholz – t1.Scheitholz)/(t2.Datum-t1.Datum)) as BetriebsstundenScheitholz
from OfenBetriebsstunden t1, OfenBetriebsstunden t2
where t1.id = t2.id – 1

Idee von :
https://stackoverflow.com/questions/710212/is-there-a-way-to-access-the-previous-row-value-in-a-select-statement

Und es gibt sie doch…

Ich habs ja schon gar nicht mehr für möglich gehalten.
Aber es gibt den Raspberry PI Zero W wirklich.
Vorgestern einen bekommen für 15,50 Euro incl. Versand nach Österreich :

(die MicroSD Karte war natürlich NICHT incl., hab ich wo anders bestellt.)

Dürften allerdings trotzdem nicht in allzu grossen Mengen produziert werden. 1 Stk. pro Haushalt ist nach wie vor das Limit. Warum eigentlich ?!? Damit sich Amazon Unterhändler eine goldene Nase verdienen können ? oder die Logistik Firmen, die am Versand verdienen ? Wir werden es nie erfahren…..

Um eines gleich vorweg zu nehmen : die 26-27 Euro, die man bei Amazon für sowas bezahlt, ist das Ding definitiv NICHT wert. Auch nicht mit ein paar nutzlosen Adaptern.
Die 15,50 Euro ist das grade so noch wert. (anm.: 512GB RAM, 1GHz, 1 CPU Core, max. 1 USB Port, und das nur mit Adapter, zumindest WLAN ist jetzt endlich on-board…)

Für alle „echten“ Anwendungen, wo man ja zumeist mehrere USB Ports braucht, und auch ein wenig „WUMS“ haben möchte, da ist der PI3 mit seinen 35 Euro echt eine bei weitem bessere Investition….)

Wird vermutlich eine mini Steuerung für den Klingeltaster, Lüftung im Bad o.ä. werden…