Hoi allen,
ik zoek een programma voor een raspberry waarmee ik relaisboard kan aansturen,
en benaderbaar is in het netwerk met andere pc's. wifi of ethernet.
Er is vanalles maar ik weet niet te beginnen ergens mee.
misschien iemand die een advies kan geven.
tenminste 4 relais, aan en uit, en timers erbij.

bijvoorbaat dank,
Martien.

De éénvoudigste manier is de GPIO pinnen aansturen via het bestandssysteem.

PIN13 aanzetten:

echo "13" > /sys/class/gpio/export                    
echo "out" > /sys/class/gpio/gpio13/direction         
echo "1" > /sys/class/gpio/gpio13/value

Klant en klare relaisboardjes hebben dan genoeg electronica aan boord om direct een relais aan te sturen, draadje van pin 13 naar relais nr 1, relaisbordje van 5 volt voorzien en klaar.

Hoe je die echo commando's automatiseert kan op vele manieren, je kan iets met FTP versturen waardoor je zoiets krijgt.


#!/usr/bin/bash

echo "13" > /sys/class/gpio/export                    
echo "out" > /sys/class/gpio/gpio13/direction         
echo "$(cat /home/ftpuser/ftpcommando.txt)" > /sys/class/gpio/gpio13/value 

Bovenstaande script laat je elke minuut starten en die kijkt dan in een bestandje ftpcommando of pin13 aan of uit moet.

Je kan ook een https:// script maken of SSH. Er zijn vast kant en klaar website scripts voor die je allerlei instellingen en tijden laten invoeren via een website, via de mobiel of laptop.

He, dat van /sys/class/gpio kende ik niet. Maar op mijn RasPi vind ik zo'n entries niet. Is het nodig een of ander package te installeren?

Op donderdag 28 november 2024 23:52:43 schreef Paulinha_B:.. Is het nodig een of ander package te installeren?

Het is een kernelmodule dacht ik, wel al een tijd 'deprecated' lees ik hier.. werkt het 'gpioinfo' commando?

Ja, die werkt, mits voldoende permissies:
(en die permissiekwestie was gauw opgelost door mijn account toe te voegen aan de group gpio: "sudo usermod -a -G gpio karel"


karel@rpi-mast:/opt/helmut/dump1090/k_dump1090 $ gpioinfo
gpioinfo: error accessing GPIO chips: Permission denied
karel@rpi-mast:/opt/helmut/dump1090/k_dump1090 $ sudo gpioinfo | head -5
gpiochip0 - 54 lines:
	line   0:     "ID_SDA"       unused   input  active-high 
	line   1:     "ID_SCL"       unused   input  active-high 
	line   2:      "GPIO2"       unused   input  active-high 
	line   3:      "GPIO3"       unused   input  active-high 

[Bericht gewijzigd door Paulinha_B op (11%)]

ik had een korter commando vroeger. staat op mijn octoprint om mijn 3D printer remote aan te schakelen (achter een relais ;-) )
de octoprint antwoord echter niet, dus kan het commando niet opzoeken nu.

was iets van GPIO 4 1 ofzo (poort 4 op high)
en GPIO 4 0 was dan weer uitschakelen.

ga eens in console en type "gpio -h"
EDIT: was dus omgekeerd

gpio <toggle/blink> <pin>

gpio 0 4 en gpio 1 4 dus. eerst de status, dan de pin

gooi dat in een scriptje, geef het rechten, maakt een webpagina die dat script uitvoert met bv een drukknop en klaar.
tegenwoordig maak je een webserver met 1 regel code.

als je geen webserver wil, kan je ook gewoon met SSH naar die raspberry gaan en zelf het commando geven.
zo doe ik het met de printer

er zijn scripts gemaakt
printon.sh
printoff.sh
lightson.sh
lightsoff.sh.

en daarin schrijf ik dan welke pin ik hoog of laag maak (lights is mijn 100W gloeilamp om de behuizing van de printer op temperatuur te houden)

Als je in octoprint de enclosure module installeert kan je die verwarming toch automatisch laten aanzetten als de temperatuur te laag is bij opstarten.

Als sensor een BME280, die ook wordt ondersteund door octoprint.

