Post your new 992 TT/S pictures here!
The following 13 users liked this post by okafor:
992TTSUAE (04-20-2024),
Billy Bluejay (04-20-2024),
criss (04-20-2024),
cweed (05-02-2024),
eclou (04-20-2024),
and 8 others liked this post.
The following 5 users liked this post by 992TTSUAE:
criss (04-20-2024),
eclou (04-20-2024),
heshalosny (04-28-2024),
MovingChicane (04-20-2024),
simarddominic (04-22-2024)
#1129
2024 911 TTS Cab -Incredible car
Ceramic All around with Front PPF + tinted windows
Heritage interior
Porsche APIs -> InfluxDB -> Grafana -> MagicMirror/PI - shows Fuel, Mileage and status of doors/top, windows locks
AI Generated picture using the real pic above. Text (spelling) is inherently hit/miss
Top - Two Blackvue dashcams (with LTE) - pointing front and rear. Allows for real-time monitoring, when parked also. Battery in storage area by passenger side footwell - lasts for 10+ hours. Also powers PI when parked.
Middle - Raspberry Pi - running when parked to detect motion and push images out (including images from Blackvue cameras)
Bottom - Raspberry PI display (left) and Air Quality Monitor (Right) to show additional info mounted on two ProClips Mounts
Examples images from Dashcam pushed to Arduino device - in real time
Ceramic All around with Front PPF + tinted windows
Heritage interior
Porsche APIs -> InfluxDB -> Grafana -> MagicMirror/PI - shows Fuel, Mileage and status of doors/top, windows locks
AI Generated picture using the real pic above. Text (spelling) is inherently hit/miss
Top - Two Blackvue dashcams (with LTE) - pointing front and rear. Allows for real-time monitoring, when parked also. Battery in storage area by passenger side footwell - lasts for 10+ hours. Also powers PI when parked.
Middle - Raspberry Pi - running when parked to detect motion and push images out (including images from Blackvue cameras)
Bottom - Raspberry PI display (left) and Air Quality Monitor (Right) to show additional info mounted on two ProClips Mounts
Examples images from Dashcam pushed to Arduino device - in real time
The following 3 users liked this post by augmented:
The following 4 users liked this post by 992TTSUAE:
The following 3 users liked this post by TheDapperDriver:
The following 6 users liked this post by nikanarani:
hcvone (05-01-2024),
heshalosny (04-28-2024),
Just J (04-27-2024),
mashoutposse (05-06-2024),
NEH51 (04-27-2024),
and 1 others liked this post.
The following 6 users liked this post by Bmanny:
Acropora8 (05-02-2024),
hcvone (05-01-2024),
Just J (04-27-2024),
mashoutposse (05-06-2024),
MovingChicane (04-27-2024),
and 1 others liked this post.
#1135
Rennlist Member
Join Date: May 2012
Location: Mid-Atlantic (on land, not in the middle of the ocean)
Posts: 13,311
Received 4,495 Likes
on
2,558 Posts
I got this car a year ago. We're taking delivery of another car (4RS) this coming week, and something needed to be traded in. The 992 TTS was a consideration for trade in, but I love the car too much and couldn't part with it. I don't 'need' the car, but I want it. So that now that I've decided to keep it, it really feels like it's mine, and it once again feels new to me!
The following 4 users liked this post by Manifold:
#1136
Rennlist Member
Fresh oil and ready for summer...
The following 5 users liked this post by FLT6SPD:
hcvone (05-01-2024),
heshalosny (04-28-2024),
Just J (04-28-2024),
mashoutposse (05-02-2024),
Pad Bender (04-29-2024)
#1137
Instructor
[/QUOTE]
Porsche APIs -> InfluxDB -> Grafana -> MagicMirror/PI - shows Fuel, Mileage and status of doors/top, windows locks
AI Generated picture using the real pic above. Text (spelling) is inherently hit/miss
Top - Two Blackvue dashcams (with LTE) - pointing front and rear. Allows for real-time monitoring, when parked also. Battery in storage area by passenger side footwell - lasts for 10+ hours. Also powers PI when parked.
Middle - Raspberry Pi - running when parked to detect motion and push images out (including images from Blackvue cameras)
Bottom - Raspberry PI display (left) and Air Quality Monitor (Right) to show additional info mounted on two ProClips Mounts
Examples images from Dashcam pushed to Arduino device - in real time[/QUOTE]
Can you give more info on the MAGIC MIRROR? Is this an out of box configuration you purchased somewhere? I must admit, not familiar with the tech.
Porsche APIs -> InfluxDB -> Grafana -> MagicMirror/PI - shows Fuel, Mileage and status of doors/top, windows locks
AI Generated picture using the real pic above. Text (spelling) is inherently hit/miss
Top - Two Blackvue dashcams (with LTE) - pointing front and rear. Allows for real-time monitoring, when parked also. Battery in storage area by passenger side footwell - lasts for 10+ hours. Also powers PI when parked.
Middle - Raspberry Pi - running when parked to detect motion and push images out (including images from Blackvue cameras)
Bottom - Raspberry PI display (left) and Air Quality Monitor (Right) to show additional info mounted on two ProClips Mounts
Examples images from Dashcam pushed to Arduino device - in real time[/QUOTE]
Can you give more info on the MAGIC MIRROR? Is this an out of box configuration you purchased somewhere? I must admit, not familiar with the tech.
#1138
It is not out of the box - maybe one day I will put up more detailed information on how to do this.
The monitor is from https://matteroffractions.com/ (no association with them - it is relatively expensive but it looks great). I had a custom wall with built-in power built when doing my basement so you don't see the power cords for the monitor or raspberry PI driving the display. I actually have two of these displays.
The software is running on a Raspberry PI 3B+ (or higher). The magic mirror is a popular widget based software for the PI that is very customizable.
I am a (hobby) developer so I actually access the Porsche APIs (I have two cars) using Python running on a PI - I ping the two cars every hour to get info and I automatically upload to a cloud based service(InfluxDB).I then use Grafana to read from InfluxDB and Grafana allows for cool looking displays (graphs etc).
I use Magic Mirror with the plug in module as shown in the following config.js script that MagicMirror uses to show on the display
modules: [
{
module:'MMM-WebView',
position:'top_left',
disabled:false,
config: {
url:"https://augmented.grafana.net/public-dashboards/xxxx",
width:'900px',
height:'920px',
},
},
{
module:'MMM-SmartWebDisplay',
disabled:false,
position:'top_right', // This can be any of the regions.
config: {
logDebug:false, //set to true to get detailed debug logs. To see them : "Ctrl+Shift+i"
height:"900px", //hauteur du cadre en pixel ou %
width:"1000px", //largeur
updateInterval:0, //in min. Set it to 0 for no refresh (for videos)
NextURLInterval:0, //in min, set it to 0 not to have automatic URL change. If only 1 URL given, it will be updated
displayLastUpdate:false, //to display the last update of the URL
displayLastUpdateFormat:'ddd - HH:mm:ss', //format of the date and time to display
url: ["https://dakboard.com/screen/uuid/xxxx"], //source of the URL to be displayed
scrolling:"no"// allow scrolling or not. html 4 only
}
},
]
};
My 2nd display is a vertical one.
Here is most of the Python code to talk to the Porsche APIs - I use a python lib a developer maintains and it works really well.
The code is not great as it has "evolved' and I don't have much time
frompyporscheconnectapi.connectionimportConnection
frompyporscheconnectapi.clientimportClient
asyncdefvehicles() -> None:
conn=Connection(email, password)
client=Client(conn)
vehicles=awaitclient.getVehicles()
forvehicleinvehicles:
print(f"VIN: {vehicle['vin']} Model: {vehicle['modelDescription']} Year: {vehicle['modelYear']}")
vins=map(lambdav: v["vin"], vehicles)
forvininvins:
data=awaitclient.getCurrentOverview(vin)
#print(json.dumps(data, indent=2))
if"8014"invin: # is panamera
fuel=data.get("fuelLevel",{}).get("value")
range=data.get("remainingRanges",{}).get("conventionalRange").get("distance").get("value")
window1isClosed=data.get("windows").get("frontLeft") =="CLOSED"
window2isClosed=data.get("windows").get("frontRight") =="CLOSED"
window3isClosed=data.get("windows").get("backLeft") =="CLOSED"
window4isClosed=data.get("windows").get("backRight") =="CLOSED"
sunRoofisClosed=data.get("windows").get("sunroof").get("status") =="CLOSED"
allWindowsClosed=window1isClosedandwindow2isClosedandwindow3isClosedandwindow4isClosed
ifallWindowsClosed:
print("All windows are closed")
else:
print("Warning a window is open")
print("Sunroof is Closed"ifsunRoofisClosedelse"Sunroof is Open")
door1Status=data.get("doors").get("frontLeft")
door2Status=data.get("doors").get("frontRight")
door3Status=data.get("doors").get("backLeft")
door4Status=data.get("doors").get("backRight")
door5Status=data.get("doors").get("backTrunk")
door1isClosed= (door1Status=="CLOSED_LOCKED") or (door1Status=="CLOSED_UNLOCKED")
door2isClosed= (door2Status=="CLOSED_LOCKED") or (door2Status=="CLOSED_UNLOCKED")
door3isClosed= (door3Status=="CLOSED_LOCKED") or (door3Status=="CLOSED_UNLOCKED")
door4isClosed= (door4Status=="CLOSED_LOCKED") or (door4Status=="CLOSED_UNLOCKED")
door5isClosed= (door5Status=="CLOSED_LOCKED") or (door5Status=="CLOSED_UNLOCKED")
carClosed=data.get("doors").get("overallLockStatus") =="CLOSED_LOCKED"
carLocked=carClosedandallWindowsClosedand (door1Status=="CLOSED_LOCKED") and (door2Status=="CLOSED_LOCKED") and (door3Status=="CLOSED_LOCKED") and (door4Status=="CLOSED_LOCKED") and (door5Status=="CLOSED_LOCKED")
allDoorsClosed=door1isClosedanddoor2isClosedanddoor3isClosedanddoor4isClosedanddoor5isClosed
ifallDoorsClosed:
print("All doors are closed")
else:
print("Warning a door is open")
ifcarLocked:
print("Car is Locked")
else:
print("Car is unlocked")
#print("Car locked is " +str(carClosed))
print("Fuel is "+str(fuel))
print("Range is "+str(range))
mileage=data.get("mileage").get("value")
print("Mileage is "+str(mileage))
porscheInfo="Porsche#"+str(fuel)+"#"+str(range)+"#"+str(allWindowsClosed)+"#"+str(sunRoofisClosed)+"#"+str(allDoorsClosed)+"#"+str(mileage)+"#"+str(carClosed)
send_pushover("WIO", porscheInfo)
#sendMQTT("info1", "WIO#Tesla#"+str(fuel)+"#"+str(range)+"#"+str(allWindowsClosed)+"#"+str( sunRoofisClosed)+"#"+str(allDoorsClosed)+"#"+str(mileage)+"#"+str(carClo sed))
writeToFile(fuel, range, allWindowsClosed, sunRoofisClosed, allDoorsClosed, mileage, carLocked)
try:
frontLeftTirePressure=int(data.get("tires").get("frontLeft").get("currentPressure").get("value")*14.7)
frontRightTirePressure=int(data.get("tires").get("frontRight").get("currentPressure").get("value")*14.7)
backLeftTirePressure=int(data.get("tires").get("backLeft").get("currentPressure").get("value")*14.7)
backRightTirePressure=int(data.get("tires").get("backRight").get("currentPressure").get("value")*14.7)
msg="Porsche#no porsche tire pressure available"
#if "None" not in frontLeftTirePressure or "None" not in frontRightTirePressure or "None" not in backRightTirePressure or "None" not in backLeftTirePressure:
msg="WIO#Tire Pressure#"+str(frontLeftTirePressure) +"#"+str(frontRightTirePressure)+"#"+str(backLeftTirePressure)+"#"+str(backRightTirePressure)
sendMQTT("info1", msg)
except:
print("no tire info")
else: #911
fuel=data.get("fuelLevel",{}).get("value")
range=data.get("remainingRanges",{}).get("conventionalRange").get("distance").get("value")
window1isClosed=data.get("windows").get("frontLeft") =="CLOSED"
window2isClosed=data.get("windows").get("frontRight") =="CLOSED"
window3isClosed=data.get("windows").get("backLeft") =="CLOSED"
window4isClosed=data.get("windows").get("backRight") =="CLOSED"
sunRoofisClosed=data.get("windows").get("roof") =="CLOSED"
allWindowsClosed=window1isClosedandwindow2isClosedandwindow3isClosedandwindow4isClosed
ifallWindowsClosed:
print("All windows are closed")
else:
print("Warning a window is open")
print("Convertible top is Closed"ifsunRoofisClosedelse"Connvertible top is Open")
door1Status=data.get("doors").get("frontLeft")
door2Status=data.get("doors").get("frontRight")
door5Status=data.get("doors").get("frontTrunk")
door4Status=data.get("doors").get("backTrunk")
door1isClosed= (door1Status=="CLOSED_LOCKED") or (door1Status=="CLOSED_UNLOCKED")
door2isClosed= (door2Status=="CLOSED_LOCKED") or (door2Status=="CLOSED_UNLOCKED")
door4isClosed= (door4Status=="CLOSED_LOCKED") or (door4Status=="CLOSED_UNLOCKED")
door5isClosed= (door5Status=="CLOSED_LOCKED") or (door5Status=="CLOSED_UNLOCKED")
carClosed=data.get("doors").get("overallLockStatus") =="CLOSED_LOCKED"
carLocked=carClosedandallWindowsClosedand (door1Status=="CLOSED_LOCKED") and (door2Status=="CLOSED_LOCKED") and (door4Status=="CLOSED_LOCKED") and (door5Status=="CLOSED_LOCKED")
allDoorsClosed=door1isClosedanddoor2isClosedanddoor4isClosedanddoor5isClosed
ifallDoorsClosed:
print("All doors are closed")
else:
print("Warning a door is open")
ifcarLocked:
print("Car is Locked")
else:
print("Car is unlocked")
#print("Car locked is " +str(carClosed))
print("Fuel is "+str(fuel))
print("Range is "+str(range))
mileage=data.get("mileage").get("value")
print("Mileage is "+str(mileage))
porscheInfo="911Turbo#"+str(fuel)+"#"+str(range)+"#"+str(allWindowsClosed)+"#"+str(sunRoofisClosed)+"#"+str(allDoorsClosed)+"#"+str(mileage)+"#"+str(carClosed)
send_pushover("WIO", porscheInfo)
sendMQTT("info1", "WIO#911Turbo#"+str(fuel)+"#"+str(range)+"#"+str(allWindowsClosed)+"#"+str(sunRoofisClosed)+"#"+str(allDoorsClosed)+"#"+str(mileage)+"#"+str(carClosed))
#writeToFile(fuel, range, allWindowsClosed, sunRoofisClosed, allDoorsClosed, mileage, carLocked)
try:
frontLeftTirePressure=int(data.get("tires").get("frontLeft").get("currentPressure").get("value")*14.7)
frontRightTirePressure=int(data.get("tires").get("frontRight").get("currentPressure").get("value")*14.7)
backLeftTirePressure=int(data.get("tires").get("backLeft").get("currentPressure").get("value")*14.7)
backRightTirePressure=int(data.get("tires").get("backRight").get("currentPressure").get("value")*14.7)
msg="911Turbo#no porsche tire pressure available"
#if "None" not in frontLeftTirePressure or "None" not in frontRightTirePressure or "None" not in backRightTirePressure or "None" not in backLeftTirePressure:
msg="WIO#Tire 911 Pressure#"+str(frontLeftTirePressure) +"#"+str(frontRightTirePressure)+"#"+str(backLeftTirePressure)+"#"+str(backRightTirePressure)
sendMQTT("info1", msg)
except:
print("no tire info")
#print(msg)
break
awaitconn.close()
loop=asyncio.get_event_loop()
loop.run_until_complete(vehicles())
The following 12 users liked this post by Kantro:
Acropora8 (05-02-2024),
cweed (05-08-2024),
HOTCHKIS (05-03-2024),
Jeff Whitten (05-02-2024),
Just J (05-02-2024),
and 7 others liked this post.
The following 4 users liked this post by Pacific German: