Auf einem Raspberry 3 im Jahre 2019 konnte man die LEDs als /dev/fb1 ansprechen.
Wenn ich mich recht erinnere ging das 2022 auch noch: https://blog.heimetli.ch/sensehat-framebuffer.html
Auf einem Raspberry 3 im Jahre 2019 konnte man die LEDs als /dev/fb1 ansprechen.
Wenn ich mich recht erinnere ging das 2022 auch noch: https://blog.heimetli.ch/sensehat-framebuffer.html
Wenn man deine Ausgabe mit dem Beispiel aus der Arduino-Dokumentation vergleicht findet man keine grossen Unterschiede:
Serial.print("Variable_1:");
Serial.print(potentiometer);
Serial.print(",");
Serial.print("Variable_2:");
Serial.println(static_variable);
Putz mal die Spaces und das Komma am Ende weg und probier es nochmals.
Eventuell liegt es an den Datentypen. Im Beispiel sind es Integer. Caste deine Variablen in einen Integer und probier es mal so.
> Habe jetzt mal komplett zurück buchstabiert und bin bei 4 einfachen Pfeil-Icons gelandet
Dann moniere die Wuerfel auf eine Stange, pinsle sie weiss und schwarz an, und drehe sie mit einem Schrittmotor. Eine Stange pro Zeile.
Das ist einfach zu realisieren und zu steuern.
Wie viele verschiedene Symbol brauchst du?
> Da ich aber nicht weis, auf welches Register, ich welche Byte-Reihenfolge senden muss
> und welches Register ich anschließend lesen muss
Das musst du gar nicht wissen, die Methode chip_id macht das fuer dich.
Schau dir mal die Hubmagnete an: https://www.conrad.ch/de/o/hubmagnete-0214813.html
Was willst du denn messen?
240V Batterie toent seltsam, was ist das fuer eine Anlage?
Wieviel Strom brauchen die Pumpe und die Magnetventile? Wie oft sollen sie schalten?
PC und Visual Studio toent nach Windows.
Dann schau mal hier: https://learn.microsoft.com/en…/multimedia/midi-services
> Es wird aber bestimmt nicht als 0 oder 1 encodiert sein
Das Signal meiner Klingel sieht so aus: https://triq.org/pdv/#AAB10305…0909090909081819090909255
rtl_433 decodiert sie als "Generic Remote"
framp : Dafuer gibt es genug Empfaenger.
Ja schon, aber man muss aufpassen: AM oder FM. Und viele Empfaenger haben schon einen einen eingebauten Decoder fuer irgendwelche Applikationen und sind nicht allgemein brauchbar.
> Aber das Problem ist das gesendete Signal zu dekodieren
rtl_433 hat schon ueber 180 Decoder fuer alles moegliche. Temperatursensoren, Wetterstationen, Klingeln, Reifendruckmesser...
Die haben auch einen ausgezeichneten Online-Analyzer fuer aufgezeichnete Signale. Damit kann man wenigstens mal pruefen was da gesendet wird.
Bei einer Klingel wuerde ich von einem einfachen Signal ausgehen.
Es gibt zwei Varianten:
* du besorgst dir einen DVB-T Stick mit passendem Chipset und versuchst es mit rtl_433
* du besorgst dir ein 433Mhz-Empfaengermodul und decodierst das Signal
Bei beiden Varianten gibt es aber ein gewisses Risiko dass es nicht klappt. Es werden je laenger je mehr Sender mit rolling Code eingesetzt die immer wieder was anderes senden. Technische Angaben zum Protokoll wirst du hoechst wahrscheinlich nicht finden.
Normalerweise haben solch simple Einrichtungen aber schon mit Amplitudenmodulation und Pulse-Position gesendet.
> Edit: Tell Dein Script findet die Zeile auch nicht.
Bei mir schon:
Array
(
[0] => ErrorDocument 404 /404.html
[1] => ErrorDocument 403 /403.php
[2] => order deny,allow
[3] => deny from all
[4] => allow from 10.8.0
[5] => allow from 127.0.0.1
[6] => allow from 192.168.0
[7] => allow from 192.168.0.250
)
<br />allow from<br /><br />allow from 192.168.0.250<br />192.168.0.250 gefunden: allow from 192.168.0.250
Display More
<?php
$remoteip = "192.168.0.250";
$lesedatei = file("test");
print_r($lesedatei);
echo "<br />";
$allow_from = ("allow from");
echo $allow_from;
echo "<br />";
$ersetzedurch = ("");
echo $ersetzedurch;
echo "<br />";
$gesuchtezeile = ("$allow_from $remoteip");
echo $gesuchtezeile;
echo "<br />";
foreach ($lesedatei as $zeile)
{
if (strpos($zeile,$gesuchtezeile) !== false )
{
echo "$remoteip gefunden: $zeile";
}
}
?>
Display More
> Soweit ich solche HA-Lösungen wie Shelly und Hue verstehe, braucht es da ja WLAN, damit alle
> Komponenten miteinander sprechen können, oder?
Wenn das Shelly standalone betrieben wird spannt es sein eigenes Netz auf.
Hue setzt auf Zigbee, da braucht man einen Adapter fuer den Pi.
Drahtgebunden faellt mir gerade nichts ein, aber wie waer's mit einem Shelly oder einem Hue Plug?
> Kann man die Bilder auch gegen den Uhrzeigersinn erzeugen lassen
Sicher:
* Variante 1: angle = -2 * math.pi / 32 * i
* Variante 2: plt.savefig(f"img{32-i}.jpg")
> Was genau meinst du mit numpy?
Die schnellste Variante die ich gefunden habe:
import math
def ausduennen(liste):
kgv = 1
for el in liste:
kgv = math.lcm(kgv, el[1])
numbers = [1] * kgv
length = len(numbers)
for el in liste:
index, step = el
while index < length:
numbers[index] = 0
index += step
return sum(numbers)
liste = [[1,3], [2,3], [3,4], [1,4], [2,4], [2,5], [1,7], [5,7], [6,7], [6,9], [6,10], [8,10], [7,11], [1,11], [2,11], [5,11], [6,11], [8,11], [9,11], [10,14], [9,15], [12,18], [18,21], [12,23]]
print(ausduennen(liste))
Display More
Interessanterweise war die numpy-Version langsamer als diese?!
numpy koennte aber totzdem interessant werden wenn kgv noch viel groesser wird. numpy.int8 braucht dann nur ein Byte pro Wert.
Wenn du nur zaehlen willst kannst du mal das probieren:
import math
def ausduennen(liste):
delete = []
kgv = 1
for el in liste:
kgv = math.lcm(kgv, el[1])
numbers = [1] * kgv
for el in liste:
index = el[0]
while index < len(numbers):
numbers[index] = 0
index += el[1]
return sum(numbers)
liste = [[1,3], [2,3], [3,4], [1,4], [2,4], [2,5], [1,7], [5,7], [6,7], [6,9], [6,10], [8,10], [7,11], [1,11], [2,11], [5,11], [6,11], [8,11], [9,11], [10,14], [9,15], [12,18], [18,21], [12,23]]
print(ausduennen(liste))
Display More
Wahrscheinlich kannst du die Geschwindigkeit noch optimieren wenn du das el in zwei einzelne Variablen zerlegst.
Vermutlich ist auch die Initialisierung von Numbers ineffizient. Probier mal ein groessere Liste als [1] fuer den Anfang.
Und checke mal wie schnell der Algorithmus mit numpy laeuft.
Hmm, wenn es nur bis zum KGV geht muesste man doch ausrechnen koennen wie viele Elemente das sind.
Bestimme das erste (1 im Beispiel) und die anderen sind immer 4 hoeher -> diese Anzahl muesste zu betimmen sein
Anzahl der Zahlen - Anzahl in der Gruppe -> Rest