Als verwarming gebruik ik 3 200W 12Ω op 24V weerstanden op koelprofiel met kleine ventilatortjes om de warmte beter te verdelen. Geschakeld door de octoprint met een SSR.

Als verlichting WS2812 ledstrips eveneens aangestuurd door octoprint. Kleur wijzigt

als de print voltooid is, tool nog aan het opwarmen, ...

Op donderdag 28 november 2024 23:52:43 schreef Paulinha_B:
He, dat van /sys/class/gpio kende ik niet. Maar op mijn RasPi vind ik zo'n entries niet. Is het nodig een of ander package te installeren?

Nee, niets nodig. Is kernel spul en je moet een heel rare installatie hebben als dat niet bestaat. Ik denk dat je verkeerd gekeken hebt.

Het zijn in /sys allemaal virtuele files en ditrectories. Dus als je op je SD kaart zit te kijken zonder werkende PI dan bestaan ze daar niet.

@ MartinusP: Ik weet niet wat je programmeer kennis is, maar de aangedragen oplossingen zijn best ingewikkeld.

Installeer gewoon Domoticz of Home Assistant. Via de webbrowser kun je dan eenvoudig relais aansturen en ook timers maken.

https://www.domoticz.com/
https://www.home-assistant.io/

Ik vind de oplossing via een serieel relaisbordje ook altijd makkelijk:

(Voorbeeld): https://nl.aliexpress.com/item/1005001666938084.html?

Deze dan via USB op je Pi prikken. Kun je sturen met commando's over de seriele poort. In Lua (een programmeer taal) zou dit het er ongeveer zo uitzien (code snippet, alleen om te laten zien dat het kan):


function doComms()
if ((curtally<1) or (curtally>4))  
	then	--switch off old tally, so nothing is active
			if (oldtally == 1) then sendtoserial("\085\086\000\000\000\001\002\174") end
			if (oldtally == 2) then sendtoserial("\085\086\000\000\000\002\002\175") end
			if (oldtally == 3) then sendtoserial("\085\086\000\000\000\003\002\176") end
			if (oldtally == 4) then sendtoserial("\085\086\000\000\000\004\002\177") end
	else
	    	--switch on the new tally with interlock
			if (curtally == 1) then sendtoserial("\085\086\000\000\000\001\005\177") end
			if (curtally == 2) then sendtoserial("\085\086\000\000\000\002\005\178") end
			if (curtally == 3) then sendtoserial("\085\086\000\000\000\003\005\179") end
			if (curtally == 4) then sendtoserial("\085\086\000\000\000\004\005\180") end
	end
oldtally = curtally
wantsend = false
end

function sendtoserial(msg)
local file = io.open(port, "w")
io.output(file)
io.write(msg)
io.flush(file)
io.close(file)
end

Dus gewoon zelf programmeren in een taal die je goed beheerst. Dit voorbeeld is in Lua, maar alle talen kunnen dit. Dus zelfs ook in Bash, zoals hierboven, in C, in Python etc etc.

Ik heb deze ooit gebruikt: http://abyz.me.uk/rpi/pigpio/
Interface naar verschillende programeertalen, snel, en simpel te gebruiken.

Ik dacht dat dit nu "standaard" in één of andere vorm in de kernel zit.

Groetjes,
eSe

Ben er weer,

Zoals Marcob al vraagt hoe mijn programmeer kennis is,
kan wel een beetje, maar wat word geschreven is toch wel hoog gegrepen voor mij. homeassistent heb ik een image van, dus in die trend wil ik wel verder,
ook domoticz heb ik ingekeken, maar misschien zijn er nog makkelijke programma's. vanavond ga ik weer verder,
maar hulp bij home assistent of domoticz is ook altijd welkom.

bedankt zover,
Martien

valt wel mee hoor.

ga naar je raspberry, neem een console open en tik

gpio

normaal ga je dan al info zien.
zit je relais op gpio4, dan tik je eens

gpio toggle 4

en dan zou de relais moeten aanspringen

zelfde commando terug zet hem af

daarna is het nog die files aansturen via een webpagina. daar is veel over te vinden online.
bv https://forums.raspberrypi.com/viewtopic.php?t=262508#p1598888

