JohnMartin Skrevet 20. mars 2020 Skrevet 20. mars 2020 (endret) Usikker om dette er rett plass for dette topic, men jeg prøver. Har ett python script som har kjørt nå i lengre tid. Fungert bra, inntil nå nylig. Prøvde meg da på å få Roborock støvsuger i Homeseer, og måtte da oppgradere python fra 2.7 til 3.8. I den forbindelse, så har det gamle scriptet sluttet å fungere. Det ordinære scriptet kjøres jo bare slik nå: Er det noen som vet om det er mulig å kjøre to forskjellige versjoner av Python? Evt. hvordan man setter det opp i HS3? Endret 20. mars 2020 av JohnMartin Siter
JohnMartin Skrevet 20. mars 2020 Forfatter Skrevet 20. mars 2020 Prøvde først å endre sciptet til å fungere med 3.8, da det var "print" kommandoen som ga feilmelding. Men når det ble fikset, så fikk jeg en ny feilmelding: Quote Python "C:\Program Files (x86)\HomeSeer HS3\scripts\solarmanpv.pyw" Traceback (most recent call last): File "C:\Program Files (x86)\HomeSeer HS3\scripts\solarmanpv.pyw", line 3, in <module> import urllib, urllib2, hashlib ModuleNotFoundError: No module named 'urllib2' Og da gikk jeg tom for kunnskap og idèer. Siter
Moskus Skrevet 20. mars 2020 Skrevet 20. mars 2020 1 time siden, JohnMartin skrev: Og da gikk jeg tom for kunnskap og idèer. ... men har du glemt Google? https://stackoverflow.com/questions/2792650/import-error-no-module-name-urllib2 Siter
JohnMartin Skrevet 20. mars 2020 Forfatter Skrevet 20. mars 2020 Jeg og Google har ikke så godt forhold i disse dager. En av partene klarer ikke å jobbe like godt med unger som springer rundt føttene og bråker. ? Men etter å ha løst det problemet(kanskje?), så får jeg opp et nytt: Quote C:\Users\John Martin>Python "C:\Program Files (x86)\HomeSeer HS3\scripts\solarmanpv.pyw" Traceback (most recent call last): File "C:\Program Files (x86)\HomeSeer HS3\scripts\solarmanpv.pyw", line 28, in <module> m.update(password) TypeError: Unicode-objects must be encoded before hashing Virker som det er en del forskjell fra 2.0 til 3.0. Har lest noe om at det skal være mulig å kjøre flere versjoner, så må se om jeg får til det. Er det mulig å bruke følgende i HS3 på noe vis? c:\python27\python.exe "C:\Program Files (x86)\HomeSeer HS3\scripts\solarmanpv.pyw" Siter
Moskus Skrevet 21. mars 2020 Skrevet 21. mars 2020 17 timer siden, JohnMartin skrev: Virker som det er en del forskjell fra 2.0 til 3.0. Ja, det er ganske stor forskjell. Et 2.x-script kan nødvendigvis ikke kjøre uten videre på 3.x... Men det er da mulig å ha begge installert samtidig? Siter
JohnMartin Skrevet 22. mars 2020 Forfatter Skrevet 22. mars 2020 21 hours ago, Moskus said: Ja, det er ganske stor forskjell. Et 2.x-script kan nødvendigvis ikke kjøre uten videre på 3.x... Men det er da mulig å ha begge installert samtidig? Ja, har fått til det, får til å kjøre forskjellig version fra cmd, men usikker hvordan jeg gjør det via HS3. Det er neste på google lista mi Siter
ZoRaC Skrevet 22. mars 2020 Skrevet 22. mars 2020 På 20.3.2020 den 19.37, JohnMartin skrev: c:\python27\python.exe Som application og dette som parameter På 20.3.2020 den 19.37, JohnMartin skrev: "C:\Program Files (x86)\HomeSeer HS3\scripts\solarmanpv.pyw" 1 Siter
JohnMartin Skrevet 22. mars 2020 Forfatter Skrevet 22. mars 2020 Da har jeg omsider fått scriptet til å fungere igjen. Ble noen endringer, siden scriptet henter data på en ny måte. Får ingen feilmeldinger når jeg kjører scriptet nå, MEN data blir ikke oppdatert i Homeseer. I opprinnelig script så ble denne brukt: #login call infoRoot = ET.parse(urllib.urlopen(infoURL)).getroot() income = infoRoot.find('income') TodayIncome = income.find('TodayIncome').text ActualPower = income.find('ActualPower').text etoday = income.find('etoday').text etotal = income.find('etotal').text multiply='1000.0' etotal1000 = float(etotal) * float(multiply) TotalIncome = income.find('TotalIncome').text etotalstr=str(etotal1000) etoday=etoday.replace(".", ",") etotal=etotal.replace(".", ",") #logging values print 'TodayIncome: '+TodayIncome print 'ActualPower: '+ActualPower print 'etoday: '+etoday.replace(".", ",") print 'etotal: '+etotal print 'etotal 1000: '+etotalstr #uploading values to Homeseer url = ("http://" + hs_host + ":" + hs_port + "/" + hs_url+ "?request=controldevicebyvalue&ref=" + hs_ActualPower+ "&value=" + ActualPower) urllib.urlopen(url) url = ("http://" + hs_host + ":" + hs_port + "/" + hs_url+ "?request=controldevicebyvalue&ref=" + hs_etoday+ "&value=" + etoday) urllib.urlopen(url) url = ("http://" + hs_host + ":" + hs_port + "/" + hs_url+ "?request=controldevicebyvalue&ref=" + hs_etotal+ "&value=" + etotal) urllib.urlopen(url) I det nye så fikk jeg feilmelding når jeg prøvde å bruke samme "uploading values to Homeseer". Endret jeg til dette, så får jeg ikke feilmelding lengre, men ingenting skjer i HS3. #login call resultData = session.post(url, params=params) resultJson = resultData.json() if resultJson['result'].get('isAccept') == 1: print("Login Succesfull!") else: print("Login Failed!!") Exit() # Get plant details url = 'http://'+domain+'/cpro/epc/plantDetail/showPlantDetailAjax.json' params = { 'plantId': int(plantId) } cookies = {'language': lan} resultData = session.get(url, params=params, cookies=cookies) resultJson = resultData.json() TodayIncome = resultJson['result']['plantAllWapper']['plantData'].get('incomeTotal') ActualPower = resultJson['result']['plantAllWapper']['plantData'].get('power') etoday = resultJson['result']['plantAllWapper']['plantData'].get('energyToday') etotal = resultJson['result']['plantAllWapper']['plantData'].get('energyTotal') multiply='1000.0' etotal1000 = float(etotal) * float(multiply) etotalstr=str(etotal1000) #logging values print 'TodayIncome: ' + str(TodayIncome) print 'ActualPower: ' + str(ActualPower) print 'etoday: ' + str(etoday) print 'etotal: ' + str(etotal) print 'etotal 1000: ' + str(etotalstr) #uploading values to Homeseer url = ("http://" + hs_host + ":" + hs_port + "/" + hs_url+ "?request=controldevicebyvalue&ref=" + hs_ActualPower+ "&value=" + str(ActualPower)) urllib.urlopen(url) url = ("http://" + hs_host + ":" + hs_port + "/" + hs_url+ "?request=controldevicebyvalue&ref=" + hs_etoday+ "&value=" + str(etoday)) urllib.urlopen(url) url = ("http://" + hs_host + ":" + hs_port + "/" + hs_url+ "?request=controldevicebyvalue&ref=" + hs_etotal+ "&value=" + str(etotal)) urllib.urlopen(url) Noen forslag? ? Siter
JohnMartin Skrevet 24. mars 2020 Forfatter Skrevet 24. mars 2020 Var ikke så ille som jeg trodde. Var problemer med komma og punktum. Endret region til UK, og da fungerer det. Håper bare jeg ikke ødela for noe annet i samme slengen Siter
JohnMartin Skrevet 27. oktober 2020 Forfatter Skrevet 27. oktober 2020 Oppdaget idag at det var problemer med dette scriptet igjen... Devicene har ikke oppdatert seg på et par dager, og når jeg prøver å kjøre scriptet så får jeg denne feilmeldingen: C:\Python27>python.exe "C:\Program Files (x86)\HomeSeer HS3\scripts\new solarman.py" Traceback (most recent call last): File "C:\Program Files (x86)\HomeSeer HS3\scripts\new solarman.py", line 37, in <module> if resultJson['result'].get('isAccept') == 1: KeyError: 'result' Vet ikke hvorfor det stopper på dette nå, har ikke skjedd noe de siste ukene. Om det ikke er noe som er oppdatert i bakgrunnen. Har reinstallert Python 2.7 for sikkerhetsskyld, men ingen endring. Noen forslag? Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.