Posts by blueberlin

    Hallo,


    ich habe mein Raspberry PI3 im Keller, dort kann er auch nicht weg.


    An ihn hängt mein Strom, Gas und Wasserzähler und er übernimmt die Überwachung des Verbrauchs seit ca 1 Jahr.



    Nun möchte ich das ganze etwas erweitern und benötige im EG und 1 OG jeweils 10 Digitale Ports die ich mit den Raspberry PI Abfragen möchte.


    Problem ist, es liegt bereits in jeden Stockwerk ein Kabel, dies hat aber jeweils nur 4 Adern ( Telefonnleitung die nicht mehr benötigt wird, Analoges Telefon ist ja so 90er ;) )



    Jetzt hatte ich die überlegung an den PI zwei Adern zu nehmen für Masse und 3,3V, die anderen beiden dann für TXD und RXD.


    im EG bzw. OG dann ein Atmega der eben die 10 Eingänge verwaltet und je nach Schaltung eben das ganze über die beiden Adern runter sendet.



    An und für sich nicht das problem, macht nur bisjen Arbeit und vielleicht gibt es für diese Anwendung schon fertige Platinen?


    würde mich freuen wenn ihr euern Senf mal dazu gibt ;)



    lg


    Stefan

    Hallo,


    ich habe auf den RaspberryPI 3 den GPIO2 mit ein 10K OHM Widerstand mit 3,3V verschaltet.
    Dann geht ein Kabel von GND zu ein Taster und von diesen Taster dann zu den GPIO2.



    Meine Python Software zählt mit wenn jemand diesen Taster drückt.


    Das klappt alles ohne Probleme, egal wie oft ich den Taster drücke es gibt keinerlei probleme er zählt brav mit und "verzählt" sich auch nicht.



    JETZT KOMMT ABER DAS ABSURDE!!!



    ( Mein PI liegt im Keller, in einer Ecke, somit etwa 2-3 Meter entfernt von der Deckenlampe, diese besteht aus 2 Leuchtstoffröhren )


    Wenn ich nun das Licht im Keller einschalte dann zählt der PI weiter als ob jemand den Taster gedrückt hätte, je nachdem wie schnell die Lampe startet zählt er 1-6 Impulse.
    Schalte ich das Licht aus, passiert nichts, aber jedes mal beim Einschalten das gleiche spiel.


    Was kann ich dagegen machen? habt ihr eine Idee?

    Hallo,


    ich benutze ein Code mit dem ich mir über PHP den Zugang zu meiner Fritzbox verschaffe, alle Aktoren die Angeschlossen sind Anzeige lasse ( inkl. Temperatur ) und dan auf den Bildschirm ausgebe:


    [code=php]<?php
    //Anmeldedaten und SessionID Funktion einbinden


    //Anmelde- und Hostdaten
    $username=""; //eintragen wenn gesetzt
    $password="troetmich21832832h"; //anpassen!
    $loginurl="http://fritz.box/login_sid.lua"; //Host bei Bedarf anpassen
    $ahaurl="http://fritz.box/webservices/homeautoswitch.lua"; //Host bei Bedarf anpassen


    //Login-Funktion
    function get_sid ($loginurl,$username,$password) {
    //Sende initialen Request an Fritzbox
    $http_response = @file_get_contents($loginurl);
    //Parse Antwort XML
    $xml = @simplexml_load_string($http_response);
    //Antwort prüfen, ob ein xml-Object mit einem Challenge-Tag existiert
    if (!$xml || !$xml->Challenge ) {
    die ("Error: Unerwartete Antwort oder Kommunikationsfehler!\n");
    }
    //extrahiere Challange und SID Tags aus XML
    $challenge=(string)$xml->Challenge;
    $sid=(string)$xml->SID;
    if (preg_match("/^[0]+$/",$sid) && $challenge ) {
    $sid="";
    //erstelle Klartext Password String
    $pass=$challenge."-".$password;
    //UTF-16LE encoding des Passwords ist erforderlich
    $pass=mb_convert_encoding($pass, "UTF-16LE");
    //abschliessend ein md5hash über alles
    $md5 = md5($pass);
    //Erstelle Response String
    $challenge_response = $challenge."-".$md5;
    //Sende Response zur Fritzbox
    $url=$loginurl."?username=".$username."&response=".$challenge_response;
    $http_response = file_get_contents($url);
    //parse Antwort XML
    $xml = simplexml_load_string($http_response);
    $sid=(string)$xml->SID;
    if ((strlen($sid)>0) && !preg_match("/^[0]+$/",$sid)) {
    //is not null, bingo!
    return $sid;
    }
    }else {
    //nutze existierende SID wenn $sid ein hex string ist
    if ((strlen($sid)>0) && (preg_match("/^[0-9a-f]+$/",$sid))) return $sid;
    }
    return null;
    }
    //Login in Fritzbox und SID ermitteln
    $sid=get_sid($loginurl,$username,$password);
    if (!$sid ) {
    die ("Anmeldefehler, keine Session-ID erhalten!\n");
    }
    //SmarthomeURL mit SID Parameter ergänzen
    $query_url=$ahaurl.'?sid='.$sid;
    //Abfrage aller eingetragenen Geräte mit getdevicelistinfo Kommando
    $xmlstring=chop(@file_get_contents($query_url."&switchcmd=getdevicelistinfos"));
    $xml = @simplexml_load_string($xmlstring);
    //Antwort prüfen, ob ein xml-Object mit einem Device-Tag existiert
    if (!$xml || !$xml->device ) {
    die ("Error: Unerwartete Antwort oder Komunikationsfehler bei cmd=getdevicelistinfos");
    }
    //Schleife über alle gelisteten Geräte
    foreach ($xml->device as $device) {
    $attributes=$device->attributes();
    $ain=(string)$attributes['identifier']; //Lese Geräte AIN
    $name=(string)$device->name; //lese Gerätename
    $txt="AIN $ain ($name) ";


    //Check Funktionsbitmask
    $mask=(integer)$attributes['functionbitmask'];
    $has_temperatur=($mask & (1<<8))>0;
    $has_switch=($mask & (1<<9))>0;


    //Behandle Funktionen
    if ($has_temperatur) {
    //bit8=Temperatur Sensor
    $temperatur=((integer)$device->temperature->celsius)/10;
    $offset=((integer)$device->temperature->offset)/10;
    $temperatur=$temperatur+$offset;
    $txt.=sprintf (" Temperatur:(Temp:%02.1fC, Offset:%02.1f) ;",$temperatur,$offset);
    }
    if ($has_switch) {
    //bit9=schaltbare Steckdose
    $status=(string)$device->switch->state;
    $status=($status=="1");
    $txt.= " Steckdose(Status:".($status?"On":"Off")."); ";
    }
    echo "$Name $temperatur <br>";
    }
    ?>


    [/php]


    hat jemand sowas zufällig als Python Code rum zu liegen?


    würde die Daten gerne mit Python weiter verarbeiten und mein aktueller weg die Daten mit PHP zu speichern und dann wieder in Python zu öffnen ist nicht gerade sehr SDKarten schonend.


    Keine gute Idee, an definierten Zuständen "zu sparen". Es sei denn Du ersetzt diese durch Deine eigenen externen Widerstände.


    Ich glaube ich wurde missverstanden ;)


    Ich habe aktuell Widerstände für jeden Port angeschlossen ! Diese möchte ich gerne in meiner fertigen Schaltung einsparen und deswegen auf die zurück greifen die in den IC Intern verbaut sind. Nur wie ich die Aktiviere ist mir nicht so richtig bewusst.



    Das register habe ich gefunden, nur weiss ich leider trotzdem nicht welscher Wert für die PullDown Widerstände zuständig ist ;(



    Edit:


    Jetzt habs ich es doch raus gefunden^^ trotzdem danke


    GPPUA = 0x0C


    GPPUB = 0x0D

    Hallo,


    ich habe an den Raspberry PI, ein Porterweiterung's IC Angeschlossen MCP23017


    Nun würde ich gerne mir die PullDown Widerstände an jeden Port sparen.


    Mit welschen Befehl kann ich das ganze Aktivieren?


    Hier mein Aktueller Testcode zum Auslesen:



    Würde mich auf eine Antwort freuen

    Hallo,


    ich habe ein Python Programm, was IMMER läuft solange der PI an ist.


    Dieses Programm Startet, je nachdem was an den GPIO Ports passiert andere Programme.


    Dies mach ich mit folgenden Befehl:


    Code
    subprocess.call(["sudo", "motion"])


    Soweit so gut, das klappt alles, ABER wenn ich ein anderes Python Programm Aufrufen will:


    Code
    subprocess.call(["sudo", "python", "speichern.py"])


    dann bleibt das Hauptprogramm stehen bis das aufgerufene Programm beendet ist, ich möchte aber das beide Programme dann Zeitgleich laufen.



    Hat da jemand eine Idee?

    Hallo,


    ich habe ein Programm das in unterschiedlichen Abständen eine Datei ändert.
    Das kann einmal mal die Stunde oder einmal am Tag sein.
    Das eine SD Karte es nicht mag ständig überschrieben zu werden habe ich bereits gelesen.


    Aber juckt es eine SD Karte wenn ich jede Sekunde eine Datei öffne um zu schauen ob sich etwas geändert hat?

    Hallo,


    habe mir für den Raspberry PI3 ein JeeLink 868MHZ Adapter gekauft. Angeschlossen und mit ein kleinen Python Programm Funk Temperaturfühler Ausgelesen.


    Das Hat Super geklappt, diese Funksender ( https://www.amazon.de/gp/product/B00392XX5U/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1 (Affiliate-Link) ) legt man die Batterien ein und dann Senden diese sofort los.



    Jetzt war ich so doof und dachte das geht mit anderer Hardware auch^^ Hab mir also diese Fensterkontakte von Max! gekauft
    ( https://www.amazon.de/gp/product/B004W1PTYU/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 (Affiliate-Link) )


    Ich dachte da geht es genauso, Batterie rein und dann Senden die dinger alle paar Sekunden ob Kontakt Offen oder zu, leider ist dem nicht so, die wollen sich mit ein Sender/Empfänger Verbinden und erst nachdem das erfolgreich geschehen ist, senden Sie ihre Daten.



    Ich konnte zwar bei Google ein paar Seiten finden, wo beschrieben wurde das es irgendwie geht, aber nie genau was man braucht und ob es alleine mit den JeeLink Stick funktioniert.



    Hat jemand ein Tipp?

    Hallo,


    ich habe an mein Atmega16 ein Bluetooth Modul. Unter Windows mach ich folgendes:


    -Klicke auf Bluetooth, Koppeln, gebe die Pin ein.
    -Nun wird mir im Gerätemanager eine neue Serielle Schnittstelle angezeigt, im mein fall Com5:
    -Ich öffne HTerm, stelle eine Com5: 19200 Baud, klicke auf Verbinden
    -nun kann ich Daten an den ATmega Senden und bekomme Antworten angezeigt.


    Auf den Raspberry komme ich nicht so weit.
    -Ich klicke auf Bluetooth, Koppeln, gebe die Pin ein.
    -Der Rasberry sagt er Verbindet sich und sagt das er Verbunden ist, aber mit diesen Gerät nichts anfangen kann. ( no usable services on this devices )




    möchte gerne das gleiche wie unter Windoof auf den Raspberry erreichen, später eigendlich sogar das ein Python programm Daten Sendet und empfängt, aber soweit bin ich ja noch lange nicht.



    Als Hardware benutze ich ein Raspberry Pi3 mit Aktuellen Raspbian Jessie with PIXEL, am Atmega hängt ein Bluetooth Modul mit der Bezeichnung: "HC-06 Wirelles Bluetooth Slave Modul for Arduino RS232"



    habt ihr ein Tipp für mich?

    danke erstmal für deine antwort, hab danach gegoogelt, bin aber irgendwie nicht weiter gekommen, was soll das heissen "Name deiner seriellen schnitstelle " das ist doch wohl bei jeden raspberry gleich also "/dev/ttyAMA0" oder? und -echoIrgendwas echoWasAnderes? was soll mir das helfen? kann mir nichtmal mit der raspberry hilfe daraus was zusammen reimen ;( verstehe auch nicht warum ich dazu hier nichts in der suche finde, das problem werden doch wohl alle haben die den uart nutzen mhhh

    Hallo,


    ich habe an den Raspberry PI UART ein Problem.


    Für Testzwecke habe ich den RXD und TXD Port miteinander Verbunden.


    Dann folgendes über Putty eingegeben:




    Code
    sudo stty 19200 -F /dev/ttyAMA0



    so, nun will ich alles was per UART Rein kommt in eine Datei Speichern, dazu gebe ich folgendes ein:


    Code
    cat /dev/ttyAMA0 >> Test.txt


    so, nun erstellt der Raspberry eine Datei mit den Namen Text.txt, diese ist 0,0kb groß. Soweit so gut, nun möchte ich gerne das der Raspberry Daten per UART Empfängt, also Sende ich Daten mit dem Befehl:


    Code
    echo "Hallo Welt" >> /dev/ttyAMA0



    so, nun steht in der Datei Test.txt "Hallo Welt", aber nicht einmal, sondern 100 mal, nach wenigen sekunden sogar 1000 mal und die Datei wird immer größer.



    Was mache ich falsch? warum schreibt er nicht nur einmal "Hallo Welt" sondern so oft?? was mache ich falsch?


    Ich habe die vermutung, das der Raspberry alle daten die er empfängt gleichzeitig wieder per echo sendet und somit eine kettenreaktion auslöst die ins unendliche geht.


    wenn meine vermutung richtig ist wie stelle ich diesen unerwünschten effekt ab?

    Hallo,


    ich sitze jetzt hier seit fast 8 Stunden und bin einfach viel zu blöd.


    Ich habe ein kleines Python Programm, das einmal pro Stunde mir eine Datei erstelllt und Speichert.


    Das rufe ich aktuell so auf:


    Quote


    Ich öffne Putty, verbinde mich mit den Pi, gebe Benutzername und PW ein, dann:


    cd /var/www


    python zeit.py



    das klappt auch wunderbar, nur wenn ich dann Putty schließe, ist das Programm auch beendet.
    Also wollte ich es beim Hochfahren des PI's Automatisch starten lassen, aber er will einfach nicht ;(


    Versuch I:


    Quote


    sudo crontab -e


    dort dann @reboot python /var/www/zeit.py


    gespeichert



    nach dem neustart passiert nichts.


    Versuch II:


    Quote


    sudo nano /etc/rc.local


    dann unten VOR exit habe ich eingefügt:


    python /var/www.test.py &


    auch das klappte nicht, was mache ich falsch?




    in der Contab datei lasse ich schon 2 PHP Seiten einmal am Tag öffnen, wenn ich aber die Zeile einfach nehme und den Dateipfad vom Python Programm eingebe dann passiert da auch nicht.




    Bitte bitte helft mit, habe schon google gequäääält aber nichts hat funktioniert ;(

    Naja, vielleicht liegt es daran das man Schallplatten nicht brennt sondern presst.



    Du müsstest also erstmal ein Gerät bauen was eine Mutterplatte erzeugt, die ist soweit ich weiss meist aus Metall, dazu könnte man mit Phantasie vielleicht eine CNC Fräse nehmen.


    Aber du müsstest auch die Toninformationen erstmal umrechnen in vertiefungen da so ein Tonarm eben diese abfährt.



    Wird ein Grund haben warum Platten pressen deutlich teurer ist als CD's zu erstellen

    [code=php]$SMSSenden="https://www.smsflatrate.net/schnittstelle.php?key=8d49de1f4505796b04a372d6fd430eba&from=004917123456&to=$Telefonnummer&text=Hi, schau bitte im System nach, bei dir fehlen wichtige Artikel MFG&type=20";
    $SMSSenden=str_replace(' ', '+', $SMSSenden);
    $handle = fopen("$SMSSenden", "r");
    [/php]



    Das ist jetzt die entscheidene Zeile die dafür sorgt das meine Daten per SMS gesendet werden.


    Vorrher habe ich das ganze so gelöst gehabt:


    [code=php]$SMSSenden="https://www.smsflatrate.net/schnittstelle.php?key=8d49de1f4505796b04a372d6fd430eba&from=0049175123456&to=$Telefonnummer&text=Hi, schau bitte im System nach, bei dir fehlen wichtige Artikel MFG&type=20";
    ?>
    <iframe src="<? echo $SMSSenden ?>" width="100" height="100" name="SMSSenden"></iframe>
    <?
    [/php]



    Im Browser wie Firefox klappte beides, über den Cronjob aber nur die erste variante ;)

    Ich Danke euch !!!


    meigrafd


    Der Tipp mit PHP OPEN URL GET war genau der entscheidene Tipp damit funktioniert es jetzt :)


    ich danke euch ;)






    P.S Ja mein PI macht nichts anderes als 1 mal am Tag diesen Cronjob ausführen, sonst langweilt er sich. Mein Webanbieter bietet das auch an mit den Cronjob, allerdings will der 1,50€ in Monat dafür haben und der Pi soll ja nur so 5€ Strom im Jahr verbrauchen, deswegen komme ich damit deutlich günstiger weg ;)

    Die Benutzer können das Wählen wenn sie sich anmelden, das hat nichts mit den Skipt zu tun was ich per cronjob aufufe.


    Ich muss den Inhalt per IFrame aufrufen weil nur so die Daten an die andere Homepage übergeben werden kann durch ÖFFNEN der Seite und wie öffne ich eine Internetseite über PHP als über IFrame ? per Include und FOpen akzepiert der Server der für den SMS Versand zuständig ist nicht die Datenabfrage.