wat je ook kan doen, is het script gewoon runnen met een link of via perl ofzo.
bv
"http://ip_raspberry/relais.cgi"
die zet de relais dan aan en geeft bv een status weer.

ik heb een robot grasmaaier omgebouwd naar rasbperry en kan die via website besturen.

Op vrijdag 29 november 2024 12:23:38 schreef fcapri:
valt wel mee hoor..

En nu met timers zoals de TS vraagt?

Op vrijdag 29 november 2024 11:54:48 schreef MartinusP:
..vanavond ga ik weer verder,
maar hulp bij home assistent of domoticz is ook altijd welkom.

bedankt zover,
Martien

Er is hier op het forum voldoende kennis van beide toepassingen, dus hulp is aanwezig.

Denk dat TS zoiets zoekt,
https://www.antratek.be/ds3484-ethernet-module

Van Antratek:
dS3484 is een programmeerbare Ethernet module met 4 relais (16A@250Vac), 8 digitale I/O's, 4 analoge ingangen, 2 seriële poorten en 1 RS485-poort voor uitbreidingsmodules.

De module is eenvoudig in te stellen en te configureren met uw webbrowser. U kunt de module besturen via een webpagina of met TCP/IP commando's (ASCII, binair of Modbus). Het kan emails versturen op geselecteerde gebeurtenissen. Er is AES encryptie mogelijk voor volledig veilige besturing. U kunt de relais-besturing automatiseren en u heeft acht 32-bit tellers tot uw beschikking. U kunt zelfs schakelschema's op dag of week instellen.

Op vrijdag 29 november 2024 12:38:36 schreef marcob:
[...]

En nu met timers zoals de TS vraagt?

dat zit in de scripts of in de webpage.

mijn boiler hangt aan een relais via een ESP.
de website daarop is dit

