Beiträge von Kelvin

    Das Problem habe ich auch (noch) häufiger mit meinem Pi. Schließe ich ihn ans Stromnetz, dann bootet er, ist aber nicht über SSH erreichbar. Ich muss ihn dann so oft abwürgen und neu hochfahren lassen, bis es dann mal funktioniert (ca. nur jeder 5. Start).

    Sobald ich einen Monitor anschließe funktioniert jeder Start...

    In Aussicht stehen dann weitere Funktionen wie [...]

    Das waren erstmal nur Ideen ;)


    Noch habe ich das Problem, dass mein Pi nicht zuverlässig hochfahren will. Wenn ich ihn am vorbestimmten Platz anschließe, funktioniert weder Klingel noch SSH. Baue ich alles wieder ab und teste es an meinem Schreibtisch funktioniert alles wieder einwandfrei...

    Ist ein ganz kleines Skript und ich sage vorab schon mal, dass es weder ausgereift, noch PEP8-konform ist. Letzteres wird hier im Forum gerne kritisiert ;)


    Das Skript ist für den Autostart in rc.local eingetragen.

    Weil wir kein DECT-Telefon von AVM haben und die Funktionen dementsprechend geringer ausfallen, habe ich in der Fritzbox einen anderen Klingelton für interne Anrufe ausgewählt, sodass sich Türklingel und Festnetz-Anrufe unterscheiden.

    tl;dr: femtosip > sipcmd



    Kleines Update: Ich habe endlich die Zeit gefunden, mich weiter mit der Klingel zu beschäftigen. Zu Beginn habe ich "sipcmd" benutzt, welches erst ca. 6 Sekunden nach dem Auslösen des Tasters das Telefon klingeln ließ und dann weitere 20 Sekunden zum Beenden brauchte, bis die Klingel wieder einsetzbar war. Heute bin ich auf "femtosip" gestoßen, was in Python geschrieben und irre schnell ist. Die Verzögerung zwischen Taster drücken und Telefonklingeln beträgt nur wenige Millisekunden und ist auch wieder schnell bereit für den nächsten Besucher.


    In Aussicht stehen dann weitere Funktionen wie ein Logbuch, wann und wie oft geklingelt wurde (nur so aus Jux), ein Cool down, damit man nicht Sturm klingeln kann und vielleicht ein Türkontakt, der überprüft, ob die Tür dann auch geöffnet wurde. Wenn z.B. 4x hintereinander geklingelt und die Tür nicht geöffnet wurde, dann wird eine Email an uns gesendet, die uns über einen Besuch in Abwesenheit informiert.

    Kelvin, warum möchtest du einen Pi benutzen?

    Ich weiß, dass es mit Kanonen auf Spatzen geschossen ist, doch der alte Pi liegt hier sonst nur rum und ich würde vielleicht noch einen Web-Server darauf laufen lassen, der eine Website mit gesammelten Informationen bereitstellt.


    Aber danke für den Link, eventuell brauchen meine Großeltern mal ein Upgrade :/

    Nunja, das sieht nicht besonders miraculös aus.

    Na dafür, dass es nicht besonders miraculös aussieht, ist das Thema doch ganz schön aufgeplatzt ^^


    Für einen Testlauf habe ich zwei einfache 10cm lange Klingeldrähte genommen, die noch im Keller lagen. Angeschlossen sind diese über GPIO 4 und GND, ohne Widerstand dazwischen (wollte es erstmal so probieren).


    Das (noch) sehr einfach gestrickte Python-Programm funktioniert, doch auf meinem Pi braucht sipcmd ca. 6 Sekunden für den Aufbau des Anrufs, was schon gewaltig ist. Da bin ich schon auf der Suche nach einer anderen Bibliothek.

    Die Webversion nimmt Gestalt an. Macht sich auch viel besser als nur mit Java..




    Wie viele Elemente gibt es in den Dropdown-Listen? Wenn es nicht zu viele sind, wären nebeneinander platzierte Radio-Buttons benutzerfreundlicher und einfacher zu bedienen, falls man schon einen im Tee hat. Statt auf die Liste zu klicken und dann zu scrollen, hätte man gleich alle Optionen nebeneinander und braucht nur einen Klick.

    Hast du dich schon erkundigt, wie viel die Ersatzpatronen kosten werden?


    Eigentlich kann man bei Druckern nichts mehr falsch machen. Er wird sicherlich WLAN-fähig sein, dementsprechend wird das Drucken per Computer und Smartphone ein Kinderspiel. Wenn du ihn nicht aus 2m Höhe fallen lässt und ständig gegen trittst, wird der auch lange halten.

    Moin,


    ich möchte der Türklingel ein Upgrade spendieren, jedoch fehlen mir die nötigen E-Technik-Kenntnisse. Weil eine Funk-Klingel aufgrund der lästigen Batterien nicht mehr in Frage kam, muss das Ganze jetzt mit Kabeln an den Pi getüddelt werden.


    Als Schalter habe ich mir diese Klingel bestellt und auch schon herausgefunden, dass man sie über die Kontakte S2 und S3 anschließt (Ich ausgeschlafener Fuchs ;) ) Da hört es dann aber auch schon auf...


    Was muss ich mit welchen Pins verbinden und brauche ich noch Widerstände? Laut Schaltplan gibt es sogar eine LED, die ich aber noch nicht ausfindig machen konnte (werde sie aber sowieso nicht brauchen).


    Edit: Zum Einsatz kommt vorerst ein Pi 1B und der Klingeldraht wird ca. 1,5m lang sein.

    Ziel ist übrigens, dass bei betätigter Klingel ein interner Anruf über die Fritzbox stattfindet. Dazu habe ich hier aber schon etwas im Forum gefunden und es funktioniert auch schon.



    Grüße

    Kelvin

    Dann mal auch gleich die genutzte Schriftart im Forum ändern. Diese wurde von Google in Auftrag gegeben und wird auch noch von ihnen gehostet. Das ist ja ein völliges Unding, wenn aufgeklärte Linux-User auf "Open Sans" setzen!!11

    Das Umschreiben war noch der einfache Teil und funktioniert trotz der stümperhaften Umsetzung :angel:

    JavaScript
    1. const [hours, minutes] = time.split(':').map(x => parseInt(x));

    wurde zu

    JavaScript
    1. var hours = parseInt(time.split(':')[0]); 
    2. var minutes = parseInt(time.split(':')[1]);

    und im Browser funktionierte alles perfekt. Google Sheets hatte jedoch teilweise "NaN.NaN.NaN NaN:NaN" als Zeitstempel eingetragen... nach langem herumspielen, testen und debuggen stellte sich dann heraus, dass Googles Server parseInt() wohl etwas anders handhaben und dadurch ein paar Daten invalidiert wurden. Und ich war scheinbar nicht der erste, der dieses Problem hatte: https://stackoverflow.com/a/17204291/2153629 :lol:

    sieht man, dass es funktioniert

    Geil, habe nicht so schnell mit so einer ausführlichen Antwort gerechnet ^^


    Allerdings sind die letzten beiden Zeitstempel falsch

    Code
    1. [
    2. ["11.1.2019, 23:13:00",361],
    3. ["11.1.2019, 23:47:00",369],
    4. ["11.1.2019, 23:58:00",379],
    5. ["12.1.2019, 00:03:00",385], // neuer Tag, 12.1
    6. ["12.1.2019, 00:18:00",391],
    7. ["12.1.2019, 01:36:00",396],
    8. ["12.1.2019, 00:31:00",396], // neuer Tag, 13.1
    9. ["12.1.2019, 23:59:00",100]
    10. ]


    Deine Funktion läuft aber schon besser als meine :lol:

    Code
    1. [
    2. ["11.1.2019 23:13", 361]
    3. ["10.1.2019 23:47", 369]
    4. ["10.1.2019 23:58", 379]
    5. ["11.1.2019 00:03", 385]
    6. ["11.1.2019 00:18", 391]
    7. ["11.1.2019 01:36", 396]
    8. ["12.1.2019 00:31", 396]
    9. ["12.1.2019 23:59", 100]
    10. ]

    Moin,


    vorab: Ja ich weiß, dass es hier um JavaScript geht und es eigentlich ins andere Unterforum gehört, doch mir geht es nicht um die Sprache, sondern nur um's Konzept. Hilfestellungen in Python, C oder sogar Brainfuck sind gerne gesehen, die Umsetzung in JS wird der einfachere Teil sein.


    Ich ziehe mir Wasserstände von einer Website, doch diese gibt mir nur die Uhrzeit und den Wasserstand zurück, jedoch nicht das Datum. Das Problem ist nun, dass der Zeitraum über 24h läuft und es ohne Datumsangabe zu doppelten Uhrzeiten kommt.


    Beispiel des aktuellen Arrays: [["23:13", 361], ["23:47", 369], ["23:58", 379], ["00:03", 385], ["00:18", 391], ["01:36", 396], ..., ["00:31", 396]]

    (Die Anzahl der Elemente und Uhrzeiten sind immer unterschiedlich/unregelmäßig. Immerhin die Reihenfolge stimmt :angel:)


    Nun brauche ich eine zuverlässige und elegantere Lösung, die mir zu jeder Uhrzeit das richtige Datum liefert, damit der endgültige Zeitstempel so vorliegt: "10.01.2019 17:14"



    Mein erster Ansatz:

    • Halte die Differenz der unterschiedlichen Tage in einer Variable fest
    • Vergleiche immer zwei Uhrzeiten: Wenn i-1 > i (beginnend mit Index 1), dann ist es bereits der nächste Tag (Heute+1). Bsp: 23:58 > 00:03 ==> 00:03 ist bereits der nächste Tag ==> Variable TagesDifferenz += 1
    • Füge das heutige Datum + TagesDifferenz einer Uhrzeit zu. Bsp: (11.01.2019 + 1) 00:03, weil diese Uhrzeit ja schon der nächste Tag ist
    • Ich habe noch eine Art Sicherheit eingebaut, doch ich weiß gerade nicht mehr für welchen Fall das gedacht war :S. Wenn die Minute des ersten Datensatzes > aktuelle Minute, dann TagesDifferenz -= 1. Ist wahrscheinlich für den Fall um die 0 Uhr herum...
      Mir ist es wieder eingefallen. Bsp.: Es ist 00:05 Uhr; die ersten beiden Datensätze sind 23:50 und 00:10. Weil nun 23:50 > 00:10 ist, muss man für 00:10 einen Tag vom heutigen Tag drauflegen. Doch, es ist ja schon 00:05 und das ist derselbe Tag wie 00:10.
      Deshalb vergleiche ich beim ersten Datensatz die Minute. 50 ist größer 10, deshalb ziehe ich einen Tag Differenz ab, der beim Vergleich 23:50 > 00:10 wieder dazuaddiert wird ==> -1 + 1 = 0 ==> 00:10 ist heute, weil es aktuell 00:05 Uhr ist.


    Das funktioniert soweit ganz gut, doch was ist nun bei einem Monatswechsel? 31.01 + 1 sollte nicht in 32.01 resultieren, bei einem Jahreswechsel das gleiche Spiel.



    Danke

    Kelvin

    Der nicht unerhebliche oder nicht absehbare Zeitaufwand.

    Das bringen DIY-Projekte so mit sich. Wenn du darauf keine Lust hast, dann kaufe dir einen fertigen digitalen Bilderrahmen, der:

    • min. HD- Bildschirm (1920x1080px)
    • 10 bis 13“
    • soll nicht wie „selbstgebastelt“ aussehen
    • (Bewegungssensor)
    • (Lichtsensor)
    • (Touch)

    erfüllt.