Posts by gMaN

    oder auch mit einen einfachen php skript


    [code=php]<?php
    if($_GET['umschalten'] == "klinke")
    {
    shell_exec("sudo amixer cset numid=3 1");
    }
    if($_GET['umschalten'] == "hdmi")
    {
    shell_exec("sudo amixer cset numid=3 2");
    }
    ?>[/php]



    aufruf


    name.php?umschalten=hdmi oder klinke

    warum machst du es dir so schwer ?


    ein einfacher skript sollte doch reichen


    mit ein paar schleifen


    wenn relay geschaltet wird var für licht an setzten
    wenn relay an var setzten um licht über schalter aus zuschalten
    wenn relay aus var für licht über schalter an
    wenn licht über schalter an var setzten für licht über schalter aus


    habe das ganze mit einen esp8266 gelöst hier:
    http://www.forum-raspberrypi.d…8266?pid=165585#pid165585

    hi


    also ich habe auch einige ESP8266-01 im betrieb
    die meisten laufen ebenfalls mit 5V einer davon sorgar mit 5,6V ( an ihm ist ein DHT22 angeschlossen )
    allerdings habe ich einen der jede sek einen reed-kontakt abfragt diese hängt sich bei 5V regelmäsig auf auf 3,3v läuft er nun schon einige tage druch



    ich habe bereits einen schalter mit ESP8266-01 auf "wlan" umgebaut und schalte damit ein Relay für die lampe kann das relay über einen kleinen TCP server schalten ober halt direkt mit dem schalter ( das ganze funktioniert als Wechselschaltung )


    ich habe das glück das ich erst vor kurzem gebaut habe und habe in jeder schalter dose ein buskabel gelegt und auserdem alles Sternförmig verkabelt d.h. kabel von schalter in verteiler kabel von lampe auch in verteiler
    so kann ich alles im verteiler einbauen



    mit dem ESP8266 Frage ich alle 250ms den zustand vom schalter ab wenn dieser geschaltet wird schaltet ich über einen gpio das relay



    im anhang mein lua skript




    [code=php]---------------------------------------
    function send_to_visu(api)
    conn=net.createConnection(net.TCP, 0)
    conn:on("receive", function(conn, payload) print(payload) end)
    -- senden an shc
    conn:connect(80,"192.168.0.15")
    conn:send("GET ".. api.. " HTTP/1.1\r\n")
    conn:send("Host: 192.168.0.15\r\n")
    conn:send("Accept: */*\r\n")
    conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
    conn:send("\r\n")
    conn:on("sent",function(conn)
    conn:close()
    end)
    conn:on("disconnection", function(conn)
    print("Got disconnection...")
    end)


    end
    -----------------------------------------------



    -- wlan verbinden
    -----------------------------------------------
    -- STA Modus
    wifi.setmode(wifi.STATION)
    -- SSID, Passwort
    wifi.sta.config("ssid", "wlanpassword")
    ---------------------------------




    gpio.mode(4,gpio.HIGH)


    zustand = 10
    gpio.write(4, gpio.HIGH)
    gpio.write(3, gpio.LOW)
    stop = 0
    runterx = 0
    hochx = 0
    print("wait")


    puls = 0
    an = 0
    ipshow = 0
    tmr.alarm(0, 250, 1, function()
    if wifi.sta.getip() == nil then
    --print("wait\n")
    elseif(ipshow == 0) then
    print("SS Running v0.3")
    print(wifi.sta.getip())
    ipshow = 1
    ss_port = 1337
    sv=net.createServer(net.TCP, 30)



    sv:listen(ss_port,function(c)
    c:on("receive", function(c, pl)


    print(pl)
    if(pl == "GPIO3:AN") then
    gpio.write(3,gpio.LOW)
    elseif(pl == "GPIO3:AUS") then
    gpio.write(3, gpio.HIGH)
    elseif(pl == "GPIO3:STATUS") then
    c:send(gpio.read(3))
    end
    -- end
       
       
    end)
    c:send("LichtServer\n")


    end)
    end



    schalter = gpio.read(4)
    licht = gpio.read(3)


    print("schalter:" ..schalter.. " | gpio3:" ..licht.. " and an:" ..an.. "\n") -- " ..runter.. "


    if(an == 0 and zustand1 ~= schalter) then
    print("licht über schalter aus")
    send_to_visu("/light.php?light=lisa1&zustand=0")


    gpio.write(3,gpio.HIGH)
    end
    if(an == 1 and zustand2 ~= schalter) then
    print("licht über schalter an")
    send_to_visu("/light.php?light=lisa1&zustand=1")
    gpio.write(3,gpio.LOW)
    end
    if(licht == 0) then
    print("licht AN")


    an = 0
    zustand1 = schalter
           
    end
    if(licht == 1) then
    print("licht AUS")
    an = 1
    zustand2 = schalter


    end




    end)
    [/php]


    mit einen kleinen php skript werte ich den zustand aus und sende ihn an SHC

    Einfacher hast du es wenn du dafür das "gpio" Tool verwendest. Damit hast du auch die Möglichkeit einzelne Pins zu lesen und zu setzen.
    z.B. gibt:
    Code: Alles markieren
    sudo gpio -x mcp23017:100:0x20 read 108
    den aktuellen Zustand von Pin 0, Bank B zurück. (entweder "0" oder "1")


    Eine kurze Erklärung dazu findest du hier.


    Prima, das hat funktioniert habe ich schon mit rumgespielt mit dem befehle allerdings habe ich anstadt 0x20 für den Baustein 1 genommen und deswegen hat es nicht funktioniert
    Aber wo finde ich eine dukumentation das jetzt 108 genu GPB0 ist ?


    Danke dafür!



    zu dem Temperatur sensoren gibt es einen "anderen" weg wie ich ca. 20 Stück getrennt ansprechen kann ?


    edit: mit dem 1-Wire kann man wohl mehre Temperatur sensoren paralel anschliesen und alle "einzeln" auslessen damit hat sich das ja dann wohl auch erledigt!

    Hallo bin neu hier, aber schon ein klein wenig in besitzt von 2 rpis eigentlich gekauft für meine Bitcoin miner die es nun aber nicht mehr gibt, deswegen spiele ich nun etwas mit ihnen rum :D


    und versuche ein paar sachen zu realisieren die ich später für meine Home Automatiesierung nutzen kann.



    nun mein problem ich habe einen MCP23017 erfolgreich am RPI angeschlossen jetzt würde ich über die neuen GPIO's gerne Temperatur sensoren ( DS18B20 ) auslessen nur bin ich am verzweiflen ist das überhaupt möglich ? wenn ja als was muss der Gpio vom i2c deklariert werden ?


    desweitern würde ich gerne über die "neuen" gipos reed-kontakte ansprechen, aber auch hier meine frage wie kann ich jetzt z.b. GPB0 direkt ansprechen ( auslessen )


    mit "i2cget -y 1 0x20 0x13" lesse ich ja die komplette "B"-Bank aus oder ?


    wie kann ich jetzt von bank B gpio "0" ( GPB0 ) auslessen ?



    ich hoffe ihr versteht was ich machen möchte und könnt mir helfen