ik kan alle uren die opzetten, als het uur aan staat, springt relais aan.
die schuifbalk van links naar rechts, kan ik naar links de boiler 1,2 of 3 uur uitschakelen, of naar rechts 1, 2 of 3 uur dwingen om aan te staan.
bijkomend communiceert die ook met mijn zonnepanelen en als er meer dan 1100W injectie is, gaat die ook aan.
OF als het huis verbruik boven de 5KW gaan (capaciteitstarief) dan gaat die uit. ook al zegt de urenbalk dat die dat uur zou aan staan.
ga nu nog programmeren dat ik ook de temperatuur kan instellen (bv om 17h en nog steeds lager dan xx°C, verplicht weer aan voor X uur. en dien X uur kan dan berekent worden uit de huidige temperatuur. is maar een paar regels code toevoegen. je kan echt uitvinden wat je maar wil van sturing

je kan het script ook gewoon maken dat je zegt:
relaisaan.cgi?5 is bv 5min aan
of relais.cgi?S=1?T=30 status aan, tijd 30min

Hoi,
Dit is wat ik wil doen.
Elke dag om 6.00 uur relais 1 aan en om 17.00 uur uit.dit blijft elke dag hetzelfde, kan is een keer veranderen.
relais 2 aan 7.00 uur uit 18.00 uur veranderd elke week wel naar gelang daglicht.
relais 3 6x per dag 10 sec aan verandert niet echt veel maar wel maandelijks.

relais 4 gaat ook met daglicht mee. verandert maandelijks.

dus ik heb een klok nodig,
Ik heb nog wel een bord USR-WIFI-IO-83. daar kan ik op inloggen op ipadres,
maar dan alleen aan en uit.

ben in home assistent aan het rondstruinen, ga direkt even naar domoticz kijken heb net een image op een SD kaart gezet, en ga daar als t lukt domoticz opzetten.
Grtn
Martien.

Om de "echte" tijd te kennen en te kunnen verrekenen:

* ofwel ntp client, men vindt wel een ntp-server ergens op het www
* ofwel een satellietontvanger aanpikken, bv. per usb
* ofwel beide, pik een gnss-ontvanger aan en bedrijf daarmee uw eigen ntp-server

Denk al eens tevoren na over het al dan niet volgen van de omschakeling zomer/winteruur - in afwachting dat die onzin eindelijk eens wordt afgeschaft.

In zowel Domoticz als Home Assistent kun je automatiseringen maken op basis van zonsopgang en zonsondergang. Dus je hoeft zelfs niet steeds wekelijks de timers aan te passen.

En een (meerpoorts) Shelly?

- aan-/uittijden: check
- daglichtprogramma's : check
- programmeren met mobiel/laptop: check
= later verbinden met HomeAssistant/Alex/Google/Domoticz: check
- relais: check 16A/230V

Als je toch met iets gaat beginnen ga dan niet meer stunten met domoticz, home assistant is een stuk flexibeler en heeft een veel grotere ondersteuning .

En als je zelf wilt gaan hobbyen met hardware kijk dan zeker naar ESPhome, daar kun je (bijna) alles in maken.
Als bonus krijg je bij de chinees op ESB gebaseerde IO printen en modules waar je zo je eigen firmware in kunt schieten.

Hoi, ik ben er weer.

heb nu homeassistant op de raspberry staan,log in op raspberry met PC, nu zie ik alleen mijn sony tv, welke ik uit kan zetten, en met aanzetten komt home assistant op t beeld,
zie ook 2 airco's van LG die ik hier heb, maar hoe nu verder?
waar ergens een manual of een goed Youtube video, met name GOED, staat veel op maar ik ben niet verder gekomen.

bijvoorbaat dank,
Martien.

Op vrijdag 29 november 2024 12:23:38 schreef fcapri:
valt wel mee hoor.

ga naar je raspberry, neem een console open en tik

gpio

Goed. Gedaan:


studentenhaver:~> gpio
gpio: At your service!
  Type: gpio -h for full details and
        gpio readall for a quick printout of your connector details
studentenhaver:~> gpio readall
Oops - unable to determine board type... model: 17
studentenhaver:~> 

Er is wat "gedoe" met GPIO aansturing op raspberry pi's.

Er was een gast die heeft een library en bijbehorend programma gemaakt wat /dev/mem opende en dan daar de juiste bitjes in kon manipuleren.

Dat ding werd redelijk populair, en daarna kwam de rasbperry pi 2 uit. Alles aangepast voor dat ding en updated versie uitgebracht.

Uiteindelijk wordt de boel zodanig populair dat de auteur bedolven wordt door vragen: "hoe zet ik m'n relais aan" die niets met het PROGRAMMA gpio te maken hebben. Hij heeft het programma teruggetrokken en het is niet meer nieuw te krijgen. Ik heb het kennelijk nog op mijn werk-pi staan. Zo te zien een RPI-4.

En kennelijk is die gast dus gestopt met updated VOOR de RPI-4.

De /sys/class/gpio moet als het goed is werken met alle pi's.

Ik heb in de overgangsfase toen "gpio" net "weg" was een overgangs scriptje geschreven wat gewoon in bash doet wat gpio vroeger deed, maar dan vooral dat wat ik in mijn andere scripts nodig had (maak input, maak output, lees, schrijf).

Top dat je zo ver bent gekomen. Nu moet je aanvullend HACS installeren op home Assistant, zie: https://hacs.xyz/docs/use/

Wanneer je deze hebt, kun je Raspberry Pi GPIO via https://github.com/thecode/ha-rpi_gpio

Nu kun je een aantal switches koppelen aan een GPIO. Daarna is het eenvoudig om voor de betreffende switches automatiseringen aan te maken.

Op dinsdag 3 december 2024 21:44:17 schreef rew:
[...]
Goed. Gedaan:


studentenhaver:~> gpio
gpio: At your service!
  Type: gpio -h for full details and
        gpio readall for a quick printout of your connector details
studentenhaver:~> gpio readall
Oops - unable to determine board type... model: 17
studentenhaver:~> 

Er is wat "gedoe" met GPIO aansturing op raspberry pi's.

die fout krijg ik ook. toevallig ook board 17. maar al de rest werkt wel. je kan een poort hoog op laag zetten.
een raspberry is ook overkill om gewoon een relais aan en uit te zetten. kan je eenvoudiger met een arduino of ESP doen. daar draait ook webbrowser op, heeft analoge en digitale uitgangen.

ik had reeds een rpi draaien voor octoprint, en dan was het een kleinigheid om die ook de functie te geven om de 3Dprinter en verwarming aan te schakelen