Új hozzászólás Aktív témák
-
eldvor
csendes tag
Elnézést:
#!/usr/bin/python
import sys, MySQLdb, Adafruit_DHT, datetime, time
#
pin = 17
#
sensor = Adafruit_DHT.DHT11
#
db = MySQLdb.connect(host='localhost',user='logger', passwd='*******', ,db='home')
#
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
#
while True:
humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:
cur = db.cursor()
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
db.commit()
cur.close()
del cur
db.close()
time.sleep(300)
iT kontár
-
sonar
addikt
Itt a második sor hibádzik:
while True:
humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:Mit is akartál vele?
A formázásod még mindig nem tökéletes. Egyben kéne az egész kódot formázni és nem soronként.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
cousin333
addikt
Két behúzás is kell bele:
while True:
if humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:
cur = db.cursor()
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
db.commit()
cur.close()
del cur
db.close()
time.sleep(300)
[ Szerkesztve ]
"We spared no expense"
-
eldvor
csendes tag
válasz cousin333 #2607 üzenetére
Szia!
Köszönöm! Azóta két tabig én is nagy nehezen eljutottam, le is fut az elsőre, de utána a következő hibákat kapom:
Traceback (most recent call last):
File "temptodb2.py", line 20, in <module>
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
_mysql_exceptions.InterfaceError: (0, '')Ez nekem már full magas, sajnos python tudásom elég féllábas
iT kontár
-
eldvor
csendes tag
Igen, köszönöm beraktam a ciklus elejére az csatlakozást és megoldotta a problémát
iT kontár
-
-
cousin333
addikt
válasz 0xmilan #2617 üzenetére
Ebben az esetben nem biztos, hogy jobb, mivel sosem keveredik ki a
while True
ciklusbólRandom hint: az
if
így egy fokkal szebben nézne ki (ha már egyszer lehet ilyet):if humidity is not None and 0 <= humidity <= 100 and temperature is not None and -100 < temperature < 150:
"We spared no expense"
-
Írkálok egy egyszerű network scannert, ami a célgépek 0-s portjához kapcsolódna. Teljesen mindegy, mi a kezdő IP-cím, annál mindig no route to host hibát kapok, a többi offline címre az elvárt socket timeoutot. Az online címek connection refusedot küldenek vissza (akkor is, ha ez az egyetlen vizsgálandó cím).
Tudja valaki, mitől lehet a routing hibaüzenet?
https://www.coreinfinity.tech
-
kovisoft
őstag
Nem vagyok hálózati guru, de szerintem azért kapsz connection refusedot, mert a 0-s porthoz nem lehet kapcsolódni. A 0-s port arra van fenntartva, hogy dinamikusan lehessen egy szabad portot kiosztani (ami utána nem a 0 lesz). Ha port scannert akarsz csinálni, akkor minden címre végig kellene pásztázni a portokat 1-től pl. 1024-ig. Vagy csak egy adott porthoz kellene kapcsolódni, ami mindegyik hoston nyitva van. Vagy csak szimplán pingelni kellene a címeket.
-
sztanozs
veterán
Internetről:
Many internet service providers (ISPs) block traffic on port 0 — both incoming and outgoing messages — to guard against these exploits.Egyébként elképzelhető, hogy bizonyos OS-ek sem routolnak tcp/0 vagy udp/0-ra...
Egyébként, ha kifejezetten egy 0-s porton hallgató szervízt kereső szkennert szeretnél írni, arra a python szvsz nem lesz a megfelelő megoldás.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
nagyúr
itt egész jól leírják: [link]
tl, dr: tradicionális *nix implementáció miatt kapsz connection refusedet.Tudod, mit jelent az, hogy nemezis? Az érintett, erősebb fél kinyilatkoztatása a méltó büntetés mértékét illetően. Az érintett fél jelen esetben egy szadista állat... én.
-
válasz sztanozs #2624 üzenetére
Ezt csak a saját hálón belül használom, nem kell, hogy kimenjen az internetre.
Kovisoft: ha kívülről célzod meg a 0-s portot, akkor host discovery célokra kiválóan alkalmas. Ami meglepett, hogy pl. az nmap a mobilokat nem találta meg, de ez igen. Megjegyzés: nmappel is tudsz 0-s scant csinálni.
https://www.coreinfinity.tech
-
válasz velizare #2625 üzenetére
A connection refused rendben van, a live hostok azt küldik vissza. Az egyetlen anomália, amit nem értek, ha a range első hostja offline, akkor mindig OSError: no route to host-ot kapok, a többi offline-ra socket timeoutot, az online rendszerekre pedig connection refused-ot.
https://www.coreinfinity.tech
-
-
-
davidvarga
tag
Sziasztok! Olyan szkriptet keresek ami egy txt fájlban (egymás alatt) felsorolt szavakat tartalmaz és ezeket a szavakat szeretném megkeresni egy másik txt fájlban úgy hogy listázza ki az egyezést vagy csak sorolja fel. Köszönöm a tippet hogy itt kérdezzem sztanozs fórumtársnak és köszönöm előre is.
-
Rimuru
veterán
-
lekai
friss újonc
Sziasztok!
Nagyon kezdő vagyok viszont lelkes tanuló.jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ')kérdezném miért nem működik ez a kulcs? Videon nézve működik.
Válasz köszönöm.
Tisztelettel Krisztián -
lekai
friss újonc
jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ') -
kovisoft
őstag
Ez most sem sikerült. Válaszd a hozzászólás szerkesztőben a </> kinézetű ikont és abba másold bele a kódodat, ügyelve az indentálásra. Valahogy így kellene kinéznie, de nem biztos, hogy nálad is így van indentálva:
jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ')[ Szerkesztve ]
-
lekai
friss újonc
pont úgy néz ki
folyton azt írja ki Mi a jelszo?jelszo = 'vacak'
bemenet = input('Mi a jelszo? ')
proba = 0
while bemenet != jelszo:
proba += 1
if proba == 3:
print('Rendszer lezarva! ')
break
print('Rossz jelszo, probald ujra! ')
bemenet = input('Mi a jelszo? ')
if bemenet == jelszo:
print('Ugyes vagy! ')[ Szerkesztve ]
-
kovisoft
őstag
Kipróbáltam a kódodat és nálam működik, ha a vacak jelszót írom be. De mivel az idemásolt kódodban az első indent 5-ös, a második 7-es, ezért az a tippem, hogy nálad esetleg keverednek szóköz és tab karakterek. Ezeket kellene megnézni és egységesíteni. És az indentálás mértéke lehetőleg mindig ugyanannak a számnak a többszöröse legyen, pl. 4, 8, 12, stb szókoz úgy, hogy egységesen vagy mindig szóközt használsz vagy mindig tab-ot.
-
lekai
friss újonc
köszi a választ
nem használok szoközt : dob le az aktuális helyre
az enyém pont úgy néz ki mint a tiéd, csak a bemásolásnál nem raktam mindent ugyan oda. -
kovisoft
őstag
Ha nem használsz szóközt, akkor esetleg próbáld ki, hogy lecseréled a tab-okat szóközökre. Vagy tegyél be debug kiírásokat a kódba, hogy lásd, merre jár és mi a változók értéke. De ha felrakod valahová a kódodat változatlan formában (pl. zip-elve), akkor szívesen kipróbálom, hogy nálam megy-e.
-
lekai
friss újonc
https://drive.google.com/open?id=11f8ze49M-CyvpDcqD3mHRw5y3IPe9Y6O
köszönöm
-
kovisoft
őstag
Letöltöttem és kipróbáltam 3-as pythonnal, nálam ez is jól működik. Itt van, hogyan futtattam:
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exec(open('jelszó progi.py').read())
Mi a jelszo? vacak
Ugyes vagy!
>>> -
lekai
friss újonc
Nagyon köszönöm.
De nem értem nálam mi a baj.
Python 2x használok
Amit még észrevettem, hogy mikor futtatni szeretnék valamit először akkor a futtatási ablakban be kell állítanom, hogy python.exe t futtasson. -
cousin333
addikt
Ez melyik 2-es verzió pontosan? Én kipróbáltam 2.7.17-el, ami elvileg a legfrissebb. Ha azt írod be, hogy vacak, akkor kivételt dob (NameError), tehát nem is fut le. Ha azt írom, hogy 'vacak', tehát idézőjelek között, akkor viszont jó. Egyébként meg, ahogy kovisoft írja, használd a raw_input függvényt. De inkább a Python 3-at tedd fel.
[ Szerkesztve ]
"We spared no expense"
-
lekai
friss újonc
Sziasztok most leszedtem a pythont és a pycharm programokat. Mikor újra telepítettem akkor meg nem kommunikálnak egymással. Nem tudok futtatni semmit. Nincs futtató program. Már vagy 4x-er ujra telepítettem.
[ Szerkesztve ]
-
Janos46
tag
Sziasztok!
Most, hogy a DHT11-el szórakozok, egy fura dologra lettem figyelmes.Kipróbáltam 2 programot, és az eredmény meglepett. A HW környezet változatlan, csak a SW más. Mellékelem a programokat, nem nagyok. Az elsőnél akár órákig is futhat hibátlanul, a másodiknál pedig kb. 10%-ban - Sensor failure. Check wiring. - üzenetet kapok. Csak úgy kíváncsiságból érdekelne az oka ha valaki meg tudná mondani. Mert ez azt is jelentheti, hogy a jelenséget nem feltétlenül a HW-ban kell keresni minden esetben.
Köszi a választ.csvfile = "/home/pi/My-logs/temp_181.txt" # Létre kell előbb hozni ezt a fájlt
import time
from datetime import datetime
import Adafruit_DHT
pin_dht11 = 21
while True:
date = datetime.now()
timestamp = date.strftime("%Y/%m/%d %H:%M:%S")
#Read the DHT11 device to get humidity and temperature
hum_dht11, temp_dht11 = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, pin_dht11)
values_10 = timestamp, round(temp_dht11,1), round(hum_dht11,1)
with open(csvfile, "a") as f:
f.write (str(values_10) + "\n")
print(values_10)
f.close()
time.sleep(3)
-------------
import Adafruit_DHT
import time
DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 21
while True:
humidity, temperature = Adafruit_DHT.read(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
print("Temp={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity))
else:
print("Sensor failure. Check wiring.");
time.sleep(3);
Artillery, lelkes újonc vagyok, tanulni akarok!
-
kovisoft
őstag
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Óra topik
- Autós topik
- Napelem
- A fociról könnyedén, egy baráti társaságban
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- E-roller topik
- GoPro Topic
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- További aktív témák...